Loop - FOR
O conector For oferece uma interface simplificada e padronizada para executar iterações sobre uma sequência, como uma lista. Ele permite executar um bloco de código repetidamente para cada item na sequência, sendo essencial para automatizar tarefas repetitivas, processar coleções de dados e realizar operações em massa de maneira eficiente e organizada.
1.1 Crie um fluxo e arraste o conector For para o canvas.
1.2 Selecione o conector For. Na aba de Parametrizações, você encontrará os campos de configuração.
![Document image Document image](https://images.archbee.com/G1NTw6yAi4RDUYbsU8csp/jVjfQiPlasEPeOHp6moKX_untitled-18.png?format=webp)
2.1 Range: Define a quantidade de iterações:
- Fixa: Passando um número inteiro na parametrização.
- Dinâmica: Utilizando o tamanho da lista que você deseja percorrer, com a função len. Exemplo:
![Document image Document image](https://images.archbee.com/G1NTw6yAi4RDUYbsU8csp/_KWDcb8lPvWf6mGh-CH9p_untitled-17.png?format=webp)
Para pegar a iteração atual do For nos passos que estão dentro da porta de saída initial é obrigatório manter o resultado do For na memória, na configuração das Propriedades.
![Document image Document image](https://images.archbee.com/G1NTw6yAi4RDUYbsU8csp/qddtLJ41PF6qAP12UA21M_untitled-16.png?format=webp)
O conector possui duas saídas: initial e next.
Initial:
Define o que você deseja fazer com a iteração. Aqui você pode construir o fluxo desejado utilizando os dados da iteração corrente. Por exemplo, para acessar o índice da iteração e o item correspondente na lista, você pode usar o seguinte código:
- {{ $i := .steps.for.body.index | int -}}: Armazena o índice atual da iteração na variável $i.
- {{ $objeto := index .steps.objectList.body $i -}}: Usa o índice para acessar o item correspondente na lista .steps.objectList.body e armazena na variável $objeto.
Next:
É executado após todas as iterações do bloco initial. Você pode definir a ação a ser tomada conforme sua necessidade. Lembrando que no contexto dos passos que estão dentro do initial mesmo que salvos na memória, eles não podem ser recuperados no next.
Passo 1: Criar uma lista de objetos
Vamos criar uma lista de objetos que representam frutas com suas propriedades:
Passo 2: Configurar o conector For
No conector For, defina a expressão dinâmica para iterar sobre a lista:
Passo 3: Configurar a saída Initial
No bloco initial, configure para exibir o índice e as propriedades do objeto atual:
Passo 4: Configurar a Saída Next
No bloco next, você pode definir uma ação para ser realizada após a conclusão de todas as iterações. Por exemplo, enviar uma mensagem indicando que a iteração foi concluída.
Vamos criar uma lista de produtos com códigos antigos e novos, e determinar o código do novo sistema para cada produto:
Passo 1: Criar uma lista de produtos
Passo 2: Configurar o conector For
No conector For, defina a expressão dinâmica para iterar sobre a lista:
Passo 3: Configurar a Saída Initial
No bloco initial, configure para mapear o código antigo para o novo:
Vamos criar um fluxo para paginar o retorno de dados de um banco:
Passo 1: Obter dados do Banco de dados
Suponha que obtemos um retorno de dados do banco:
Passo 2: Configurar o conector For
No conector For, defina a expressão dinâmica para iterar sobre a lista de dados:
Passo 3: Configurar a saída Initial
No bloco initial, configure para processar os dados em páginas de tamanho 2:
A utilização do conector For permite automatizar tarefas repetitivas e processar coleções de dados de maneira eficiente e organizada. Com as configurações apropriadas, você pode definir a quantidade de iterações e as ações a serem tomadas durante e após as iterações, facilitando a criação de fluxos complexos e personalizados. Utilizando o bloco initial, você pode acessar e manipular os dados da iteração corrente de forma dinâmica, permitindo uma grande flexibilidade na criação de seus fluxos. Com o exemplo prático apresentado, fica claro como o conector For pode ser aplicado para iterar sobre listas de objetos e executar operações específicas para cada item, tornando os processos mais automatizados e eficientes.