Split

O EIP Split permite dividir mensagens que contêm múltiplos elementos (como listas, arrays, arquivos XML/JSON ou textos com várias linhas) em partes menores.
Cada item é processado individualmente dentro de um fluxo, facilitando o tratamento de mensagens complexas.

Quando usar o Split?

  • Para processar cada registro de um arquivo JSON separadamente.

  • Para percorrer elementos de uma lista e aplicar regras em cada um.

  • Para analisar linha por linha em um texto estruturado.

Parâmetros

Parâmetro Descrição Valor padrão Tipo

Expression

Define como a mensagem de entrada deve ser dividida em partes menores.

ExpressionDefinition

AggregationStrategy

Define como os resultados das mensagens divididas serão combinados novamente em uma única mensagem ao final do processamento.

AggregationStrategy

Estratégias de agregação

Uma estratégia de agregação (Aggregation Strategy) é o método usado para juntar novamente os resultados que foram processados individualmente após a divisão da mensagem.

  • Estratégia de agregação mais utilizada: GroupedBodyAggregationStrategy (junta os bodies das mensagens em uma lista).

  • Configuração no campo Aggregation Strategy: #class:org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy.

Confira uma a uma as estratégias de agregação que você pode usar no Sensedia Integrations:

  • GroupedBodyAggregationStrategy: uma das mais úteis. Agrupa apenas o corpo (body) das mensagens de entrada em uma java.util.List. Simples e eficiente para coletar resultados.

  • GroupedExchangeAggregationStrategy: similar à anterior, mas em vez de agrupar apenas os corpos, ela agrupa o objeto Exchange completo (com cabeçalhos, propriedades etc.) em uma java.util.List.

  • UseLatestAggregationStrategy: descarta a mensagem agregada anterior e mantém sempre a mais recente. Útil quando só importa o último resultado de um processo.

  • UseOriginalAggregationStrategy: descarta a nova mensagem e mantém sempre a original (a primeira que iniciou a agregação). É o comportamento padrão do EIP Multicast.

  • StringAggregationStrategy: uma estratégia simples que concatena os corpos das mensagens (convertidos para string) em uma única string, geralmente separada por um caractere de nova linha.

Exemplo

- from:
    uri: rest:post:/process
    steps:
      - split:
          expression:
            simple:
              expression: ${body.split(',')}
          aggregationStrategy: "#class:org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy"
      - log:
          message: "Processando pedido: ${body}"
  • O fluxo é iniciado por uma requisição POST enviada para o endpoint /process.

  • O corpo da requisição deve conter uma lista de IDs de pedidos separados por vírgula, por exemplo: 1001,1002,1003.

  • O EIP Split divide essa lista em elementos individuais, e cada ID é processado separadamente no log:

    • Processando pedido: 1001

    • Processando pedido: 1002

    • Processando pedido: 1003

  • Por fim, o GroupedBodyAggregationStrategy reúne novamente todos os itens processados em uma única lista.

Thanks for your feedback!
EDIT

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