✒️ABAP Los Eventos
ABAP Los Eventos
- DISPARAR Y MANEJAR EVENTOS
Los triggers (disparadores) son métodos que disparan un evento. Los handlers (manejadores) son los métodos que se ejecutan cuando ocurre un evento.
Para disparar un evento una clase tiene que:
- Declarar el evento en la parte declarativa.
- Disparar el evento en uno de sus métodos.
Los eventos se declaran en la parte declarativa de la clase o interface:
- Evento dependiente de instancia: EVENTS <evento> EXPORTING... VALUE(<ei>) TYPE type [OPTIONAL]..
- Evento estático: CLASS-EVENTS <evento>...
Se puede usar la adición EXPORTING para especificar parámetros que se pasan al manejador del evento. Siempre se pasan por valor.
Los eventos dependientes de instancia siempre contienen el parámetro implicito SENDER, que tiene el tipo de una referencia al tipo o a la interface en la cual el evento es declarado.
Un evento dependiente de instancia en una clase puede ser disparado por cualquier método de la clase. Los eventos estáticos son disparados por métodos estáticos. Para disparar un evento usamos: RAISE EVENT <evento> EXPORTING... <ei> = <f i>.
Por cada parámetro formal que no esté definido como opcional se tiene que pasar el correspondiente parámetro real en la adición EXPORTING. La referencia a si mismo ME es pasada automáticamente al parámetro implícito SENDER.
- EVENTOS MANEJADORES
Se usan para ejecutar una serie de métodos.
- Tienen que estar definidos como eventos manejadores (handler) de ese evento.
- Tienen que estar registrados en tiempo de ejecución para el evento.
Declaración:
- Método manejador de eventos dependiente de instacia: METHODS <método> FOR EVENT <evento> OF <cif> IMPORTING.. <ei>..
- Para métodos estáticos: CLASS-METHODS <método> FOR EVENT <evento> OF <cif> IMPORTING.. <ei>..
La interface de un método manejador de eventos sólo puede tener parámetros formales definidos en la declaración del evento. Los atributos de los parámetros también son adoptados por el evento.
El método manejador de eventos no tiene por que usar todos los parámetros pasados en la misma sentencia RAISE EVENT.
- REGISTRO DE MÉTODOS MANEJADORES DE EVENTOS
Permite a un método manejador de eventos reaccionar aun evento, se determina en tiempo de ejecución el disparador al cual va a reacción: SET HANDLER...<hi>....[FOR]... (Relaciona los métodos manejadores con sus correspondientes métodos).
Tipos de eventos:
- Eventos dependientes de instancia declarados en una clase.
- Eventos dependientes de instancia declarados en una interface.
- Eventos estáticos declarados en una clase.
- Eventos estáticos declarados en una interface.
Para los eventos dependientes de instancia usamos la sentencia FOR para indicar la instancia para la que se quiere registrar el manejador. SET HANDLER...<hi>....FOR <ref>. o le podemos indicar para todas las instancias SET HANDLER...<hi>....FOR ALL INSTANCES.
No se puede usar FOR con eventos estáticos, el registro se aplica automáticamente a la clase entera o a todas las clases que implementen la interface que contiene el evento estático.
- COORDINACIÓN EN EL MANEO DE EVENTOS
Después de RAISE EVENT, todos los métodos manejadores registrados son ejecutados antes de que la siguiente sentencia sea procesada (manejador de eventos síncrono).
Los métodos manejadores son ejecutados en el orden en el que son registrados.
 
 
 
Sobre el autor
Publicación académica de Ignacio Mart?n Bolumar, en su ámbito de estudios para la Carrera Consultor ABAP.
Ignacio Mart?n Bolumar
Profesión: Ingeniero Inform?tico - Espa?a - Legajo: ZL84Z
✒️Autor de: 94 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Ignacio Mart?n