Flujo de integración: Uso del Aggregator y Multicast

Contenido

1.    Cloud Integration.

2.    Flujo de Integración.

3.    Aggregator y Multicast.

4.    Desarrollo.

1.    Cloud Integration

 SAP Cloud Integration favorece la integración de procesos comerciales que comprende diferentes empresas, organizaciones o departamentos dentro de una organización.

SAP Cloud Integration le facilita al usuario la conexión de aplicación locales y en la nube con otras aplicaciones existentes locales y en la nube de SAP ya que este tipo de servicio procesa los mensajes en escenarios en tiempo real que abarcan diferentes empresas, organizaciones o departamentos dentro de una organización.

2.    Flujo de Integración

Un flujo de integración es la base de cualquier proyecto de integración de datos ya que contiene funciones de automatización integradas que hacen que este proceso sea tan fácil que los usuarios comerciales no técnicos puedan crear flujos con el soporte de TI mínimo o nulo.

3.    Aggregator y Multicast

Estos son elementos que podemos usar para enrutamiento de mensajes que encontramos en la barra de herramienta del entorno de editor del flujo de integración.

El Aggregator lo usamos si queremos combinar mensajes individuales relacionados para que se puedan procesar en un solo mensaje. Con un patrón de agregación, podemos recopilar y almacenar mensajes individuales hasta que se haya recibido un conjunto completo de mensajes relacionados para luego ser procesado.

El Multicast define una ruta de mensaje según el escenario, debemos tener en cuenta que según el orden en el que definamos la ruta del mensaje, el sistema asigna a cada rama la ruta de mensajes como Branch 1, Branch 2, etc. Hay 2 tipo de multicast paralelo y secuencial, paralelo no requiere ninguna configuración ya que envía los mensajes al tiempo, mientras que el secuencial nos permite definir la secuencia de enrutamiento o envió de los mensajes.

Acá podemos ver como encontrarlos dentro de la barra de herramientas.

4.    Desarrollo

En este articulo plantearemos el escenario donde se requiere crear e implementar un flujo de integración en la plataforma Cloud Integration que nos permita enviar varias facturas de manera independiente para que el sistema las combine de acuerdo con un parámetro de correlación.

Requisitos

Debemos tener en cuenta que para poder realizar este ejercicio debemos contar con una cuenta en SAP BTP Cockpit y con la suscripción de Integration Suite, tener un paquete de integración creado en la plataforma de Cloud Integration.

Primero se debe acceder a un navegador e ingresar dando click aquí para ingresar a nuestra cuenta de SAP BTP Cockpit.

Accedemos a nuestra subcuenta llamada “Logali”.

Luego debemos ingresar a Integration Suite.

Después debemos ingresar a “Cloud Integration”.

Luego debemos ingresar al apartado de “Design” para poder seleccionar un paquete de integración.

Damos en el botón de edición e ingresamos en la pestaña de “Artifacts” para poder añadir un flujo de integración luego debemos ingresar los datos necesarios para crear el flujo de integración y por último dar clic en el botón “Ok”.

Luego de crear el flujo de integración se debe diseñar la estructura.

Para este ejercicio vamos a iniciar nuestro flujo con un evento “timer” el cual nos va a iniciar nuestro flujo de integración una vez implementado, mediante una multidifusión secuencial (multicast sequential) que va a activar los modificadores de contenido (content Invoice) los cuales enviaran el mensaje con la factura ingresada a un agregador para posteriormente ser mostrador en un Groovy Script unificando los mensajes que tengan igual item en la factura.

Vamos a ingresar el evento “Timer”, y en la pestaña programador (Scheduler), lo vamos a dejar por defecto en ejecutar una vez (Run Once).

Luego vamos a ingresar el “multicast sequential” seguido a este ingresamos 3 “Content Modifier”, un “aggregator” y un “Groovy Script”.
Cómo se muestra en la siguiente imagen.

Vamos a seleccionar cada uno de los Content Modifier y en la pestaña general de sus propiedades le asignamos un nombre a cada uno por Content Invoice 1, Content Invoice 2 y Content Invoice 3.

Seleccionamos el Content Invoice 1, vamos a la pestaña Message Body e ingresamos nuestro mensaje XML, para este caso será la información de la factura de venta de un curso.

