Split
El EIP Split permite dividir mensajes que contienen múltiples elementos (como listas, arrays, archivos XML/JSON o textos con varias líneas) en partes más pequeñas.
Cada elemento se procesa de forma individual dentro de un flujo, lo que facilita el tratamiento de mensajes complejos.
¿Cuándo usar Split?
-
Para procesar cada registro de un archivo JSON por separado.
-
Para recorrer elementos de una lista y aplicar reglas a cada uno.
-
Para analizar un texto estructurado línea por línea.
Parámetros
Parámetro | Descripción | Valor por defecto | Tipo |
---|---|---|---|
Expression |
Define cómo se debe dividir el mensaje de entrada en partes más pequeñas. |
ExpressionDefinition |
|
AggregationStrategy |
Define cómo se combinarán nuevamente los resultados de los mensajes divididos en un único mensaje al final del procesamiento. |
AggregationStrategy |
Estrategias de agregación
Una Estrategia de agregación es el método utilizado para volver a unir los resultados que fueron procesados individualmente después de dividir el mensaje.
|
Vea una por una las estrategias de agregación que puede usar en Sensedia Integrations:
-
GroupedBodyAggregationStrategy
: una de las más útiles. Agrupa solo el cuerpo (body) de los mensajes entrantes en unajava.util.List
. Simple y eficiente para recopilar resultados. -
GroupedExchangeAggregationStrategy
: similar a la anterior, pero en lugar de agrupar solo los cuerpos, agrupa el objeto Exchange completo (con encabezados, propiedades, etc.) en unajava.util.List
. -
UseLatestAggregationStrategy
: descarta el mensaje previamente agregado y siempre mantiene el más reciente. Útil cuando solo importa el último resultado. -
UseOriginalAggregationStrategy
: descarta el nuevo mensaje y siempre mantiene el original (el primero que inició la agregación). Es el comportamiento predeterminado del EIP Multicast. -
StringAggregationStrategy
: una estrategia simple que concatena los cuerpos de los mensajes (convertidos a string) en una única string, generalmente separados por un salto de línea.
Ejemplo
- from:
uri: rest:post:/process
steps:
- split:
expression:
simple:
expression: ${body.split(',')}
aggregationStrategy: "#class:org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy"
- log:
message: "Procesando pedido: ${body}"
-
El flujo se inicia con una solicitud POST enviada al endpoint
/process
. -
El cuerpo de la solicitud debe contener una lista de IDs de pedidos separados por coma, por ejemplo:
1001,1002,1003
. -
El EIP Split divide esta lista en elementos individuales, y cada ID se procesa por separado en el log:
-
Procesando pedido: 1001
-
Procesando pedido: 1002
-
Procesando pedido: 1003
-
-
Finalmente, el
GroupedBodyAggregationStrategy
reúne nuevamente todos los elementos procesados en una única lista.
Share your suggestions with us!
Click here and then [+ Submit idea]