# Módulo Loop Do While

* [Definição](#definicao)
* [Configuração do módulo](#configuracao-do-modulo-loop-do-while)
  * [Crie suas condicionais](#crie-suas-condicionais)
    * [Parâmetro](#parametro)
  * [Exemplo](#exemplo)

### **Definição**

O módulo ferramental "**Loop Do While"**, módulo padrão do **Skyone Studio** para a utilização em qualquer fluxo, foi criado para processar dados externos relacionados à quantidade de registros, sobre os quais não temos informação *a priori*. Ele é útil por conta da necessidade de termos uma ou mais interações para consumir todos os dados em um fluxo, um processo que também é conhecido como leitura paginada.

O módulo "**Loop Do While"** é composto por duas operações, **DO** e **WHILE**, que marcam, respectivamente, o começo e o fim de uma repetição (loop).

A estrutura desse tipo de loop pode ser representada da seguinte maneira:

```json
var loop_count = -1;
do 
{
    loop_count ++;
	//bloco de código que será executado
}while(condition);
```

Observe que o **DO** é inicializado com valor de **loop\_count** **= -1**, mas a primeira instrução a ser executada é seu incremento para “&#x30;**”**. Isso mantém a consistência com o [**FOR**](/skyone-studio/integracoes/fluxos/modulos-ferramentais/modulo-loop-for.md), no qual a primeira execução do loop também tem o valor “&#x30;**”**. Além disso, assim como no **FOR**, a variável **loop\_count** também contém, na saída do loop, o valor da quantidade de execuções menos um.

Para representar o **loop\_count** (contador do loop), a operação **DO** do módulo **Do While** inicializa e mantém um parâmetro equivalente, que poderá ser acessado por qualquer módulo conectado ao fluxo, denominado **loopCount**. Este parâmetro armazena a posição de execução do fluxo, iniciando do valor “0” para a primeira execução, incrementando-o a cada execução.

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

O módulo "**Loop Do While"** 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/yCNyPtyjaDNv4aTtkyNu" 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 %}

#### Crie suas condicionais <a href="#crie-suas-condicionais" id="crie-suas-condicionais"></a>

Na área de "**Crie sua condicional"**, há os seguintes campos e opções:

* **Satisfazer todas:** se deseja que todas as condições configuradas sejam seguidas;
* **Satisfazer qualquer uma:** quando é indiferente seguir todas as condições configuradas;
* **Variável 1**: digite ou arraste um parâmetro de outro componente do fluxo para informar uma variável para comparação ou utilize uma [SMOP](/skyone-studio/integracoes/operacoes-de-dados/smop-pequenas-operacoes.md) (no ícone de +);
* **Condições**: comparações entre dois valores (igual, diferente de, maior que, menor que, etc);
* **Variável 2**: digite ou arraste um parâmetro de outro componente do fluxo para informar outra variável para comparação ou utilize uma [SMOP](/skyone-studio/integracoes/fluxos/modulos-ferramentais/modulo-loop-do-while.md) (no ícone de +);
* **Adicionar condição**: clique para adicionar mais uma condição;
* **Validar:** clique para validar as condições
* **Resultado**: informa se a condição informada é verdadeira ou falsa (**True**/**False**).

<figure><img src="/files/9PImSSOjXhvYbV85H9tL" alt=""><figcaption><p>Exemplo de configuração</p></figcaption></figure>

#### **Parâmetro**

O parâmetro **loopCount** da operação **DO** está sempre disponível para quaisquer módulos dentro do loop e também após a execução do loop, aparecendo no lado esquerdo do modal de configuração de cada operação do fluxo, desde que as operações estejam todas conectadas pelas linhas do fluxo.

Após a finalização do loop, o parâmetro **loopCount** conterá o total de execuções menos 1 (uma vez que a variável começa em 0).

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

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

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

<figure><img src="/files/IXdgpkYY9euSBzBbxYUY" 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-do-while.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.
