✒️ABAP / Los Eventos Por Roberto Fluder Ahumada
ABAP Los Eventos

lección "7: Los Eventos"
• Disparar y Manejar Eventos: Esta sección introduce el concepto de los eventos en ABAP Objects, diferenciando entre los disparadores (triggers) que inician un evento y los manejadores (handlers) que reaccionan a ellos, y cómo se declaran y activan.
â—¦ Triggers y Handlers: Los triggers son métodos que disparan un evento, mientras que los handlers son los métodos que se ejecutan cuando un evento ocurre.
â—¦ Declaración de Eventos: Los eventos se declaran en la parte declarativa de una clase o interfaz, pudiendo ser dependientes de instancia o estáticos, y pueden incluir parámetros de exportación.
â–ª La sintaxis utilizada para la declaración de eventos dependientes de instancia es: EVENTS <evt> EXPORTING <p1> TYPE <t1> [OPTIONAL] ... [RAISING <exc1> <exc2> ...].
â–ª La sintaxis utilizada para la declaración de eventos estáticos es: CLASS-EVENTS <evt> EXPORTING <p1> TYPE <t1> [OPTIONAL] ... [RAISING <exc1> <exc2> ...].
â—¦ Parámetro Implícito SENDER: Los eventos dependientes de instancia siempre incluyen automáticamente el parámetro SENDER, que es una referencia al objeto o interfaz donde se declara el evento.
â—¦ Disparo de Eventos: Un evento se dispara en un método utilizando la sentencia RAISE EVENT, pasando los parámetros reales correspondientes.
â–ª La sintaxis utilizada para disparar un evento en un método es: RAISE EVENT <evt> [EXPORTING p1 = a1 p2 = a2 ...].
• Eventos Manejadores: Describe cómo se definen los métodos que responden a los eventos y cómo manejan la información que reciben.
â—¦ Propósito: Los eventos se utilizan para ejecutar una serie de métodos que están definidos como manejadores de ese evento y registrados para el mismo.
â—¦ Declaración: Un método manejador de eventos se declara utilizando la adición FOR EVENT OF en la sentencia METHODS (para instancia) o CLASS-METHODS (para estáticos).
â–ª La sintaxis utilizada para declarar un método manejador de eventos dependiente de instancia es: METHODS <meth> FOR EVENT <evt> OF <cif> [IMPORTING p1 p2 ...].
â—¦ Interfaz de Parámetros: La interfaz de un método manejador de eventos solo puede contener los parámetros formales definidos en la declaración del evento, y no es necesario utilizar todos los parámetros pasados.
• Registro de Métodos Manejadores de Eventos: Explica el proceso dinámico de vincular un método manejador a un evento específico, lo que permite que el manejador reaccione al evento en tiempo de ejecución.
â—¦ Propósito: La sentencia SET HANDLER es utilizada para relacionar dinámicamente los métodos manejadores de eventos con sus eventos correspondientes.
â–ª La sintaxis utilizada para determinar el disparador que reaccionará a un evento es: SET HANDLER <h_meth1> ... <h_methn> FOR <o_ref> ....
â—¦ Tipos de Eventos para Registro: El registro varía para eventos dependientes de instancia declarados en una clase o interfaz, y eventos estáticos declarados en una clase o interfaz.
â—¦ Registro para Eventos Dependientes de Instancia: Para eventos de instancia, se especifica la instancia particular o se registra para todas las instancias (incluso futuras) que puedan disparar el evento.
â–ª La sintaxis para registrar el manejador para todas las instancias es: SET HANDLER <h_meth1> ... <h_methn> FOR ALL INSTANCES.
â—¦ Registro para Eventos Estáticos: Para eventos estáticos, el registro se aplica automáticamente a toda la clase o a todas las clases que implementan la interfaz, sin necesidad de especificar instancias.
â–ª La sintaxis utilizada para eventos estáticos es: SET HANDLER <h_meth1> ... <h_methn>.
• Coordinación en el Manejo de Eventos: Detalla cómo se ejecutan los manejadores de eventos una vez que un evento es disparado, incluyendo el orden y las limitaciones.
â—¦ Ejecución Sincrónica: Todos los métodos manejadores registrados son ejecutados de manera sincrónica después de la sentencia RAISE EVENT y antes de que se procese la siguiente sentencia.
â—¦ Límite de Anidación: Los eventos pueden anidarse hasta 64 niveles para evitar bucles infinitos.
â—¦ Orden de Ejecución: Aunque los métodos manejadores de eventos se ejecutan en el orden en que son registrados, debido al registro dinámico, no se puede predecir el orden exacto en el que serán procesados, por lo que deben programarse para funcionar como si se fuesen a ejecutar todos simultáneamente.
• Ejemplo del Manejo de Eventos: Presenta un caso práctico para ilustrar la aplicación de eventos en ABAP Objects, mostrando la interacción entre un contador y un manejador.
â—¦ Descripción del Ejemplo: Una clase CONTADOR dispara un evento valor_critico cuando se excede un UMBRAL, y una clase MANEJADOR gestiona esta excepción.
â—¦ Definición de Clases: Se muestran las definiciones e implementaciones de las clases CONTADOR y MANEJADOR involucradas en el ejemplo.
â—¦ Lógica del Programa: Se visualiza la lógica ABAP dentro del evento START-OF-SELECTION, que incluye la creación de objetos y las llamadas a métodos.
â—¦ Salida por Pantalla: Se muestra la salida que el programa generará en la pantalla al ser ejecutado.
 
 
 
Sobre el autor
Publicación académica de Roberto Fluder Ahumada, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Roberto Fluder Ahumada
Profesión: Analista de Sistemas - Chile - Legajo: TD38U
✒️Autor de: 59 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Roberto Fluder






Disponibilidad Laboral: FullTime


















