UiPath Documentation
maestro
latest
false
Guia do usuário do Maestro
Importante :
A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Loop

Nó de loop para iterar sobre coleções com opções paralelas e de interrupção.

O que faz

Itera em uma coleção e executa os nós no corpo do loop uma vez para cada item.

Quando usar

Use um Loop quando você tiver uma coleção de itens para processar, como uma lista de registros retornados por uma API, uma lista de arquivos ou uma lista de IDs. O loop é executado uma vez por item e é interrompido quando a coleção é esgotada.

Para sair antes que a coleção se esgote, use a condição Interromper ou um identificador de interrupção, ambos descritos abaixo.

Referência da configuração

CampoRequiredPadrãoDescription
ColeçãoSimNenhumArray para iterar. Insira uma expressão que é resolvida em uma matriz, por $vars.listCustomers1.output.
ParaleloNãoDesativadoExecuta todas as iterações ao mesmo tempo em vez de uma após a outra. Quando desativado, o loop é executado sequencialmente e aguarda cada iteração terminar antes de iniciar a próxima.
Interromper com condiçãoNãoNenhumExpressão que sai do loop mais cedo quando se torna true após a conclusão de uma iteração. Isso se aplica a loops sequenciais.
Mostrar identificador de interrupçãoNãoDesativadoAdiciona um identificador de interrupção ao loop para que os nós dentro do corpo possam sair do loop mais cedo. Conecte a saída de um nó ao identificador de interrupção para interromper a iteração de dentro do corpo.
Observação:

A iteração sequencial preserva a ordem e é necessária para que a condição Interromper funcione, pois a condição é verificada após a conclusão de cada iteração. As iterações paralelas não são executadas em uma ordem garantida.

O corpo do loop

Arraste nós para dentro do limite do Loop para adicioná-los ao corpo. Os nós no corpo podem ler o item atual e a iteração, juntamente com quaisquer variáveis no escopo fora do loop.

Item atual e iteração

Dentro do corpo, faça referência ao progresso do loop com estas expressões:

  • $vars.<loopName>.currentItem o item para a iteração atual. Acessar seus campos com notação de ponto, por exemplo $vars.loop1.currentItem.id.
  • $vars.<loopName>.currentIteration é o número da iteração atual, começando em 1.

Eles estão disponíveis apenas dentro do corpo do loop.

Saída

Após a conclusão de todas as iterações, os resultados agregados do loop estão disponíveis $vars.<loopName>.output. A execução continua a partir do nó após o loop.

currentItem não são acessíveis fora do corpo currentIteration loop.

Exemplos

Exemplo 1 — Chame uma API para cada item

O loop itera sobre $vars.listCustomers1.output. O corpo do loop contém um nó HTTP Request com o URL:

https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}
https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}

Exemplo 2 — Criar uma matriz de resultado entre iterações

Um nó de Script no corpo do loop retorna um valor para cada item. O loop coleta o resultado de cada iteração em $vars.loop1.output

return { id: $vars.loop1.currentItem.id, processed: true };
return { id: $vars.loop1.currentItem.id, processed: true };

Após o loop, $vars.loop1.output uma matriz desses resultados.

Exemplo 3 — Interromper cedo quando uma correspondência é encontrada

Um nó de decisão no corpo do loop verifica o item atual. Com Mostrar identificador de interrupção habilitado, a ramificação de correspondência da decisão conecta-se ao identificador de interrupção do loop para interromper a iteração assim que a correspondência for encontrada.

Problemas comuns

O corpo do loop nunca é executado. A coleção está vazia ou undefined. Verifique a saída do nó upstream no trace de execução para confirmar se a matriz tem itens. Uma coleção vazia ignora o corpo e continua após o loop.

A condição de interrupção nunca é disparada em um loop paralelo. A condição de interrupção é avaliada após a conclusão de cada iteração em ordem, portanto, ela se aplica a loops sequenciais. Desative Paralelo se você precisar interromper uma condição em execução.

Editar a coleção dentro do corpo não altera o que é iterado. A coleção é capturada quando o loop começa. Modificar a variável array dentro do corpo não altera quais itens são iterados. Isso ocorre por design.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades