✒️ABAP Los Eventos
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.
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