✒️ABAP Los Eventos
ABAP Los Eventos
DEFINICIÓN DE EVENTOS
Dado que los Workflows son procesos de negocio, es vital para una aplicación de negocio poder comunicarse con los Workflows.
Por ejemplo una aplicación de negocio necesita informar:
-> Cuando comienza un proceso de negocio.
-> Cuando termina un proceso de negocio o una actividad dentro del proceso.
-> Cuando una actividad o proceso que ha comenzado ya no se necesita.
-> Cuando dada una circunstancia ha cambiado el ambiente en el cual el proceso se ejecuta.
Para poder comunicarse la aplicación de negocio utiliza eventos.
EVENTO en WORKFLOW
Un evento en WORKFLOW representa el cambio de estado de una instancia, de un objeto de negocio (BUSINESS OBJECT).
Por ejemplo, cuando un usuario modifica el maestro de materiales para el material XXXY entonces el Business Object XXXY lanzará el evento “Changed”.
Para usar un evento como interfase entre la aplicación y un Workflow se necesita lo siguiente:
-> Definición del Evento: Es el nombre técnico del evento definido en un tipo de objeto. Se definen como un verbo en pasado (creado, modificado, liberado, etc.).
Además el evento está definido por sus parámetros. Los parámetros por defecto de un evento son: su nombre, el tipo de objeto, la instancia del objeto y el creador del evento. No obstante se pueden definir parámetros adicionales que deben acompañar el evento.
-> Creador del Evento: Es el programa, Workflow, persona que ha creado el evento.
-> Receptor del Evento: Es el término genérico que se usa para denominar a todo aquello que reaccionará ante el evento. Normalmente son Workflows o tareas de espera.
-> Linkage del Evento: El linkage especifica la relación entre el evento y su receptor. Se pueden a su vez especificar las reglas que gobiernan esta relación. Las reglas determinan cuando y como el receptor recibirá el evento.
CREACIÓN DE EVENTOS
Los eventos se crean en el Business Object Repository correspondiente a la transacción SWO1.
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
LANZADO EVENTOS DESDE APLICACIONES SAP
Antes que un evento sea lanzado por una 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.
No obstante puede que para un proceso de negocio particular tengamos que crear un evento nuevo. En este caso deberemos definir como se lanzará el evento a partir de la aplicación.
En el caso que el evento deba lanzarse desde un programa propio (de cliente) podremos programar el lanzamiento del evento muy fácilmente utilizando las funciones que SAP provee para tal caso.
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 (Solo para Finanzas).
-> A través de customizing especifico 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.
LANZADO 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 (modificación, creació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.
Los documentos de cambio SOLO se escriben cuando un campo designado como “relevante para change document” cambia.
Antes de definir un evento basado en un documento de cambio deberemos controlar que el cambio será escrito como un documento de cambio, controlando el customizing de los campos o bien haciendo pruebas.
Para crear un evento de este tipo utilizaremos la transacción SWEC.
Debemos indicar:
-> El código de documento de cambio.
-> El business object.
-> El evento.
-> Bajo que actividad se lanzará (Creación, Modificación, Borrado).
Luego podremos restringir aun más bajo que circunstancias queremos que se lance el evento, especificando campos de la tabla de campos relevantes, su valor antiguo y su valor actual.
LANZADO EVENTOS POR CAMBIO DE STATUS
Si una aplicación de negocio utiliza 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 de 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 tienen que ser fijados por el usuario.
Para crear un evento de este tipo utilizaremos la transacción BSVW. Primero debemos seleccionar con que tipo de status trabajar, de sistema o de usuario.
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 ). Una vez posicionados en el Workflow que deseamos iniciar con un evento, debemos
 
 
 
Sobre el autor
Publicación académica de Diego Armando De Santiago Castanon, en su ámbito de estudios para la Carrera Consultor ABAP.
Diego Armando De Santiago Castanon
Profesión: Ingenieria en Sistemas Computaciona - Mexico - Legajo: CQ90U
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Diego De