Esto mismo haremos con los demás modificadores de contenido ingresando en cada uno la información de una factura diferente.

Content Invoice 1

<?xml version=”1.0″ encoding=”UTF-8″?>

<Invoice>

   <Id>1</Id>

   <InvoiceNo>LOGALI 001</InvoiceNo>

   <InvoiceDate>21052021</InvoiceDate>

   <InvoiceCurrency>USD</InvoiceCurrency>

   <ItemName>SAP ABAP</ItemName>

   <Price>268</Price>

</Invoice>

Content Invoice 2

<?xml version=”1.0″ encoding=”UTF-8″?>

<Invoice>

   <Id>2</Id>

   <InvoiceNo>LOGALI 002</InvoiceNo>

   <InvoiceDate>21052021</InvoiceDate>

   <InvoiceCurrency>USD</InvoiceCurrency>

   <ItemName>SAP BTP</ItemName>

   <Price>339</Price>

</Invoice>

Content Invoice 3

<?xml version=”1.0″ encoding=”UTF-8″?>

<Invoice>

   <Id>3</Id>

   <InvoiceNo>LOGALI 003</InvoiceNo>

   <InvoiceDate>21052021</InvoiceDate>

   <InvoiceCurrency>USD</InvoiceCurrency>

   <ItemName>SAP ABAP</ItemName>

   <Price>268</Price>

</Invoice>

En el enrutador de agregación, vamos la pestaña General y cambiamos el nombre por Aggregator Invoice

Luego en la pestaña Correlation vamos a asignar la expresión por la cual el agregador va a combinar o unir los mensajes que vienen de las facturas. En nuestro caso vamos a definir el ItemName, para ello ingresamos la raíz del XML que es “Invoice” seguido del elemento de correlación ItemName, quedando así: /Invoice/ItemName

En la pestaña de estrategia de agregación vamos a asignar los parámetros requeridos en los que definimos el algoritmo de agregación como Combine, luego Last Message Condition, en el cual ingresamos la condición para identificar el último mensaje que va a aceptar nuestro agregador, este caso vamos indicadores que cuando se reciba la factura con el Id=3 y como tiempo de espera de finalización definimos un minuto, este será el tiempo máximo de espera entre dos mensajes que va a tener nuestro agregador.

Por lo anterior el agregador se detendrá si el Id de la factura es igual a 3 o si hay más de un minuto entre la recepción de dos mensajes.

Luego vamos a la transformación Groovy Script y a cargamos nuestro archivo Scrip.

Guardamos nuestro flujo de integración y lo implementamos.

Vamos al menú principal, monitor y en el monitor de procesamiento de mensaje seleccionamos Mensajes.

Dentro del procesamiento del mensaje evidenciamos que nuestro que nuestro flujo de integración se ha implementado correctamente dejando 3 mensajes completados, uno con la información de la correcta implementación luego están 2 mensajes en los que nuestro agregador agrupo los mensajes por la correlación definida. Verificamos el primero dando clic en el mensaje, luego en los adjuntos y abrimos el body.

En la siguiente ventana, nos dirigimos a la pestaña body encontramos el cuerpo del archivo XML donde evidenciamos que de las facturas enviadas habían 2 con el ItemName: SAP ABAP. Las cuales muestra combinadas en un solo mensaje.

Luego vamos al otro mensaje repitiendo el mismo procedimiento

nos dirigimos a la pestaña body encontramos el cuerpo del archivo XML donde evidenciamos otro mensaje con ItemName: SAP BTP, este se muestra como un mensaje aparte ya que no cumplía con las condiciones de correlamiento definidas para combinarlo, a menos que tuviéramos otra factura con ese mismo nombre en el item.

Por último, podemos evidenciar que los mensajes se procesaron con un minuto de diferencia que fue el tiempo máximo que definimos en los parámetros del agregador.

En este artículo proporcionamos una explicación general usar algunos elementos de enrutamiento de mensajes como lo son el agregador y el elemento de multidifusión secuencial. Dirigido a todas las personas que quieran aprender más sobre las herramientas SAP Cloud Integration y como se integran las diferentes herramientas de SAP. Podrás encontrar más datos como estos en los cursos y blogs desarrollados por Logali Group.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *