Trigger
Un trigger es un proceso definido por el programador que es ejecutado automáticamente al producirse el evento al que hace referencia. Los triggers posibles son:
Alta
Anterior a un alta de ficha
El proceso es disparado antes de que la ficha sea guardada en disco.
Interno a un alta de ficha
El proceso es disparado después de que la ficha haya sido guardada en disco y antes de disparar las actualizaciones.
Posterior a un alta de ficha
El proceso es disparado después de que la ficha haya sido guardada en disco y después de disparar las actualizaciones.
Modificación
Anterior a una modificación de ficha
El proceso es disparado antes de que los cambios en la ficha sean guardados en disco.
Interno a una modificación de ficha
El proceso es disparado después de que los cambios en la ficha hayan sido guardados en disco y antes de disparar las actualizaciones.
Posterior a una modificación de ficha
El proceso es disparado después de que los cambios en la ficha hayan sido guardados en disco y después de disparar las actualizaciones.
Baja
Anterior a una baja de ficha
El proceso es disparado antes de producirse el borrado de la ficha.
Interno a una baja de ficha
El proceso es disparado después de producirse el borrado de la ficha y antes de disparar las actualizaciones.
Posterior a una baja de ficha
El proceso es disparado después de producirse el borrado de la ficha y después de disparar las actualizaciones.
Los triggers son ejecutados en el servidor por lo que no se debe incluir en ellos ninguna instrucción que requiera la intervención del usuario.
Cualquier cambio que se desee realizar en la ficha, siempre deberá ser hecho antes de su grabación, es decir, en el trigger anterior. Si lo hacemos en los triggers interno o posterior, si bien no se grabará el cambio en la tabla, provocará un refresco erróneo de la información en el cliente.
La ficha permanecerá bloqueada por el sistema mientras los procesos de los triggers estén siendo ejecutados.
Podemos crear un trigger desde la barra de herramientas de sub-objetos de una tabla.
Nota |
Las modificaciones de registros tanto asegurados (transacción por proceso) como no aseguradas (formulario) se comportan igual y en el caso de ejecutar el comando set retorno proceso = NO en cualquiera de los triggers, lógicamente no se produce el alta, modificación o baja del registro, pero debemos tener en cuenta que no se deshace el resto de la transacción, por lo que si antes de hacer el set retorno proceso = NO hubiésemos realizados otros operaciones en la base de datos no relacionadas con el registro del trigger, éstas no serán deshechas. En principio en un trigger previo no se deberían realizar operaciones de disco, pero si las hacemos debes saber que el sistema no las deshará. |
Última actualización