✒️ABAP Los Eventos
ABAP Los Eventos
Definición de Eventos
Dado que los Workflows son procesos de negocio, es vital que una aplicación de negocio pueda comunicarse con los Workflows. Ejemplo una aplicación de negocio necesita informar:
- Cuando comienza un proceso de negocio.
- Cuando termina un proceso de negioco o una actividad dentro del proceso.
- Cuando una actividad o proceso que ha comenzado ya no se necesita.
- Cuando dada una circunstancia ha cambgiado el ambiente en el cual el proceso se ejecuta.
Para poder ejecutarse la aplicación de negocio utiliza eventos. Un evento en Workflow representa el cambio de estado de una instancia de un objeto de negocio (Business Object).
Para usar un evento como interfase entre la aplicación y un Workflow se necesita:
- Definición del Evento: Es el nombre técnico del evento definido en un tipo de objeto.
- Creador del Evento: Es el programa, Workflow, persona que ha creado el evento.
- Receptor del Evento: Es el termino genérico que se usa para denominar a todo aquello que reaccionará ante el evento.
- Likage del Evento: especifica la relación entre elevento y su receptor.
Creación de Eventos (Business Object Repository)
- Transacción SWO1 (Business Object Repository).
- Indicar tipo de objeto, nombre y parámetros del evento.
Lanzando eventos desde aplicaciones SAP
En el caso 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 (sólo para Finanzas).
- A través de Customizing especifico de cada aplicación.
Lanzando eventos con Changed Documents
Mucas aplicaciones de negocio 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 (creación, modificación o borrado) y registran los datos del objeto de negocio que ha cambiado en forma de tablas con el valor antiguo y el nuevo.
Transacción SWEC para lanzar un workflow cuando se crean documentos de cambio. Debemos indicar.
- El código de documento de cambio.
- El business object.
- El evento.
- Bajo que actividad se lazará (Creación, Modificación, Borrado).
Lanzando eventos por Cambio de Status
Los status de sistema siempre son fijados por el sistema automáticamente, mientras que los de cliente tienen que ser fijados por el usuario.
Transacción BSVW para lanzar un workflow cuando se modifica el estado del sistema.
- Primero seleccionar con que tipo de status trabajar, de sistema o de usuario.
- Luego seleccionar el tipo de objeto y su evento. Finalmente activar.
Unir el evento al Workflow
Transacción SWDD para establecer el inicio automático de un workflow a partir de un evento.
- Pasar a la cabecera de Workflow.
- Indicar tipo de objeto y evento que lanzarán el Workflow. Al crear la relación automáticamnete aparecerá un bindinng que pasará datos desde el contenedor al del Workflow. Event likage es decir activar. También se puede activar mediante la transacción SWETYPV.
Condiciones de Inicio
SAP provee 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.
Transacción SWB_COND para configurar las condiciones de inicio:
- Para crear la condición seleccionamos el tipo de objeto, aparecerán todos los eventos acoplados con Workflow y seleccionamos uno.
- Utilizando las variantes del contenedor del evento, creamos las condiciones lógicas que deseemos para que se cumpla o no el lazamiento del Workflow.
- Para simular los eventos, transacción SWU0.
- Para crear eventos, transacción SWUE.
Desarrollos de programas lanza eventos
El programa que dispare 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 Javier Exposito Diaz, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Exposito Diaz
Profesión: Programador Abap/4 Sap - España - Legajo: PF87S
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Javier Exposito