METHOD GET PATHS
METHOD GET PATHS ( {nomPasta ;} tipoMetodo ; arrRotas {; marcador}{; *} )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
nomPasta | Text | → | Nome da página da pasta de inicio |
tipoMetodo | Integer | → | Seletor de tipo de método a recuperar |
arrRotas | Text array | ← | Arrays de rotas e nomes dos métodos |
marcador | Real | → | Valor mínimo de marcador |
← | Novo valor atual | ||
* | Operador | → | Se 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:
Constante | Tipo | Valor | Comentário |
---|---|---|---|
Path all objects | Inteiro longo | -1 | Combinação das rotas de todos os métodos da base |
Path class | Inteiro longo | 32 | Rota de definição de classe. Exemplo: [class]/Person [class]/Student |
Path database method | Inteiro longo | 2 | Rota 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 form | Inteiro longo | 4 | Rota 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 method | Inteiro longo | 1 | Nome do método. Exemplo: MeuMétodoProjeto |
Path table form | Inteiro longo | 16 | Rota 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 trigger | Inteiro longo | 8 | Rota 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])