- Introdução
- Criar
- Adicione um agente de IA a um fluxo de trabalho
- Chamar uma API externa
- Processar e-mails de entrada
- Crie um fluxo de trabalho de notificação do Slack
- Adicione aprovação humana a um fluxo de trabalho
- Crie um fluxo de trabalho de agente de chat
- Tratar erros
- Noções básicas de depuração
- Intervenção humana: escalonamento ou etapa humana
- Avaliando seus fluxos de trabalho
- Implantar e executar
- Exemplos
- Referência
Loop
Configure the Loop node, build the loop body, and read its output, with examples and fixes for common issues.
O que faz
Itera em uma coleção e executa os nós no corpo do loop uma vez para cada item.
Quando usar o loop
Um Loop ajusta uma coleção de itens ao processo, 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 de a coleção se esgotar, use Interromper com condição ou um identificador de interrupção, ambos descritos abaixo.
Referência de configuração
| Campo | Required | Padrão | Description |
|---|---|---|---|
| Coleção | Sim | Nenhum | Array para iterar. Insira uma expressão que resulte em um array, por exemplo, $vars.listCustomers1.output. |
| Paralelo | Não | Desativado | Executa todas as iterações ao mesmo tempo em vez de uma após a outra. Quando desativado, o loop é executado sequencialmente e aguarda a finalização de cada iteração antes de iniciar a próxima. |
| Interromper com condição | Não | Nenhum | Expressão que sai do loop antecipadamente quando ele se torna true após a conclusão de uma iteração. Isso se aplica a loops sequenciais. |
| Mostrar identificador de interrupção | Não | Desativado | Adds a break handle to the loop so nodes inside the body can exit the loop early. Connect a node's output to the break handle to stop iterating from inside the body. Available in sequential and parallel loops. |
A iteração sequencial preserva a ordem e é necessária para que a Interrupção com condição funcione, uma vez que 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 loop na tela
O Loop aparece na tela como um contêiner. Um selo em seu canto superior direito mostra o modo, Sequencial ou Paralelo, e a alternância Paralela no painel de propriedades o alterna. Dentro do contêiner, um identificador de início à esquerda inicia cada iteração e um identificador de continuação à direita a termina. O botão + dentro do contêiner adiciona um nó ao corpo, e o botão + na borda direita adiciona o nó que é executado após o loop. O identificador continuar aceita bordas de mais de um nó, então cada caminho através do corpo pode terminar nele. Um identificador de interrupção aparece quando Mostrar identificador de interrupção está ativado.
O nó Loop é compatível com o tratamento de erros, portanto, sua guia Tratamento de erros pode adicionar um identificador de erro , como descrito no Tratamento de erros .
O corpo do loop
Os nós colocados dentro dos limites do Loop formam o 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 e iteração atuais
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. Acesse seus campos com notação de pontos, por exemplo,$vars.loop1.currentItem.id.$vars.<loopName>.currentIterationé o número da iteração atual, iniciando em1.$vars.<loopName>.collectiona matriz completa que está sendo iterada.
Elas 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 com o nó após o loop.
currentItem e currentIteration não estão acessíveis fora do corpo do 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ó de Solicitação HTTP 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 é um Array desses resultados.
Exemplo 3: interromper cedo quando uma correspondência é encontrada
Um nó de Decision no corpo do loop verifica o item atual. Com a opção Mostrar identificador de interrupção habilitada, a ramificação correspondente da Decisão se conecta ao identificador de interrupção do loop para parar de iterar assim que a correspondência for localizada.
Problemas comuns
O corpo do loop nunca é executado
A coleção está vazia ou undefined. Verificar a saída do nó anterior no trace de execução para confirmar que o Array tem itens. Uma coleção vazia pula o corpo e continua após o loop.
A interrupção com condição nunca é disparada em um loop paralelo
A Interrupção com condição é avaliada após a conclusão de cada iteração em ordem, por isso ela se aplica a loops sequenciais. Desative o Paralelo se você precisar usar interrupção com condição de execução.
Editar a coleção dentro do corpo não altera o que é iterado
Capturamos a coleção quando o loop começa. Modificar a variável array dentro do corpo não altera quais itens são iterados. Isso faz parte do design.
Próximas Etapas
- Fluxo de controle: os nós que se ramificam, repetem e se juntam a caminhos.
- Decisão: ramificação com base em uma condição.
- Variáveis e fluxo de dados: como os nós passam dados.
- Comunidade: faça perguntas e compartilhe fluxos de trabalho com outros construtores no Fórum da UiPath.
- O que faz
- Quando usar o loop
- Referência de configuração
- O loop na tela
- O corpo do loop
- Item e iteração atuais
- Saída
- Exemplos
- Exemplo 1: chame uma API para cada item
- Exemplo 2: criar uma matriz de resultado entre iterações
- Exemplo 3: interromper cedo quando uma correspondência é encontrada
- Problemas comuns
- O corpo do loop nunca é executado
- A interrupção com condição nunca é disparada em um loop paralelo
- Editar a coleção dentro do corpo não altera o que é iterado
- Próximas Etapas