✒️ABAP Los Eventos
ABAP Los Eventos
Eventos
Disparar y manejar eventos
En objetos ABAP hay ciertos metodos que se conocen como disparadores (triggers) y otros que se conocen como manejadores (handlers). Los trigges son los metodos que disparan un evento, mientras que los handlers son los metodos que se ejecutan cuanodo ocurre un evento:
- Declarar el evento en la parte declarativa
- Disparar el evento en uno de sus metodos
Los eventos se declaran en la parte declarativa de una clase o en una interface. para declarar eventos dependientes de instancia se usa la sentencia EVENTS <evt> EXPORTING... VALUE(<ei>) TYPE type [OPTIONAL]
Para declarar eventos estaticos se usa la siguiente sentencia CLASS-EVENTS<evt>
Cuando se declara un evento se puede usar la adicion EXPORTING para especificar parametros que se pasan al manejador del evento. Los parametros se pasan siempre por valor.
Los eventos dependientes de instancia siempre contienen el parametro implicito SENDER, el cual 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 metodo en la clase. Los eventos estaticos son disparados por metodos estaticos. Para disparar un evento en un metodo se usa la sentencia.
RAISE EVENT<evt> EXPORTING....<ei> = <f i>....
Por cada parametro formal que no este definido como opcional se tiene que pasar el correspondiente paramatro real en la adición EXPORTING. La referencia a si mismo ME es pasada automaticamente al parametro implicito SENDER.
Eventos manejadores
Los eventos se usan para ejecutar uns serie de metodos. Estos metodos tienen que:
- Estar definidos como eventos manejadores (handler) de ese evento
- Estar registrados en tiempo de ejecución para el evento
Para declarar un metodo manejador de eventos dependientes de instancia, se usa la sentencia
METHODS <meth> FOR EVENTS <evt> of <cif> IMPORTING..<ei>..
Para metodos estatios se usa la misma sentencia con CLASS-METHODS en vez de METHODS. El metodo manejador de eventos no tiene por que usa todos los parametros pasados en la sentencia RAISE EVENT.
Registro de metodos manejadores de eventos
Para permitir a un metodo manejador de envotns reaccionar a un evento, se tiene que determinar en tiempo de ejecución el disparador al cual va a reaccionar, usando la sentencia SET HANDLER...<hi>...[FOR]..
cuatro tipos diferentes de eventos
- Eventos dependientes de instancia declarados en una clase
- Eventos dependientes de instancia declaradors en una interface
- Eventos estaticos declarados en una clase
- Eventos estaticos declarados en una interface
La sintaxis y el efecto de la sentencia SET HANDLER depende de cual de los cuatro casos. Para un evento dependiente de instancia se tiene que usar la sentencia FOR para especificar la instancia para la cual se quiere registrar el manejador. SET HANDLER..<hi>..FOR <ref>
Para registrar el manejador para todas las instancias que pueda disparar el evento
SET HANDLER..<hi>...FOR ALL INSTANCES
No se puede usar la adición FOR para los eventos estaticos SET HANDLER...<hi>....
Coordinación en el manejo de eventos
Despues de la sentencia RAISE EVENT, todos los metodos manejadores registrados son ejecutados antes de que la siguiente sentencia sea procesada (manejo de eventos sincronico). Para evitar la posibilidad de un bucle infinito, actualmente los eventos solo se pueden anidar 64 niveles.
 
 
 
Sobre el autor
Publicación académica de Marvin Raul Lopez Morales, en su ámbito de estudios para la Carrera Consultor ABAP.
Marvin Raul Lopez Morales
Profesión: Consultor Senior Sap / Abap It - Guatemala - Legajo: WP66T
✒️Autor de: 157 Publicaciones Académicas
🎓Cursando Actualmente: Consultor en SAP Fiori
🎓Egresado de los módulos:
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Máster ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Soy ingeniero en sistemas y cuento con mas de 20 años de experiencia en el área de informatica, tambien he participado en la implementación, migración y configuración de sap-erp para varias empresas.
Certificación Académica de Marvin Lopez