✒️ABAP Los Eventos
ABAP Los Eventos
Los Eventos
1. La definición de eventos
Para poder comunicarse la aplicación de negocio usa eventos. Un evento en Workflow representa el cambio de estado de una instancia de un objeto de negocio (Businss Object).
Para usar un evento como interfase entre la aplicación y un Workflow se necesita lo siguiente:
- Definición del evento
- Creador del evento
- Receptor del evento
- Linkage del evento
2. La creación de eventos
Los eventos se crean en el Business Object Repository correspondiente a la transacción SW01. Debemos especificar el tipo de objeto para el cual queremos crear el evento. Al definir eventos nunca debemos codificar nada. Los datos que deben ingresarse son:
- El nombre del evento
- Los parámetros del evento
3. Lanzando eventos desde aplicaciones SAP
Antes de que en evento sea lanzado por un aplicación, la creación del evento debe programarse en el programa de la aplicación.
Afortunadamente en muchos de los programas estándar de SAP, ya están definidos los programas que lanzan los eventos y solo es necesario realizar el event linkage y determinadas configuraciones de customizing.
En el caso de que debamos lanzar un nuevo evento desde un programa estándar de SAP tenemos las siguientes posibilidades:
- A través de documentos de cambio (change documents)
- A través del sistema de gestión de status
- A través de control de mensajes
- Utilizando el sistema de información logística (LIS)
- A través de los datos maestros de HR
- A través de Business Transaction Events (solo para FI)
- A través de customizing específico de cada aplicación
Los tres primeros casos son los más usados, el resto son específicos para determinados módulos (HR-FI) y para casos aislados.
4. Lanzando eventos con Changed Documents
Muchas aplicaciones de negocio en SAP utilizan documentos de cambio para dejar registro de las modificaciones hechas (generalmente transacciones de mantenimiento de datos maestros).
Los documentos de cambio definen la operación que provoca el cambio y registran los datos del objeto de negocio que ha cambiado en forma de tablas con el valor antiguo y el nuevo.
Los documentos de cambio solo se escriben cuando un campo designado como "relevante para change document" cambia.
Para crear un evento de este tipo usaremos la transacción SWEC debiendo indicar:
- El código de documento de cambio
- El business object
- El evento
- Bajo que actividad se lanzará
5. Lanzando eventos por Cambio de Status
Si una aplicación de negocio usa el sistema de gestión de status, podremos configurar el lanzamiento de eventos a partir de un cambio de status del sistema.
El sistema estándar viene por defecto con status predefinidos llamados "status del sistema", no obstante y por customizing pueden definirse nuevos status (de cliente).
Los status de sistema siempre son fijados por el sistema automáticamente, mientras que los de cliente tiene que ser fijados por el usuario.
Para crear un evento de este tipo usaremos la transacción BSVW. Primero debemos seleccionar con qué tipo de status trabajar, de sistema o de usuario.
Luego deberemos seleccionar el tipo de objeto y su evento. Finalmente lo activamos.
También podemos lanzar eventos mediante control de mensajes. Si una aplicación de negocio usa el método de control de mensajes para intercambiar información entre los distintos involucrados en el proceso de negocio podemos configurar un mensaje para lanzar eventos. Cuando el sistema de control de mensajes se ejecute, cualquier mensaje configurado será lanzado. Por ejemplo, al crear una orden de ventas o un pedido de compras se utilizan mensajes para imprimir la orden. También podemos usar el mismo sistema para lanzar eventos. La configuración del tipo de mensaje se realiza a través de la transacción NACE.
6. Unir el evento al WorkFlow
Para establecer el inicio automático de un workflow a partir de un evento debemos indicarlo en la configuración del Workflow en el Workflow Builder (transacción SWDD).
La acción de activar el binding entre el Workflow y el evento genera una orden de transporte de customizing. Otra forma de activa el linkage entre el evento y el Workflow es a través de la transacción SWETYPV.
7. Las condiciones de inicio
SAP propone una manera fácil de limitar el inicio de un Workflow al dispararse un evento y esto es a través de condiciones de inicio. Para configurar condiciones de inicio ejecutamos la transacción SWB_COND.
Podemos verificar los eventos usando la transacción para simular eventos SWU0.
8. Los desarrollos de programas lanza eventos
El programa que desee disparar un evento deberá utilizar el módulo de funciones SWE_EVENT_CREATE. La estructura lógica del programa debería ser la siguiente:
- Llenar el contenedor de eventos con los parámetros necesarios
- Componer la clave del objeto que debe instanciarse para llamar al evento
- Llamar la función SWE_EVENT_CREATE
- Controlar las excepciones
- Disparar el evento con COMMIT_WORK explícito
 
 
 
Sobre el autor
Publicación académica de David Brito Melado, en su ámbito de estudios para la Carrera Consultor ABAP.
David Brito Melado
Profesión: Ingeniero Informático - España - Legajo: UC35Q
✒️Autor de: 94 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Como profesional en informática y tras cumplir casi la mayoría de edad en entornos sap como consultor funcional de varios módulos quiero llegar a dominar la programación en abap.
Certificación Académica de David Brito