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.

  • Estrategia más utilizada: GroupedBodyAggregationStrategy (une los bodies de los mensajes en una lista).

  • Configuración en el campo Aggregation Strategy: #class:org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy.

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 una java.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 una java.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.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]