# Linter: Detecção de erros e verificações de qualidade

O Linter é uma ferramenta incorporada ao Canvas que identifica possíveis problemas de configuração e exibe alertas para ajudá-lo a detectá-los e corrigi-los mais rapidamente. A maioria dos alertas não exige correção imediata e não impede a criação dos seus fluxos.

## **Como os alertas funcionam**

Enquanto você constrói um pipeline ou cápsula, o Linter oferece recomendações baseadas em boas práticas para ajudar a melhorar o fluxo e identificar possíveis problemas na integração. Esses problemas podem ser críticos, impedindo que a integração seja executada ou implantada, ou alertas menores que orientam para uma configuração mais segura e eficiente.

## **Onde os alertas aparecem**

Os alertas são exibidos em dois locais:

* Diretamente no conector com problema (passe o mouse sobre o conector para detalhes), ou
* Na aba **Problemas** do Painel de Execução.

Cada alerta inclui uma breve descrição do problema e um link para a documentação. Ao visualizar alertas na aba **Problemas**, você pode clicar em **Configurar passo** para navegar diretamente até o conector e abrir seu formulário de configuração, independentemente do nível do fluxo.

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

## **Tipos de alertas**

Os alertas são divididos em **Erros** e **Avisos**.

### **Erros**

Alertas de **Erro** indicam falhas graves na criação do pipeline ou cápsula. Eles devem ser corrigidos antes de salvar o projeto.

Os erros são categorizados da seguinte forma:

* **Estrutura:** Problemas estruturais que impedem o processamento do fluxo de integração.

### **Avisos**

Alertas de **Aviso** indicam oportunidades de melhoria na criação do pipeline ou cápsula.

Os avisos são categorizados da seguinte forma:

* **Boas práticas:** Hábitos de construção que melhoram a performance do pipeline ou cápsula e facilitam a manutenção futura.

## **Lista de alertas**

### **Trigger**

<details>

<summary><strong>Trigger não configurado. Para implantar o pipeline, configure o trigger (Boas práticas).</strong></summary>

O trigger define como a execução do pipeline se inicia. Para configurá-lo, selecione uma das opções disponíveis e conecte-a ao início do fluxo. Essa configuração é necessária para implantação. Para mais detalhes, consulte a documentação [Visão geral de Triggers](/documentation/connectors-and-triggers/pt-br/triggers/overview.md).

{% hint style="info" %}
É possível salvar o pipeline sem configurar o trigger, mas não será possível implantá-lo.
{% endhint %}

</details>

### **Choice**

<details>

<summary><strong>O conector Choice precisa ter ao menos um "when" configurado (Estrutura).</strong></summary>

O Choice permite ramificação condicional dentro de um pipeline ou cápsula. Para utilizá-lo corretamente, configure pelo menos uma condição **when**. Cada condição define um caminho específico para o fluxo. [Saiba mais](/documentation/connectors-and-triggers/pt-br/connectors/logic/choice.md).

</details>

<details>

<summary><strong>O conector Choice precisa ter um "otherwise" configurado (Estrutura).</strong></summary>

A condição **otherwise** é executada quando nenhuma das condições **when** se aplica. Configure pelo menos uma condição **otherwise** para garantir a execução contínua do fluxo. [Saiba mais](/documentation/connectors-and-triggers/pt-br/connectors/logic/choice.md).

</details>

### **Conectores de subfluxo**

Os seguintes alertas se aplicam a conectores que estruturam subfluxos:

* [Block Execution](/documentation/connectors-and-triggers/pt-br/connectors/logic/block-execution.md)
* [Do While](/documentation/connectors-and-triggers/pt-br/connectors/logic/do-while.md)
* [For Each](/documentation/connectors-and-triggers/pt-br/connectors/logic/for-each.md)
* [Retry](/documentation/connectors-and-triggers/pt-br/connectors/logic/retry.md)
* [Stream Excel](/documentation/connectors-and-triggers/pt-br/connectors/files/stream-excel.md)
* [Stream File Reader](/documentation/connectors-and-triggers/pt-br/connectors/files/stream-file-reader.md)
* [Stream File Reader Pattern](/documentation/connectors-and-triggers/pt-br/connectors/files/stream-file-reader-pattern.md)
* [Stream JSON File Reader](/documentation/connectors-and-triggers/pt-br/connectors/files/stream-json-file-reader.md)
* [Stream XML File Reader](/documentation/connectors-and-triggers/pt-br/connectors/files/stream-xml-file-reader.md)
* [Stream DB V3](/documentation/connectors-and-triggers/pt-br/connectors/structured-data/stream-db-v3.md)

