🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP POO Los Eventos

ABAP POO Los Eventos

ABAP POO Los Eventos

U2-L5

Disparar y manejar eventos

En objetos ABAP ciertos métodos se conocen como:
- Disparadores (triggers); disparan un evento
- Manejadores (handlers); se ejecutan cuando ocurre un evento
Para disparar un evento:

- Declarar el evento en la parte declarativa de la clase o en una interface.
- Disparar el evento en uno de los métodos de la clase.

Eventos dependientes de instancia:
EVENTS <evt> EXPORTING... VALUE(<ei>) TYPE type [OPTIONAL]..

Eventos estáticos:
CLASS-EVENTS <evt>...

En la declaración un evento se pueden especificar parámetros que pasan al manejador de eventos con la adición EXPORTING. Los parámetros se pasan siempre por valor.

Los eventos dependientes de instancia contienen el parámetro implícito SENDER, el cual tiene el tipo de una referencia al tipo o a la interface en la cual se declara el evento.

- Los eventos dependientes de instancia solo se desencadenan en métodos dep de instancia.
- Los eventos estáticos, único tipo que puede ser desencadenado por métodos estático.
- Métodos dep de instancia y estáticos pueden desencadenar eventos estáticos.

RAISE <evt> EXPORTING... <ei> = <f i>...

Cada parámetro que no contenga la adición OPTIONAL, será requerido su valor en EXPORTING.
La referencia a sí mismo ME es pasada automáticamente al parámetro implícito SENDER.

Eventos manejadores

Los eventos se usan para ejecutar métodos que:
- Están definidos como eventos manejadores (handler) de ese evento.
- Están registrados en tiempo de ejecución para el evento.

En una clase puede haber manejadores de eventos para eventos propios o de otras clases.

Método dependiente de instancia:
METHODS <meth> FOR EVENT <evt> OF <cif> IMPORTING.. <ei>..

Método estático:
CLASS-METHOD <meth> FOR EVENT <evt> OF <cif> IMPORTING.. <ei>..

La infertace de un método manejador, sólo puede contener parámetros formales definidos en declaración del evento. El método no tiene por que usar todos los parámetros RAISE EVENT.

Registro de métodos manejadores de eventos

Para que un método manejador reaccione a un evento, se declara el disparador :
SET HANDLER... <hi>... [FOR]...

Tipos de eventos:
- Dependientes de instancia declarados en una clase.
- Dependientes de instancia declarados en una interface.
- Estáticos declarados en una clase.
- Estáticos declarados en una interface.

Para un evento dependiente de instancia se usa la adición FOR para especificar la instancia a la cual se quiere registrar el manejador.

Una sola instancia especifica como disparador (variable referenciada)
SET HANDLER... <hi>...FOR <ref>.

Todas las instancias pueden disparar el evento
SET HANDLER... <hi>...FOR ALL INSTANCES
Aplica para todas las instancias, incluso las que no han sido creadas al momento del registro.

Para eventos estáticos NO se usa FOR
SET HANDLER... <hi>...
Aplica a todas las clases que implementan la interface que contiene el evento estático.
En el caso de las interfaces, también aplica a clases que aun no han sido cargadas al momento del registro.

Coordinación en el manejo de eventos

Después de la sentencia RAISE EVENT, todos los métodos manejadores registrados son ejecutados antes de que la siguiente sentencia sea procesada (manejo de eventos sincrónico).

Los eventos solo pueden anidar 64 niveles para evitar bucles finitos.

Los métodos manejadores de eventos son ejecutados en el orden en el que se registran.

Los métodos manejadores de eventos se deben programar como si fuesen a ejecutarse simultáneamente debido a que son registrados dinámicamente y no se sabe el orden en el que serán procesados.

Eventos sujetos a misma estructura de visibilidad.
Los públicos puede usarlos cualquiera
Los protegidos pueden usarlos usuarios dentro de la clase y sus subclases
Los privados solo pueden usarse dentro de la clase

Los métodos manejadores de eventos pueden tener la misma visibilidad o mas restringida de los eventos a los que se refieren.

Ejemplo de manejo de eventos

La clase CONTADOR implementa un contador
Se desencadena el evento valor_ctritico cuando el valor UMBRAL es excedido, se visualiza la diferencia.

La clase MANEJADOR puedemanejar las excepciones en la clase CONTADOR. El manejador es registrado en tiempo de ejecución para todas las variables referenciadas que apunten al objeto.


 

 

 


Sobre el autor

Publicación académica de Denisse Adriana Hernandez Trujillo, en su ámbito de estudios para el Máster ABAP POO.

SAP Master

Denisse Adriana Hernandez Trujillo

Mexico - Legajo: AH80E

✒️Autor de: 71 Publicaciones Académicas

🎓Egresado de los módulos:

Certificación Académica de Denisse Hernandez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Los Eventos" de la mano de nuestros alumnos.

SAP Expert


Eventos: algunos métodos son disparadores (triggers) y otros manejadores (handlers). Los triggers disparan un evento, mientras que los handlers se ejecutan al ocurrir este. Para disparar un evento, se debe declarar el mismo, y dispararlo en uno de sus métodos. Para declarar eventos dependientes de instancia se usa EVENTS. Los estáticos se definen con CLASS-EVENTS. Los eventos tienen siempre un parámetro SENDER que tiene una referencia a la interfaz en el que el evento es declarado. Los eventos dependientes de la instancia sólo pueden desencadenarse con métodos dependientes de instancia. Todos los métodos pueden desencadenar eventos estáticos (desde un método estático es RAISE...

Acceder a esta publicación

Creado y Compartido por: Daniel Alejandro Monteros Segura

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

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...

Acceder a esta publicación

Creado y Compartido por: Juan Jose Pujol Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Triggers: Metodos que disparan eventos. Handlers: Metodos que se ejecutan cuando un evento ocurre. El evento se declara en la parte declarativa de una clase. El evento se dispara en uno de sus metodos (triggers). Declaracion de un evento: EVENTS <evento> EXPORTING VALUE(<EJ>) TYPE type [OPTIONAL]... Declaracion de un evento estatico CLASS-EVENTS <evento> EXPORTING VALUE(<EJ>) TYPE type [OPTIONAL]... Metodos dependientes de instancia disparan eventos estaticos y de instancia. Metodos estaticos disparan solo eventos estaticos. Triggering de un evento: RAISE EVENT <evt> EXPORTING ... <ei> = <fi>.. Manejadores...

Acceder a esta publicación

Creado y Compartido por: Regulo Argotte

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!