Conectores
Core

Loop - FOR

15min

Objetivo/Resumo

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.

Criando um fluxo utilizando o conector For

1. Configurar o fluxo com For

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


2. Definir a expressão escolhida

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

Text


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


3. Configurar portas de saídas

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:

Go

  • {{ $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.

Exemplos práticos

Exemplo #1: Iterar sobre lista no Template

Passo 1: Criar uma lista de objetos

Vamos criar uma lista de objetos que representam frutas com suas propriedades:

Go


Passo 2: Configurar o conector For

No conector For, defina a expressão dinâmica para iterar sobre a lista:

Go


Passo 3: Configurar a saída Initial

No bloco initial, configure para exibir o índice e as propriedades do objeto atual:

Go


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.

Exemplo #2: Iterar sobre códigos de produtos

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

Go


Passo 2: Configurar o conector For

No conector For, defina a expressão dinâmica para iterar sobre a lista:

Go


Passo 3: Configurar a Saída Initial

No bloco initial, configure para mapear o código antigo para o novo:

Go


Exemplo #3: Paginação de retorno de dados do Banco

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:

Go


Passo 2: Configurar o conector For

No conector For, defina a expressão dinâmica para iterar sobre a lista de dados:

Go


Passo 3: Configurar a saída Initial

No bloco initial, configure para processar os dados em páginas de tamanho 2:

Go


Conclusão

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.

Updated 25 Oct 2024
Doc contributor
Doc contributor
Did this page help you?