📘ABAP - Triggers
Definición de Triggers
Son métodos que disparan un evento.
Para disparar un evento, una clase debe realizar dos acciones:
1. Declarar el evento en la parte de la declaración.
Para declarar eventos de instancia se utiliza la sentencia EVENTS evt EXPORTING... VALUE(e1 e2 ...) TYPE type [OPTIONAL]. Para declarar eventos estáticos se utiliza la sentencia CLASS-EVENTS evt.
Cuando se declara un evento se puede usar el agregado EXPORTING para pasarle un parámetro al método manejador. Este pasaje siempre se hace por valor. Además los eventos de instancia exportan siempre un parámetro de manera implícita llamado SENDER. Dicho parámetro contiene una referencia al objeto que levantó el evento. El parámetro SENDER se usará en el ejemplo que se presentará en breve.
2. Disparar el evento en alguno de sus métodos con la sentencia RAISE EVENT.
Los dos tipos de eventos (de instancia y de clase) se pueden declarar tanto en una interfaz como en una clase. Por lo tanto, profundizando aún más el concepto, se pueden identificar cuatro tipos de eventos:
1) Evento de instancia declarado en una clase.
2) Evento de instancia declarado en una interfaz.
3) Evento estático declarado en una clase.
4) Evento estático declarado en una interfaz.
Es importante conocer de qué tipo de evento se trata porque de eso dependerá la sintaxis y efecto de la sentencia SET HANDLER. Dicha sentencia es la que logra que un método de un objeto o clase (el manejador) se suscriba a otro objeto o clase (el disparador), en tiempo de ejecución.
En el presente tip se detallarán los pasos a seguir para implementar dos clases en ABAP Objects: una que dispara el evento (trigger) y otra clase que lo maneja (handler), para posteriormente en un programa ejemplo verificar su funcionamiento. El ejemplo implementa un evento de instancia declarado en una clase (en la clasificación de arriba corresponde a la opción