✒️ABAP Los Eventos
ABAP Los Eventos
EVENTOS: triggers: metodos que disparan un evento, handlers: metodos que se ejecutan cuando ocurre un evento.
Para disparar un evento una clase tiene que disparar el evento en la parte declarativa y disparar el evento en uno de sus metodos. Los eventos se declaran en la parte declarativa de una clase o en una interface, declarar eventos dependientes de instancia:
EVENTS <evt> EXPORTING... VALUE(<ei>) TYPE type [OPTIONAL]..
Para declarar eventos estaticos:
CLASS-EVENTS<evt>...
Adicion EXPORTING especifica parametros que se pasan al manejador de eventos, se pasan por simple 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.
Para disparar un evento 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 es pasada de manera automatica al parametro implicito SENDER.
EVENTOS MANEJADORES: los eventos se usan apra ejecutar una serie de metodos, tienen que estar definidos como eventos manejadores (handler) de ese evento y estar registrados en tiempo de ejecucion para el evento.
Para declarar un metodo manejador de eventos dependiente de instancia:
METHODS <meth> FOR EVENT <evt> OF <cif> IMPORTING.. <ei>..
Para metodos estaticos:
CLASS METHODS <meth> FOR EVENT <evt> OF <cif> IMPORTING.. <ei>..
La interface de un metodo manejador de eventos solo puede contener parametros formales definidos en la declaracion del evento.
REGISTRO DE METODOS MANEJADORES DE EVENTOS: se tiene que determinar en tiempo de ejecucion el disparador al cual va a reaccionar, sentencia: SET HANDLER... <hi>... [FOR]...
Esta sentencia relaciona los metodos manejadores de eventos con sus correspondientes metodos:
Tipos de eventos:
Dependientes de instancia declarados en una clase.
SET HANDLER... <hi>... [FOR]...
Dependientes de instancia declarados en una interface
SET HANDLER... <hi>... [FOR]...
Estaticos declarados en una clase.
SET HANDLER... <hi>...
Estaticos declarados en una interface.
SET HANDLER... <hi>...
Para todas las instancias
SET HANDLER... <hi>... FOR ALL ENTRIES
El registro se aplica automaticamente a la clase entera o a todas las clases que implementan la interface que contiene el evento estatico. En las interfaces el registro tambien se aplica a las clases que aun no han sido cargadas cuando el manejador se registra.
COORDINACION EN EL MANEJO DE EVENTOS: luego de la sentencia RAISE EVENT todos los metodos manejadores registrado son ejecutados antes que la sigueinte sentencia sea procesada (manejo de eventos sincronico), si un metodo manejador de eventos desencadena eventos, los correspondientes metodos manejadores de eventos son ejecutados antes de que el metodo manejador original continue.
Para evitar un bucle infinito los eventos son ejecutados en el orden en el que son registrados.
LOS METODOS MANJEDORES DE EVENTOS SON EJECUTADOS EN EL ORDEN EN EL QUE SON REGISTRADOS.
NO SE PUEDE SABER EL ORDEN DE PROCESAMIENTO DE LOS EVENTOS.
LA VISIBILIDAD DE UN EVENTO DETERMINA QUIEN ESTA AUTORIZADO PARA CONTROLAR O MANEJAR EL EVENTO.
 
 
 
Sobre el autor
Publicación académica de Jose Ignacio Rodini, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Ignacio Rodini
Profesión: Licenciado en Informatica - Argentina - Legajo: HM58N
✒️Autor de: 115 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rodini