Saltar para o conteúdo principal
Versão: 20 R7 BETA

METHOD GET PATHS

METHOD GET PATHS ( {nomPasta ;} tipoMetodo ; arrRotas {; marcador}{; *} )

ParâmetroTipoDescrição
nomPastaTextNome da página da pasta de inicio
tipoMetodoIntegerSeletor de tipo de método a recuperar
arrRotasText arrayArrays de rotas e nomes dos métodos
marcadorRealValor mínimo de marcador
Novo valor atual
*OperadorSe passado = o comando se aplica à base local quando se executa desde um componente (parâmetro ignorado fora deste contexto)

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

O comando METHOD GET PATHS enche o array arrRotas com as rotas de acesso internas e os nomes dos métodos da aplicação do tipo definido pelo parâmetro tipoMetodo.

Se seu código está organizado em "pastas" no Navegador de 4D (página Inicio), pode passar um nome de pasta no parâmetro opcional nomPasta. Neste caso, o array arrRotas só contém as rotas dos métodos localizados neste lugar.

Nota: não pode utilizar o caractere curinga, "@" em nomPasta.

Passe no parâmetro tipoMetodo o tipo de método ao qual quer obter a rotas no array arrRotas. Pode utilizar as seguintes constantes (individualmente ou em combinação), do tema Design Object Access:

ConstanteTipoValorComentário
Path all objectsInteiro longo-1Combinação das rotas de todos os métodos da base
Path classInteiro longo32Rota de definição de classe. Exemplo:
[class]/Person
[class]/Student
Path database methodInteiro longo2Rota de métodos de banco de dados especificados. Lista desses métodos:
[databaseMethod]/onStartup
[databaseMethod]/onExit
[databaseMethod]/onDrop
[databaseMethod]/onBackupStartup
[databaseMethod]/onBackupShutdown
[databaseMethod]/onWebConnection
[databaseMethod]/onWebAuthentication
[databaseMethod]/onWebSessionSuspend
[databaseMethod]/onServerStartup
[databaseMethod]/onServerShutdown
[databaseMethod]/onServerOpenConnection
[databaseMethod]/onServerCloseConnection
[databaseMethod]/onSystemEvent
[databaseMethod]/onSqlAuthentication
[databaseMethod]/ onHostDatabaseEvent
[databaseMethod]/ onRESTAuthentication
[databaseMethod]/ onMobileAppAuthentication
[databaseMethod]/ onMobileAppAction
Path project formInteiro longo4Rota dos métodos formulário projeto e de todos seus métodos objeto. Exemplos:
[projectForm]/myForm/{formMethod}
[projectForm]/myForm/button1
[projectForm]/myForm/mylist
[projectForm]/myForm/button1
Path project methodInteiro longo1Nome do método.
Exemplo: MeuMétodoProjeto
Path table formInteiro longo16Rota dos métodos formulário tabela e de todos seus métodos objeto. Exemplos:
[tableForm]/table_1/Form1/{formMethod}
[tableForm]/table_1/Form1/button1
[tableForm]/table_1/Form1/mylist
[tableForm]/table_2/Form1/mylist
Path triggerInteiro longo8Rota dos triggers da base. Exemplos:
[trigger]/tabela_1
[trigger]/tabela_2

O parâmetro marcador permite recuperar as rotas dos métodos modificados a partir de um momento específico. Como parte de um sistema de controle de versão, isso significa que pode atualizar só os métodos modificados desde o último backup.
O funcionamento é o seguinte: 4D mantém um contador de modificação de métodos. Cada vez que um método se cria ou passa a guardar, este contador se incrementa e seu valor atual é guardado no marcador interno do método.
Se passado o parâmetro marcador, o comando só devolve os métodos cujo marcador é superior ou igual ao valor passado neste parâmetro. Além disso, o comando devolve em marcador o novo valor atual do contador de modificação, ou seja o valor mais alto. Se você guardar este valor, pode passar a próxima vez que este comando se chame de maneira que você somente recupere os métodos novos e modificados.

Se executado este comando desde um componente, devolve por defeito as rotas dos métodos do componente. Se passado o parâmetro *, o array conterá as rotas dos métodos da base local.

Se o comando detecta um nome de método duplicado, é gerado o erro -9802 ("Object path not unique"). Neste caso, é aconselhável utilizar o CSM com o propósito de verificar a estrutura da base de dados.

Exemplo 1

Recuperação dos métodos de projeto localizados em uma pasta "web":

 METHOD GET PATHS("web";Path project method;arrPaths)

Exemplo 2

Recuperação dos métodos base e dos triggers:

 METHOD GET PATHS(Path trigger+Path database method;arrPaths)

Exemplo 3

Recuperação dos métodos de projeto modificados desde o último backup:

  // carregamos o último valor armazenado
 $stamp :=Max([Backups]cur_stamp)
 METHOD GET PATHS(Path project method;arrPaths;$stamp)
  // guardamos o novo valor
 CREATE RECORD([Backups])
 [Backups]cur_stamp :=$stamp
 SAVE RECORD([Backups])

Exemplo 4

Consulte o exemplo do comando METHOD SET CODE.

Ver também

Current method path
METHOD GET FOLDERS