- Introdução
- Introdução
- Modelagem de processos com o BPMN
- Noções Básicas sobre Modelagem de Processos
- Abertura da tela de modelagem
- Modelagem de seu processo
- Alinhamento e conexão de elementos BPMN
- Autopilot para Maestro (visualização)
- Repositório de processos
- Modelagem de processos com o Case Management
- Projeto de um esquema de entidades de casos persistente
- Definição de chaves de caso (sistema versus externo)
- Estabelecimento de contratos de E/S e de write-back
- Regras de saída e término do estágio inicial
- Modelagem de estágios primário e secundário
- Disparo de um caso a partir do Data Fabric
- Implementação de personas e permissões no nível de estágio
- Configuração de SLAs e regras de escalonamento automatizadas
- Configuração de um loop de retrabalho (reentrada)
- Gerenciamento de instâncias de casos ativas: pausar, migrar e tentar novamente
- Dicionário de componentes de gerenciamento de casos do Maestro
- Modelagem de processos com o Flow
- Implementação de processos
- Depuração
- Simulação
- Publicação e atualização de processos agênticos
- Cenários de implementação comuns
- Extração e validação de documentos
- Operações do processo
- Monitoramento de processo
- Otimização de processos
- Informações de referência
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
| Campo | Required | Padrão | Description |
|---|---|---|---|
| Coleção | Sim | Nenhum | Array para iterar. Insira uma expressão que é resolvida em uma matriz, por $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 cada iteração terminar antes de iniciar a próxima. |
| Interromper com condição | Não | Nenhum | Expressã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ção | Não | Desativado | Adiciona 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. |
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>.currentItemo 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 em1.
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.
Páginas relacionadas
- O que faz
- Quando usar
- Referência da configuração
- O corpo do loop
- Item atual e iteração
- 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
- Páginas relacionadas