4D v16.3Método base On Exit |
|||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Método base On Exit
Método base On Exit
El Método base On Exit se llama una vez cuando sale de la base. Este método se utiliza en los siguientes entornos 4D:
Nota: el Método base On Exit NO es invocado por 4D Server. El Método base On Exit es invocado automáticamente por 4D; a diferencia de los métodos de proyecto, usted no puede llamar este método por programación. Sin embargo, puede ejecutarlo desde el editor de métodos. Igualmente puede utilizar subrutinas. Se sale de una base si:
Sin importar cómo se inicie la salida de la base, 4D realiza las siguientes acciones:
El Método base On Exit es perfecto para:
Nota: no olvide que el proceso creado por el Método base On Exit es un proceso local/cliente, por lo tanto no puede acceder al archivo de datos. Si el Método base On Exit realiza una consulta o una ordenación, un cliente 4D que está a punto de salir quedará "congelado" y en realidad no saldrá de la aplicación. Si necesita acceder a datos cuando un cliente sale de la aplicación, cree un nuevo proceso global desde el cual el Método base On Exit pueda acceder al archivo de datos. En este caso, asegúrese de que el nuevo proceso termine correctamente antes del final de la ejecución del Método base On Exit (utilizando por ejemplo variables interproceso). Nota: en un entorno cliente/servidor, Método base On Exit se comporta de manera diferente dependiendo de si el usuario sale manualmente (vía el comando de menú Salir o una llamada al comando QUIT 4D) o que 4D Server se cierre, lo que obliga a todos los clientes a salir. Para detener correctamente los procesos en ejecución en el caso de paradas inesperadas, debe probar el comando Process aborted en cada bucle (for, while, repeat) lo que puede durar más de un segundo. Process aborted devuelve true si 4D (local, remoto o 4D Server) está a punto de salir, lo que significa que el procesamiento está a punto de detenerse de inmediato. En este caso, cancele todos los procesos (CANCEL TRANSACTION, etc.) y salga lo más rápido posible. Aunque tiene tiempo si el usuario sale manualmente, no tiene tiempo si la aplicación es forzada a salir. El siguiente ejemplo cubre todos los métodos utilizados en una base que sigue los eventos más importantes que ocurren durante una sesión de trabajo y escribe una descripción en un documento de de texto llamado “Diario.”
` Método de base On Startup
` Método de proyecto ESCRIBIR DIARIO Note que el documento se abre y cierra cada vez. También observe que el uso de un semáforo como “protección de acceso” al documento—no queremos dos procesos tratando de acceder el archivo diario al mismo tiempo.
` Método de proyecto M_AGREGAR_REGISTROS Este método efectúa un bucle hasta que el usuario cancela la entrada de datos o sale de la base.
` Método de formulario [Tabla1];"Entrada"
` Método de proyecto M_QUIT Este método utiliza un truco. Cuando se llama a QUIT 4D, el comando tiene un efecto inmediato. Por lo tanto, el proceso del cual se hace la llamada está en “modo detención” hasta que la base se cierre en realidad. Como este proceso puede ser uno de los procesos en el cual ocurre la entrada da datos, la llamada a QUIT 4D se realiza en un proceso local que empieza sólo con este propósito. Este es el método SALIR: ` Método de proyecto SALIR
` Método de base On Exit Nota: Los procesos que comienzan con "ML_..." o "M_..." son iniciados por comandos de menú para los cuales la propiedad Nuevo proceso ha sido seleccionada. En este ejemplo, estos son los procesos iniciados cuando se selecciona el comando de menú Agregar registro. La prueba (Current time-$ 2/6/03 15:47:25 1Apertura de sesión proceso principal Nota: $xx es el nombre del proceso local iniciado por 4D para ejecutar el Método base On Exit.
Ver también
|
PROPIEDADES
Producto: 4D
HISTORIA
Creado por: ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||