METHOD GET PATHS
METHOD GET PATHS ( {nomCarpeta ;} tipoMetodo ; arrRutas {; marcador}{; *} )
Parámetro | Tipo | Descripción | |
---|---|---|---|
nomCarpeta | Text | → | Nombre de carpeta de la página Inicio |
tipoMetodo | Integer | → | Selector de tipo de método a recuperar |
arrRutas | Text array | ← | Array de rutas y nombres de los métodos |
marcador | Real | → | Valor mínimo de marcador |
← | Nuevo valor actual | ||
* | Operador | → | Si se pasa = comando se aplica a la base local cuando se ejecuta desde un componente (parámetro ignorado fuera de este contexto) |
Este comando no es hilo seguro, no puede ser utilizado en código apropiativo.
Descripción
El comando METHOD GET PATHS llena el array arrRutas con las rutas de acceso internas y los nombres de los métodos de la aplicación del tipo definido por el parámetro tipoMetodo.
Si su código está organizado en "carpetas" en el Explorador de 4D (página Inicio), puede pasar un nombre de carpeta en el parámetro opcional nomCarpeta. En este caso, el array arrRutas sólo contiene las rutas de los métodos ubicados en esta ubicación.
Nota: no puede utilizar el carácter comodín, "@" en nomCarpeta.
Pase en el parámetro tipoMetodo el tipo de método del cual quiere obtener la rutas en el array arrRutas. Puede utilizar las siguientes constantes (individualmente o combinadas), del tema Acceso objetos diseño:
Constante | Tipo | Valor | Comentario |
---|---|---|---|
Path all objects | Entero largo | -1 | Combinación de las rutas de todos los métodos de la base |
Path class | Entero largo | 32 | Ruta de la definición de clase. Ejemplo: [class]/Persona [class]/Estudiante |
Path database method | Entero largo | 2 | Ruta de los métodos base definidos. Lista de estos 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 | Entero largo | 4 | Ruta de los métodos formularo proyecto y de todos su métodos objeto. Ejemplos: [projectForm]/myForm/{formMethod} [projectForm]/myForm/button1 [projectForm]/myForm/mylist [projectForm]/myForm/button1 |
Path project method | Entero largo | 1 | Nombre del método. Ejemplo: MiMetodoProyecto |
Path table form | Entero largo | 16 | Ruta de los métodos formulario tabla y de todos sus métodos objeto. Ejemplos: [tableForm]/table_1/Form1/{formMethod} [tableForm]/table_1/Form1/button1 [tableForm]/table_1/Form1/mylist [tableForm]/table_2/Form1/mylist |
Path trigger | Entero largo | 8 | Ruta de los triggers de la base. Ejemplos: [trigger]/tabla_1 [trigger]/tabla_2 |
El parámetro marcador permite recuperar las rutas de los métodos modificados a partir de un momento específico. Como parte de un sistema de control de versión, esto significa que puede actualizar sólo los métodos modificados desde el último backup.
El funcionamiento es el siguiente: 4D mantiene un contador de modificación de métodos. Cada vez que un método se crea o se vuelve a guardar, este contador se incrementa y su valor actual se guarda en el marcador interno del método.
Si pasa el parámetro marcador, el comando sólo devuelve los métodos cuyo marcador es superior o igual al valor pasado en este parámetro. Además, el comando devuelve en marcador el nuevo valor actual del contador de modificación, es decir el valor más alto. Si guarda este valor, puede pasarlo la próxima vez que este comando se llame de manera que usted sólo recupera los métodos nuevos o modificados.
Si se ejecuta este comando desde un componente, devuelve por defecto las rutas de los métodos del componente. Si pasa el parámetro *, el array contendrá las rutas de los métodos de la base local.
Si el comando detecta un nombre de método duplicado, se genera el error -9802 ("Object path not unique"). En este caso, es aconsejable utilizar el CSM con el fin de verificar la estructura de la base de datos.
Ejemplo 1
Recuperación de los métodos de proyecto ubicados en una carpeta "web":
METHOD GET PATHS("web";Path project method;arrPaths)
Ejemplo 2
Recuperación de los métodos base y de los triggers:
METHOD GET PATHS(Path trigger+Path database method;arrPaths)
Ejemplo 3
Recuperación de los métodos de proyecto modificados desde el último backup:
// cargamos el último valor almacenado
$stamp :=Max([Backups]cur_stamp)
METHOD GET PATHS(Path project method;arrPaths;$stamp)
// guardamos el nuevo valor
CREATE RECORD([Backups])
[Backups]cur_stamp :=$stamp
SAVE RECORD([Backups])
Ejemplo 4
Consulte el ejemplo del comando METHOD SET CODE.