Este tema sólo se aplica a la configuración de IBM Business Process Manager Advanced.

Agregación anidada

Este escenario se basa en una empresa de supermercado, donde cada punto de ventas envía varias órdenes de reposición de inventario a un sistema central para toda la empresa que procesa por lotes las solicitudes a un único mensaje. Este único mensaje se envía al flujo de mediación donde, para cada pedido y para cada rama, se debe producir una invocación individual al sistema de pedidos.

Diseñar la agregación

El sistema de pedidos solo acepta un único registro, mientras que la entrada al módulo de mediación es un mensaje por lotes anidado. Esto introduce la necesidad de agregación, y en este caso agregación anidada, porque el mensaje de solicitud por lotes se repite en función del punto de venta, y a continuación se repite en función del pedido. Los pedidos se envían individualmente; la respuesta de cada pedido se almacena en un solo mensaje de respuesta, que se puede agregar posteriormente. Este mensaje de una sola respuesta muestra el estado de todos los elementos de la solicitud por lotes. Para explorar cómo se crea este escenario básico, examine en primer lugar los objetos de negocio utilizados, tal como se muestra en la Figura 1 .

Figura 1. Ejemplo de objetos de negocio para pedido por lotes
La solicitud GroupsOrders es una matriz por lotes de Puntos de venta identificados mediante un ID, y Puntos de venta contiene una matriz por lotes de Pedidos. La Figura 2 muestra el resultado.
Figura 2. Ejemplo de resultado de pedido por lotes

Contexto compartido

La estructura del contexto Compartido es esencial para un diseño de agregación satisfactorio, y es incluso más crítico en una agregación anidada. El objetivo es almacenar la respuesta de cada Pedido en una estructura que a continuación se pueda convertir en un único mensaje de respuesta. La solicitud inicial está en un ámbito de toda la empresa, la primera agregación está en el ámbito Punto de venta y la segunda agregación está en el ámbito Pedido, tal como se muestra en la Figura 3.
Figura 3. Niveles de agregación
Comprender la estructura de agregación ayuda a definir el contexto compartido correcto. El patrón lógico del flujo de mediación es el siguiente:
  • Agregar según Punto de venta.
    • Agregar según Pedido.
      • Llamar al servicio de pedidos.
      • Almacenar el servicio de pedidos actual en la respuesta Punto de venta actual.
    • Repetir para cada Pedido asociado con el Punto de venta.
    • Almacenar el Punto de venta actual en el almacén de agregación de toda la empresa.
  • Repetir para cada Punto de venta.
  • Convertir todos los resultados en un mensaje de respuesta.
Con este patrón puede almacenar la respuesta global de toda la empresa, la respuesta Punto de venta actual y la respuesta Pedido en el contexto compartido, como se muestra en la Figura 4 .
Figura 4. Respuestas Punto de venta compartidas

El detalle del flujo

Ahora puede observar el flujo con detalle. Se divide en tres secciones:
  • Ámbito de toda la empresa
  • Ámbito de punto de venta o establecimiento
  • Ámbito de pedido
Esto se muestra en la Figura 5 .
Figura 5. Bloque de agregación