<details>

<summary><strong>O OnProcess precisa ter ao menos um conector conectado (Estrutura).</strong></summary>

O OnProcess define um dos subfluxos em um pipeline ou cápsula. Adicione e conecte pelo menos um conector para que o fluxo não seja interrompido.

</details>

<details>

<summary><strong>O OnException precisa ter ao menos um conector conectado (Boas práticas).</strong></summary>

O OnException trata exceções que ocorrem durante a execução do OnProcess. Adicione e conecte pelo menos um conector para garantir o tratamento adequado de erros.

{% hint style="info" %}
Esta regra não se aplica ao conector **Block Execution**.
{% endhint %}

</details>

<details>

<summary><strong>Existe ao menos um problema dentro do OnProcess (Estrutura).</strong></summary>

Revise e resolva os problemas dentro do subfluxo OnProcess para continuar construindo seu pipeline ou cápsula.

</details>

<details>

<summary><strong>Existe ao menos um problema dentro do OnException (Estrutura).</strong></summary>

Revise e resolva os problemas dentro do subfluxo OnException para continuar construindo seu pipeline ou cápsula.

</details>

### **Parallel Execution**

<details>

<summary><strong>O conector Parallel precisa ter ao menos uma execução configurada (Estrutura).</strong></summary>

O **Parallel Execution** permite configurar múltiplas execuções simultaneamente. Conecte-o a pelo menos outro conector para evitar interrupção do fluxo. [Saiba mais](/documentation/connectors-and-triggers/pt-br/connectors/logic/parallel-execution.md).

{% hint style="info" %}
O **Parallel Execution** deve sempre ser seguido por outro conector para que o fluxo seja executado.
{% endhint %}

</details>

<details>

<summary><strong>O conector Parallel deve ter ao menos duas execuções configuradas (Boas práticas).</strong></summary>

Como boa prática, configure o **Parallel Execution** apenas quando duas ou mais execuções precisarem rodar ao mesmo tempo. [Saiba mais](/documentation/connectors-and-triggers/pt-br/connectors/logic/parallel-execution.md).

</details>

### **Session Management**

<details>

<summary><strong>O campo não foi declarado anteriormente (Boas práticas).</strong></summary>

Um campo não pode ser utilizado (**GET**) se não foi previamente declarado (**PUT**). [Saiba mais](/documentation/connectors-and-triggers/pt-br/connectors/structured-data/session-management.md).

</details>

<details>

<summary><strong>O campo foi declarado, mas não está sendo utilizado (Boas práticas).</strong></summary>

Um campo previamente declarado (**PUT**) não está sendo usado. Configure um novo conector de **Session Management** para usar (**GET**) ou excluir (**DELETE**) o campo. [Saiba mais](/documentation/connectors-and-triggers/pt-br/connectors/structured-data/session-management.md).

</details>

### **Versões descontinuadas**

<details>

<summary><strong>Versão do conector descontinuada. Existe uma versão nova desse conector (Boas práticas).</strong></summary>

Você está usando uma versão descontinuada de um conector. Uma versão mais recente e aprimorada está disponível.

{% hint style="info" %}
Versões descontinuadas ainda podem ser usadas, mas apenas a versão mais recente recebe atualizações e melhorias.
{% endhint %}

</details>

### **Cápsulas**

<details>

<summary><strong>Esta Cápsula não pode ser usada aqui porque ela não existe neste realm (Estrutura).</strong></summary>

A cápsula que você está tentando usar não existe no realm atual. Exclua-a ou substitua-a por outro conector ou cápsula disponível no seu realm.

</details>


---

# 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.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/canvas-building-validation.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.
