
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 .
Contexto compartido
- 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.
- Agregar según Pedido.
- Repetir para cada Punto de venta.
- Convertir todos los resultados en un mensaje de respuesta.
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