Sucesso
O conector percorre uma lista de itens, executando o fluxo a partir da saída "on_each" para cada item individualmente. Após a conclusão de todas as iterações, a saída "on_end" é acionada.
No exemplo abaixo, há uma lista msg.users contendo três usuários. O conector Loop/ForEach recebe o caminho msg.users como entrada de dados e utiliza msg.user como Output Path. A primeira saída, “on_each”, processa o primeiro usuário com índice 0, representado pelo campo msg.index. Em seguida, o segundo usuário, com índice 1, é processado, e assim por diante, até percorrer toda a lista.
Ao final da iteração completa sobre a lista, a ramificação "on_end" será executada. Nessa etapa os dados originais do fluxo, até o momento da execução do conector Loop/ForEach, serão retornados—neste caso, a lista original de usuários. Isso significa que quaisquer alterações realizadas dentro da ramificação "on_each" permaneceram isoladas nessa execução específica, sem impactar diretamente os dados originais do fluxo.
Execuções avançadas
Execução aninhada
É possível também realizar a execução de forma aninhada utilizando múltiplos conectores Loop/ForEach em sequência. A iteração aninhada permite a leitura de uma matriz de dados. No exemplo abaixo foi criada uma matriz 4x4, onde o primeiro conector Loop/ForEach irá ler uma linha em cada iteração, e o segundo conector será responsável por iterar sobre as colunas desta linha.
Os conectores Sub-Flow permitem a execução de subfluxos dentro de um fluxo principal. Subfluxos são pequenos trechos que podem ser chamados pelo fluxo principal para realizar operações, validações ou manipulações de dados de forma isolada da execução principal. Eles podem conter um ou mais conectores e, ao final da execução, podem retornar ao fluxo principal com os dados processados. De maneira análoga à programação, funcionam como funções que executam uma tarefa específica antes de devolver o resultado ao fluxo principal.
No exemplo abaixo, um fluxo percorre uma lista de usuários e chama um subfluxo responsável por verificar se cada usuário está cadastrado em um banco de dados interno. Se o usuário já existir, seus dados serão atualizados; caso contrário, um novo registro será criado. A combinação do Sub-Flow com o Loop/ForEach permite estruturar fluxos mais organizados, reutilizáveis e flexíveis, facilitando a manutenção e escalabilidade do processo.
Múltiplas ramificações em saída on_each
O conector Loop/ForEach permite que múltiplos conectores estejam ligados a sua saída ‘on_each’ (saída por onde os dados iterados de uma lista serão disponibilizados). Com isso é importante entender como estes conectores são executados num contexto onde há dois ou mais conectores conectados a esta saída, gerando múltiplas ramificações.
Quando temos um cenário onde é preciso realizar a conexão de mais de um conector na saída ‘on_each’, a ordem em que estes conectores serão executados será de acordo com a ordem em que a ramificação foi criada na saída on_each. No exemplo abaixo está sendo realizado a primeira conexão com o conector Floui Database - Atualizar Registro, e em seguida será realizada a conexão com o conector Floui Database - Consultar por Campo, ambos na saída ‘on_each’. Isto significa que durante a execução a ramificação com o conector Floui Database - Atualizar Registro será a primeira a ser executada até o seu fim, e em seguida irá executar a ramificação do conector Floui Database - Consultar por Campo.