For Each

A ferramenta For Each permite processar cada item em uma coleção, um de cada vez. Isso é importante para operações em lote nas quais vários itens precisam de manipulação similar.

Automatizar o processamento de vários itens reduz a intervenção manual, aumentando assim a eficiência e a consistência no processamento de dados.

Imagine que você tenha uma plataforma de E-commerce que recebe pedidos de clientes. Cada pedido pode ter vários itens (produtos) e, após a compra, cada item do pedido precisa ser processado individualmente para realizar ações como verificar estoque, calcular impostos e gerar uma fatura consolidada, por exemplo.

Neste caso, você poderia usar um For Each para iterar sobre os itens do pedido e realizar uma série de ações para cada um desses itens de maneira independente.

Veja como ficaria o fluxo descrito acima:

for each new order example

Em seguida, aprenda como adicionar o For Each ao canvas e como configurar o seu formulário.

Adicione o For Each ao canvas

  1. Clique no ícone ícone de ferramenta com sinal de mais no menu de edição à esquerda.

  2. Selecione o For Each para adicioná-lo ao canvas. Você pode usar a barra de pesquisa search steps icon para encontrá-lo.

  3. Arraste para dentro do quadro do For Each os steps (exceto gatilho) que serão iterados (repetidos).

Para remover steps de dentro do For Each sem excluí-los do canvas, há dois botões:

  • Detach: desvincula um único step. Selecione o step que deseja desvincular e clique no terceiro botão à direita.

  • Ungroup: desagrupa todos os steps e deixa o quadro do For Each vazio. Selecione o quadro do For Each e clique no terceiro botão à direita.

Para excluir o For Each do canvas, selecione-o e clique no botão icone lixeira. Todos os steps dentro do For Each serão excluídos e as conexões serão removidas.

Você só poderá ter um subfluxo dentro do step For Each, ou seja, não é possível executar subfluxos paralelos dentro do For Each. Se houver steps inativos, você verá um ícone de alerta amarelo yellow alert icon no step, informando que está inativo e que ele requer uma conexão para ser executado.

O ícone de alerta icone alerta do quadro For Each só desaparece se houver:

  • Ao menos um step dentro do For Each;

  • A conexão de entrada, à esquerda;

  • A conexão de saída, à direita.

alerta for each

Configure o formulário

  1. Selecione o For Each no canvas.

  2. Clique no ícone de edição icone lapis.

  3. Preencha os seguintes campos do formulário:

    • Name: insira um nome único para o For Each. Este é um campo alfanumérico que permite caracteres especiais e espaços vazios, com limite de 20 caracteres.

    • Variable List: insira a lista de variáveis a serem executadas, ou seja, a lista que contém os itens que devem ser executados individualmente. Os valores devem ser um array (lista). Este é um campo alfanumérico que permite caracteres especiais e espaços vazios, com limite de 1024 caracteres.

      Ao clicar no ícone de Properties icone de lista à direita, você pode:

      1. Selecionar variáveis previamente cadastradas.

      2. Selecionar payloads de entrada ou de saída de steps anteriores.

      3. Criar expressões usando o Expression Builder.

      Abaixo, demonstramos a seleção de uma lista (array) de itens (a partir de Properties icone de lista) que serão processados pela ferramenta For Each.

      for each select variable list

    • Iteration Element: nome da estrutura que identifica os elementos que serão repetidos dentro do For Each. Este é um campo alfanumérico que permite caracteres especiais e espaços vazios, com limite de 250 caracteres.

      Você poderá visualizar o nome do elemento a ser iterado em Properties ou no Data Mapping (FROM/TO) dos steps que estiverem dentro do For Each.
      A quantidade de iterações é determinada pela quantidade de itens do array (lista).
  4. Configure o botão Ignore Errors: por padrão, o botão é desabilitado e você pode habilitá-lo.

    Habilitado switch Desabilitado switch off

    A execução continua, mesmo que haja erros no processo.

    A execução será interrompida imediatamente.

    Os logs apresentam o step com erro.

    Os logs mostram a execução até a última iteração.

    Steps após o For Each serão executados.

    Nenhum step após o For Each será executado.

  5. Clique em SAVE.

formulario for each
Consulte um exemplo de integração com CRM e For Each.

For Each dentro de outro For Each

Você pode inserir um For Each dentro de outro For Each. Dessa forma, seu fluxo de integração processará dados em estruturas com loops aninhados.

Considere o exemplo anterior de um fluxo com um pedido que contém vários itens (produtos). Imagine que cada item está sujeito ao pagamento de dois impostos.

  • O For Each externo itera sobre a lista de itens.

  • O For Each interno itera sobre a lista de impostos de cada item.

Dessa forma temos uma lista (array) dentro de outra lista:

  • Novo pedido (new order):

    • Item 1

      • Imposto (tax) 1

      • Imposto (tax) 2

    • Item 2

      • Imposto (tax) 1

      • Imposto (tax) 2

    • Item 3

    • Item 4

O fluxo descrito ficaria desta forma:

for each within for each

Para mover um step entre dois quadros de For Each, você deverá desanexá-lo do For Each inicial. Para isso, clique em X e arraste-o para o novo For Each.

Ignorando erros

Quando um fluxo possui um For Each dentro de um For Each, as seguintes regras se aplicam ao botão Ignore Errors:

"Ignore Errors" no For Each externo "Ignore Errors" no For Each interno Resultado

Desabilitado

Desabilitado

O fluxo será interrompido quando ocorrer um erro.

Habilitado

Habilitado

O fluxo NÃO será interrompido quando ocorrer um erro.

Habilitado

Desabilitado

Ocorrerá a execução de toda a iteração do For Each externo.

Desabilitado

Habilitado

O fluxo NÃO será interrompido quando ocorrer um erro.

Thanks for your feedback!
EDIT

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