# Módulo Loop For

* [Definição](#conceitos)
* [Configuração do módulo](#configuracao-do-modulo-loop-for)&#x20;
  * [Loop For](#loop-for)
* [Exemplo](#exemplo)

### **Definição** <a href="#conceitos" id="conceitos"></a>

O módulo ferramental "**Loop** **For"**, módulo padrão do **Skyone Studio** para a utilização em qualquer fluxo, foi criado para suprir a necessidade de processamento de listas de informações. Ele é composto por duas operações, **Begin** e **End**, que marcam, respectivamente, o começo e o fim de uma repetição (loop), com base em um **array** que você deve fornecer no formato JSON.

A primeira operação (**Begin**) aceita como argumento apenas uma lista ou **array** e deriva as 3 declarações do FOR a partir dessa lista. Esse tipo de expressão também é conhecida como **For Each** em algumas linguagens, e pode ser representado da seguinte maneira:

```json
for(loop_counter = 0; loop_counter < array.length ; loop_counter++){
    element = array[loop_counter]; 
	//bloco de código que será executado
} 
```

Para representar o **loop\_counter** (contador do loop) e o **element** do código acima no **Skyone Studio**, a operação **Begin** do módulo **For** inicializa e mantém dois parâmetros equivalentes, que poderão ser acessados por qualquer módulo conectado ao fluxo:

1. **loopCounter**: armazena a posição de execução do fluxo, iniciando do valor “0” para a primeira execução e incrementando-o a cada execução
2. **element**: armazena o elemento do array que está na posição de **loopCounter**, sendo uma forma conveniente de acessar o conteúdo de cada execução do loop

{% hint style="info" %}
A operação **Begin** do módulo **For** somente executará o código dentro do segmento do fluxo localizado entre as operações **For Begin** e **For** **End** se o array passado como parâmetro for válido. Caso o array seja vazio (ou seja, somente “\[]”), o bloco inteiro será ignorado e a execução seguirá para o próximo componente do fluxo depois do **For** **End** ou simplesmente encerrará a execução do fluxo (caso não haja mais operações a serem executadas).
{% endhint %}

### **Configuração do módulo "Loop For"** <a href="#configuracao-do-modulo-loop-for" id="configuracao-do-modulo-loop-for"></a>

O módulo "**Loop For"** aparece na opção **Ferramentas** da edição de um fluxo. Após clicar para adicioná-lo, o modal de configuração será exibido.

<figure><img src="/files/nQkmqqcHmNsmclJkiE5I" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
[Saiba sobre o Cabeçalho do Módulo aqui](/skyone-studio/integracoes/cabecalho-dos-modulos.md).&#x20;
{% endhint %}

#### **Loop For** <a href="#loop-for" id="loop-for"></a>

Preencha os campos necessários do "**Loop For"**, sendo que:

* **Lista (Array)**: aqui você poderá arrastar tanto um parâmetro das operações anteriores como ou um parâmetro do fluxo, assim como informar um array manualmente ou utilizar uma operação [SMOP](/skyone-studio/integracoes/operacoes-de-dados/smop-pequenas-operacoes.md) (no ícone de + );
* **Validar**: valida o array, exibindo a lista completa que será tratada na área de **Pré-visualização dos Dados.**

<figure><img src="/files/76sSkUibcqxHs1eBhCVP" alt=""><figcaption></figcaption></figure>

Para finalizar a configuração do módulo, clique em "**Salvar"**.

#### Exemplo <a href="#exemplo" id="exemplo"></a>

O módulo "**Loop For"** requer que um outro módulo esteja conectado a ele. Observe o exemplo:

<figure><img src="/files/ZBDJe4QJQVNI5YLiGaqO" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skyone.cloud/skyone-studio/integracoes/fluxos/modulos-ferramentais/modulo-loop-for.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
