Este blog cubre una idea sobre cómo podemos usar CPI Aggregator para crear archivos separados según un valor en la carga útil.
Requisito:
Entrada de muestra:
Salida esperada: 2 archivos, uno para el código de empresa 1156 y otro para el 1152 (como ejemplo, aquí se usa el adaptador de correo en lugar de SFTP)
Ejemplo de iFlow de CPI:
Para simular un escenario: el modificador de contenido contiene los datos IDOC aquí, publique qué IDOC individuales se dividen en un divisor general. El mapeo de definición externa de IDOC se realiza en el siguiente paso y se agrega más.
Usando un patrón Agregador, podemos recopilar y almacenar mensajes individuales hasta que se haya recibido un conjunto completo de mensajes relacionados. Luego, el mensaje agregado se envía al receptor real (un mensaje por valor único en la condición de correlación)
Usamos un agregador para agrupar todos los mensajes relacionados con un código de empresa en particular dando la expresión de correlación. (En la imagen de arriba, el XPath en la correlación del agregador se toma del mapeo de publicaciones de mensajes externos)
Producción :
Ventajas:
Contras :
Observaciones adicionales:
Escenarios en los que se requiere agrupar mensajes que tengan un valor similar particular como el anterior, pero en lugar de crear 2 archivos separados como el anterior, solo se requiere 1 archivo que contiene datos relacionados con ambos códigos de empresa segregados dentro del archivo en la salida, el uso de Aggregator puede tener un limitación aquí.
Sin embargo, agradecería a los expertos en integración que agreguen observaciones y comentarios al respecto.
El uso de Aggregator en CPI con un caso de uso simple se explicó anteriormente.
Comentarios o comentarios/sugerencias, pros/contras con respecto a lo anterior son bienvenidos por parte de compañeros de Integración.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073