✒️ABAP POO Los Eventos
ABAP POO Los Eventos
EVENTOS
DISPARAR Y MANEJAR EVENTOS
En ABAP existen ciertos metodos conocidos como disparadores (triggers: que son los metodos que disparan un evento) y otros como manejadores (handlers: son los metodos que se ejecutan cuando ocurre un evento)
Para disparar un evento la clase debe:
- Declarar el evento en la parte declarativa, sentencia: EVENTS<ei>TYPE type[OPTIONAL]..
- Disparar el evento en uno de sus metodos, sentencia: CLASS-EVENTS<evt>...
Podemos usar la clave EXPORTRING en un evento para especificar parametros que se pasan al manejador del evento.
Los eventos dependientes de instancia contienen el parametro SENDER.
Todos los metodos (dependientes de instancia y estaticos) pueden desencadenar eventos estaticos
Los eventos estaticos son los unicos que pueden ser desencadenados por un metodo estatico. Sentencia para disparar un evento en un metodo: RAISE EVENT<evt>EXPORTING...<ei>=<f i>...
La referencia a si mismo ME es pasada automaticamente al parametro implicito SENDER.
Es importante no confundir este concepto de eventos en la POO, con los eventos del entorno de ejecucion ABAP tales como son el evento: LOAD OF PROGRAM, INITIALIZATION, START OF SELECTION, o END OF SELECTION, debemos dejar en claro que son conceptos muy diferentes.
EVENTOS MANEJADORES
Los eventos se usan para ejecutar los metodos, los cuales tienen que:
- Estar definidos como eventos manejadores (handler) de ese evento
- Estar registrados en tiempo de ejecucion para el evento
Sentencia para declarar un metodo manejador de eventos dependiente de instancia: METHOD<meth>FOR EVENT<evt>OF<cif>IMPORTING..<ei>..
Para metodos estaticos utilizamos la misma sentencia con CLASS-METHODS en vez de METHODS
El metodo manejador de eventos no tiene por que usar todos los parametros pasados en la sentencia RAISE EVENT
REGISTRO DE METODOS MANEJADORES DE EVENTOS
Debemos determinar en tiempo de ejecucion el disparador al cual va a reaccionar, para permitir a un metodo manejador de eventos reaccionar a un evento: SET HANDLER...<hi>...[FOR]...
Hay cuatro tipos de eventos:
- Eventos dependientes de instancia delcarados en una clase
- Eventos dependientes de instancia delcarados en una interface
- Eventos estaticos declarados en una clase
- Eventos estaticos declarados en una interface
La sentencia SET HANDLER depende de cual de los cuatro casos tenga lugar.
La clave FOR se utiliza para un evento depedniente de instancia, la cual especifica la instancia para la cual se quiere registrar el manejador. Utilizamos la variable referenciada: SET HANDLER...<hi>...FOR<ref>.
Tambien podemos registrar el manejador para todas las instancias que puede disparar el evento: SET HANDLER...<hi>...FOR ALL INSTANCES.
No podemos usar la clave FOR para eventos estaticos: SET HANDLER...<hi>...
COORDINACION EN EL MANEJO DE EVENTOS
Despues de RAISE EVENTO, todos los metodos manejadores registrados son ejecutados antes de que la siguiente sentencia sea procesada (manejo de eventos sincronico)
Para evitar un posible bucle infinito, actualmente los eventos solo se pueden anidar 64 niveles
NOTA: Los metodos manejadores de evnetos son registrados en el orden en el que son registrados
Los eventos estan sujetos a la misma estructura de visibilidad de los demas componentes de una clase, por lo tanto pueden ser publicos, protegidos o privados.
Los metodos manejadores de eventos, tambien tienen atributos de visibilidad, la visibilidad de un evento determina quien esta autorizado para manejar o controlar el evento.
Los eventos que son publicos pueden ser utilizados por cualquiera.
Los eventos que son protegidos solo pueden ser utilizados por usuarios dentro de la clase o sus subclases.
Los eventos que son privados solo pueden ser utilizados dentro de la clase.
La visibilidad de un metodo manejador de eventos, determina quien esta autorizado para registrar el metodo, es decir en que lugares podremos utilizar las setnecia SET HANDLER.
Los metodos manejadores de eventos que son publicos, pueden ser utilizados en cualquier lugar.
Los metodos manejadores de eventos que son protegidos, pueden ser utilizados por el usuario dentro de la clase o sus subclase.
Los metodos manejadores de eventos que son privados, solo pueden ser utilizados por el usuario dentro de la clase
Los metodos manejadores de eventos, pueden tener la misma visibilidad o mas restringida de aquellos eventos a los que se refiere.
EJEMPLO DEL MANEJO DE EVENTOS
 
 
 
Sobre el autor
Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para el Máster ABAP POO.
Ixhel Magai Lopez Valencia
Mexico - Legajo: PM62E
✒️Autor de: 134 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java
Certificación Académica de Ixhel Lopez