✒️ABAP POO Los Eventos
ABAP POO Los Eventos
1) DISPARAR Y MANEJAR EVENTOS
Triggers (Disparadores) son los metodos que disparan un evento.
Handlers (Manejadores) son los metodos que se ejecutan cuando ocurre un evento.
Para disparar un evento una clase tiene que:
- Declarar el evento en la parte declarativa de una clase o interface.
- Disparar el evento en uno de sus metodos.
Declarar eventos dependientes de instancia:
EVENTS <evt> EXPORTING.... VALUE(<ei>) TYPE type [OPTIONAL]...
Declarar eventos estaticos CLASS-EVENTS <evt>...
La adicion EXPORTING se usa para especificar parametros que se pasan al manejador de eventos. Los parametros siempre se pasan 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 el cual el evento es declarado.
Los eventos dependientes de instancia solo pueden ser desencadenado en un metodo dependiente de instancia.
Todos los metodos (dependientes de instancia y estaticos) pueden desancadenar eventos estaticos.
sentencia para disparar un eventos en un metodo:
RAISE EVENT <evt> EXPORTING... <ei> = <f i> ...
Por cada parametro formal que no este definido como opcional se tiene que pasar el correspondiente parametro real en la adicion EXPORTING. La referencia a si mismo ME es pasada automaticamente al parametro implicito SENDER.
2) EVENTOS MANEJADORES
Los eventos se usan para ejecutar una serie de metodos. Estos metodos tienen que:
Estar definidos como eventos manejadores (handler) de ese evento.
Estar registrados en tiempo de ejecucion para el evento.
Sentencia para declarar metodo manejador evento dependiente de instancia:
METHODS <meth> FOR EVENT <evt> OF <cif> IMPORTING... <ei> ...
Para metodos estaticos se usa la sentencia CLASS-METHODS.
La interface de un metodo manejador de eventos solo puede contener parametros formales definidos en la declaracion del evento. Los atributos de los parametros tambien son adoptados por el evento.
El metodo manejador de eventos no tiene por que usar todos los parametros pasados en la sentencia RAISE EVENT.
3) REGISTRO DE METODOS MANEJADORES DE EVENTOS
Para permitir a un metodo manejador de eventos reaccionar a un evento, se tiene que determinar en tiempo de ejecucion el disparador al cual va a reaccionar. esto se hace con la siguiente sentencia: SET HANDLER ... <hi>... [FOR]..... Esta sentencia relaciona los metodos manejadores de eventos con sus correspondientes metodos.
Existen 4 tipos de eventos:
- Eventos dependientes de instancia declarados en una clase.
- Eventos dependientes de instancia declarados en una interface.
- .Eventos estaticos declarados en una clase.
- Eventos estaticos declarados en una interface.
Para un evento dependiente de instancia se usa la sentencia FOR para especificar la instancia para la cual se quiere registrar el manejador SET HANDLER... <hi>... FOR <ref>. o se puede registrar el manejador para todas las instancias que puedan disparar el evento. SET HANDLER... <hi>... FOR ALL INSTANCE.
No se puede usar la adicion FOR para los eventos estaticos. SET HANDLER ... <hi> ...
4)COORDINACION 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 eventos sincronico).
Si un metodo manejador de eventos desencadena eventos, los correspondientes metodos manejadores de eventos son ejecutados antes que el metodo manejador original continue.
LOS METODOS MANEJADORES DE EVENTOS SON EJECUTADOS EN EL ORDEN EN EL QUE SON REGISTRADOS.
 
 
 
Sobre el autor
Publicación académica de Juan Jose Pujol Diaz, en su ámbito de estudios para el Máster ABAP POO.
Juan Jose Pujol Diaz
Profesión: Ingeniero en Gestión en Informatica - Chile - Legajo: CJ71Z
✒️Autor de: 22 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial