✒️ABAP / Los Eventos Por Victor Levi
ABAP Los Eventos

9° Eventos
1- Definición de Eventos
- Comunicación entre una Aplicación de Negocio y los Workflows:
- Información vital
- Comienzo de un Proceso de Negocio
- Finalización de un Proceso o de una Actividad dentro del Proceso
- Cuando una Actividad o Proceso que ha comenzado, ya no se necesita
- Cuando ha cambiado el ambiente en el cual se ejecuta el Proceso
- Evento: Elemento de Comunicación de la Aplicación de Negocio
- Representa el Cambio de Estado de una Instancia de un Objeto de Negocio
- Por ejemplo: si un usuario modificó el Maestro de Materiales para el Material XXXY,
- entonces el Business Object XXXY lanzará el Evento "Changed".
- Para poder usarlo como Interface se necesita lo siguiente:
- Definición del Evento
- Nombre técnico del Evento definido en un Tipo de Objeto (verbos en tiempo pasado)
- Está definido por Parámetros
- Parámetros por defecto: Nombre, Tipo de Objeto, Instancia del Objeto y Creador del Evento
- Se pueden definir Parámetro adicionales
- Creador del Evento
- Programa
- Workflow
- Usuario
- Receptor del Evento
- Elemento que reaccionará ante el Evento.
- Normalmente son Workflows o Tareas de Espera
- Linkage del Evento
- Especifica la Relación entre el Evento y su Receptor.
- Se pueden definir reglas que gobernarán la relación (cuando y como le llegará al Receptor)
2- Creación de Eventos
Se crean en el Business Object Repository (Trx SWO1)
- Utilizaremos el Business Object BUS2105 (Solicitud de pedido) como ejemplo
- La Categoría es Tipo objeto
- Al definir Eventos no debemos codificar nada, solo debemos ingresar
- Nombre del Evento
- Parámetros del Evento
- Veremos el detalle de la definición del Evento Released (Liberar solicitud de pedido)
- Podemos observar que tiene un Parámetro Asociado (ReleaseCode)
3- Lanzando Eventos desde Aplicaciones SAP
- Antes que un Evento sea lanzado por una Aplicación, la creación del mismo debe programarse en el programa de la Aplicación.
- En muchos programas estándar de SAP ya están definidos los programas que los lanzan, solo debemos
- Realizar el Event Linkage
- Determinadas Configuraciones de Customizing
- Si debemos crear un Evento nuevo, debemos definir como se lo lanzará a partir de la Aplicación.
- Para un Programa Propio se puede programar el lanzamiento utilizando las Funciones SAP
- Para un Programa Estándar de SAP, tenemos una serie de posibilidades:
- A través de Documentos de Cambio
- 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 la Aplicación HR
- A través de Business Transaction Events (sólo para Finanzas)
- A través de Customizing específico de cada Aplicación.
4- Lanzando Eventos con Documentos de Cambio
- Los Documentos de Cambio
- Son utilizados por las Aplicaciones para dejar registro de las modificaciones hechas.
- Definen la Operación que provoca el cambio
- Registran los Datos que han cambiado en forma de tablas con el valor antiguo y el nuevo
- Se escriben siempre que cambia un campo designado como "Relevante para Documento de Cambio"
- Antes de definir un Evento basado en Documento de Cambio, debemos asegurarnos que el cambio
- será escrito como Documento de Cambio
- Controlando el Customizing de los Campos
- o Realizando Pruebas
- Para crear un Evento de este tipo se utiliza la Trx SWEC
- Se presiona el botón Entradas nuevas y se ingresa
- El Código de Documento de Cambio
- El Business Object
- El Evento
- Bajo que Actividad se lanzará (Creación, Modificación, Borrado)
- Para restringirlo aún mas se puede especificar
- Campos de la Tabla de Campos Relevantes
- Valor Antiguo y su Valor Nuevo
5- Lanzando Eventos por Cambio de Status
- Si una Aplicación utiliza el Sistema de Gestión de Status, se puede configurar el lanzamiento de Eventos
- a partir de un Cambio de Status del Sistema
- Status de Sistema
- Son fiajdos automáticamente
- Status de Cliente
- Deben ser fijados por el Cliente
- Para crear un Evento de este tipo, se utiliza la Trx BSVW
- Se debe especificar el Tipo de Status
- Luego Seleccionar el Tipo de Objeto y su Evento
- Finalmente se lo Activa
- Lanzamiento de Eventos por Control de Mensajes
- Si una Aplicación utiliza el Sistema de Control de Mensaje para intercambiar información en el Proceso de Negocio,
- podemos configurar un Mensaje para Lanzar Eventos.
- Cuando el Sistema de Control de Mensaje se ejecute, cualquier Mensaje Configurado será lanzado.
- Por ejemplo, al crear una Orden de Ventas se utilizan mensajes para imprimir la Orden.
- Se puede utilizar el mismo sistema para lanzar Eventos
- La Configuración del Tipo de Mensaje se realiza a través de la Trx NACE
6- Unir el Evento al Workflow
- Para establecer el inicio automático de un Workflow a partir de un Evento debemos
- Ingresar en el Workflow Builder (Trx SWDD)
- Una vez seleccionado el Workflow, nos ubicamos en su Cabecera e indicaremos
- Tipo de Objeto
- Evento Lanzador del Workflow
- Al crear la relación, automáticamente aparecerá un Binding
- que pasará Datos desde el Contenedor del Evento al Contenedor del Workflow
- Podemos modificar este Binding agregando Parámetros
- Finalmente debemos Activar el Binding. Esta activación se denomina Event Linkage
- Otra forma de activar el Event Linkage es a través de la Trx SWETYPV
7- Condiciones de Inicio
- Permiten limitar el inicio de un Workflow al lanzarse un Eventos
- Para configurarlas se ejecuta la Trx SWB_COND
- Seleccionamos el Tipo de Objeto (p.ej. Solicitud de pedido)
- Aparecen todos los Eventos acoplados con Workflow
- Seleccionamos un Evento (Released)
- Completamos el Tipo de Objeto y el Evento
- Utilizando las Variables del Contenedor del Evento
- creamos las Condiciones Lógicas que deseemos para el cumplimiento del Workflow
- Verificación de Eventos
- Usando la Trx SWU0 podremos simular Eventos
- Creación de Eventos
- Se utiliza la Trx SWUE
8- Desarrollo de Programas Lanza Eventos
El programa que lanzará un Evento, debe utilizar el Módulo de Funciones SWE_EVENT_CREATE.
- La Estructura Lógica del programa debería ser la siguiente:
- Completar el Contenedor de Eventos con los Parámetros necesarios
- Componer la Clave del Objeto que debe instanciarse para llamar al Evento
- Llamar a 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 Victor Norberto Levi, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Victor Norberto Levi
Profesión: Analista Programador - Argentina - Legajo: VT17H
✒️Autor de: 111 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Victor Levi






Disponibilidad Laboral: FullTime


















