Laço
Repete os blocos de dentro do contêiner várias vezes ou para cada item de uma lista.
O que faz
O Laço é um contêiner: os blocos colocados dentro dele são executados de novo a cada repetição, um número fixo de vezes, para cada item de uma lista ou enquanto uma condição for verdadeira. Quando todas as repetições terminam, o fluxo segue com a lista de resultados.
Quando usar: Use quando a mesma sequência de etapas precisa rodar para cada pedido, cliente ou linha de uma consulta, ou um número fixo de vezes.
Exemplo de situação: Enviar uma mensagem para cada cliente devolvido por uma consulta ao banco.
O nome Loop é reservado. Se renomear o contêiner, use outro nome (por exemplo, “Cada cliente”) e ajuste as referências.
Antes de começar
Conexão necessária: Sem conexão externa obrigatória.
Escolha o tipo: repetir N vezes, para cada item de uma lista, enquanto uma condição for verdadeira ou faça enquanto.
Passo a passo
- Na aba Blocos, arraste Laço para o desenho.
- Escolha o tipo: repetir N vezes, para cada item de uma lista, enquanto uma condição for verdadeira ou faça enquanto.
- Informe a quantidade de repetições, a lista (ex.:
<postgresql.rows>) ou a condição, conforme o tipo. - Arraste para dentro do contêiner os blocos que devem repetir e ligue-os ao ponto de início dele.
- Ligue a saída do contêiner à etapa que deve receber o resultado de todas as repetições.
- Execute com poucos itens primeiro e confira cada repetição no terminal.
Operações
| Operação | O que faz |
|---|---|
| Repetir N vezes | Executa os blocos de dentro um número fixo de vezes. |
| Para cada item | Executa os blocos de dentro uma vez para cada item da lista informada. |
| Enquanto | Repete enquanto a condição for verdadeira, testando antes de cada repetição. |
| Faça enquanto | Executa ao menos uma vez e repete enquanto a condição for verdadeira. |
Campos
Tipo de laço
ObrigatórioEscolhe como as repetições são controladas.
- Opções:
- Repetir N vezes · Para cada item · Enquanto · Faça enquanto
- Padrão:
- Repetir N vezes
Iterações do laço
Obrigatório conforme a operaçãoQuantas vezes os blocos de dentro devem executar.
- Aparece em:
- Repetir N vezes
- Padrão:
- 5
- Exemplo:
- 10
Itens da coleção
Obrigatório conforme a operaçãoLista percorrida pelo laço. Pode ser uma referência a uma lista de outro bloco ou uma lista JSON.
- Aparece em:
- Para cada item
- Exemplo:
- <postgresql.rows>
Condição de parada
Obrigatório conforme a operaçãoExpressão avaliada a cada repetição; o laço continua enquanto ela for verdadeira.
- Aparece em:
- Enquanto, Faça enquanto
- Exemplo:
- <loop.index> < 3
Saídas
Para usar um resultado deste bloco em uma etapa seguinte, digite < no campo e escolha o bloco e o campo. A referência tem o formato <loop.index>: antes do ponto vai o nome do bloco no seu fluxo, em minúsculas, sem espaços e sem acentos.
| Referência | Tipo | O que contém |
|---|---|---|
<loop.index> | number | Número da repetição atual, começando em 0. Disponível só para os blocos de dentro. |
<loop.currentItem> | any | Item da lista que está sendo processado na repetição atual (tipo Para cada item). |
<loop.items> | array | Lista completa que o laço está percorrendo. |
<loop.results> | array | Resultados de todas as repetições, disponíveis para a etapa ligada depois do contêiner. |
Exemplo de uso
Objetivo: Enviar uma mensagem para cada cliente devolvido por uma consulta.
- Tipo de laço
- Para cada item
- Itens da coleção
- <postgresql.rows>
Os valores são ilustrativos. Teste primeiro com dados fictícios ou de homologação.
Erros comuns e como resolver
- Os blocos de dentro não executam
- Os blocos precisam estar dentro do contêiner e ligados ao ponto de início dele. Blocos soltos dentro do contêiner são ignorados.
- A referência ao item atual chega vazia
- Confira o tipo escolhido: o item atual só existe quando o contêiner percorre uma coleção. Confira também se a coleção é uma lista válida (por exemplo, a saída rows de um bloco de banco).
- O resultado final veio em formato inesperado
- A saída results é uma lista com o resultado de cada repetição, na ordem em que foram executadas. Use um bloco Transformar dados para juntar ou filtrar os itens.