# Lógica IF/THEN

## Visão geral técnica e recursos

{% columns %}
{% column %}
O **da Lógica IF/THEN** O nó cria pontos de ramificação inteligentes que direcionam os dados recebidos por diferentes caminhos com base em condições lógicas. Ele recebe dados de outros nós, valida-os em relação às condições definidas por você e encaminha os resultados por caminhos diferentes com base no sucesso ou na falha da validação. O nó permite criar fluxos de trabalho IF->THEN/ELSE em que diferentes ações ocorrem automaticamente com base em condições de dados em tempo real.
{% endcolumn %}

{% column %}

<figure><img src="/files/32ad7ee030b74b719c2bb01f9a348323f462945c" alt="IF/THEN Logic node tile"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
O **da Lógica IF/THEN** Os nós são configurados separadamente para cada fluxo na interface da plataforma Navixy. Cada nó contém apenas uma fórmula lógica, com base em [Navixy IoT Logic Expression Language](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md).\
Para opções de sintaxe específicas relacionadas a expressões lógicas, consulte [Expressões e sintaxe da Lógica IF/THEN](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).
{% endhint %}

<figure><img src="/files/7e26fb956ef41fdf09a793448d51dd620f128aba" alt="IF/THEN Logic node positioning in the flow architecture (with inbound and outbound connections)"><figcaption></figcaption></figure>

### Como os nós de lógica IF/THEN funcionam

Quando os dados chegam pela primeira vez a um **da Lógica IF/THEN** nó, o sistema cria um atributo booleano definido pelo usuário que armazena os resultados da avaliação. Cada pacote de dados subsequente é avaliado em relação à sua expressão lógica, atualizando o valor desse atributo e roteando os dados de acordo:

* **Resultados verdadeiros**: Os dados fluem pela conexão THEN (verde) com o atributo booleano definido como `true`
* **Resultados falsos**: Os dados fluem pela conexão ELSE (vermelha) com o atributo booleano definido como `false`

Essa avaliação ocorre de forma independente para cada pacote de dados, permitindo que registros diferentes do mesmo dispositivo sigam caminhos diferentes com base em condições em tempo real.

### Integração da arquitetura do fluxo

Os atributos booleanos criados por **da Lógica IF/THEN** nós vão além do roteamento do fluxo e se integram aos recursos mais amplos de monitoramento da Navixy. Como se trata de atributos personalizados definidos pelo usuário, eles podem ser:

* **Monitorados em tempo real**: Veja os resultados da avaliação no [Data Stream Analyzer](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) para solucionar problemas de condições e verificar a lógica
* **Adicionados como sensores personalizados**: Integre à interface principal da Navixy para monitoramento contínuo

Como sensores personalizados, esses atributos permitem dois recursos principais:

* **Disparo de alertas**: Você pode criar regras personalizadas com base no valor de um sensor para receber notificações em caso de desvios. Para detalhes sobre a criação de regras, consulte [Regras e notificações](/docs/user/pt-br/guide/events-and-notifications.md).
* **Entidades monitoradas**: Você pode adicionar um atributo ao widget [A lista de objetos](/docs/user/pt-br/guide/tracking/objects-list.md) para monitorar seu valor juntamente com outras leituras do dispositivo. Para detalhes sobre como criar um sensor personalizado a partir de um atributo do IoT Logic, consulte [Exibição de novos atributos calculados na plataforma Navixy](/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform.md).

{% hint style="info" %}
O **da Lógica IF/THEN** nó requer uma conexão com pelo menos um nó anterior (**Fonte de dados** ou outros nós de processamento) para receber dados de entrada para validação.
{% endhint %}

### Recursos do nó

O **da Lógica IF/THEN** O nó oferece:

* **Roteamento condicional de dados**: Crie fluxos de trabalho ramificados que direcionam automaticamente os dados com base em expressões lógicas que retornam resultados verdadeiros ou falsos.
* **Validação em tempo real**: Teste os dados recebidos do dispositivo em relação às regras de negócio e aos limites operacionais conforme os dados chegam.
* **Suporte a condições complexas**: Combine vários parâmetros usando operadores lógicos (AND, OR etc.) para uma tomada de decisão sofisticada.
* **Condições baseadas em cerca virtual**: Faça referência diretamente a cercas virtuais da Navixy nomeadas nas expressões usando `inGeofence()`, `enterGeofence()` e `leaveGeofence()` funções, sem comparações manuais de coordenadas. Veja [Funções de cerca virtual](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/geofence-functions.md).
* **Criação de atributos**: Gere atributos booleanos que registrem os resultados da validação para uso em outros nós, nos sistemas de monitoramento da Navixy e em serviços de terceiros.
* **Caminhos de saída flexíveis**: Encaminhe os dados pelas conexões THEN (verdadeiro) e ELSE (falso) para acionar diferentes ações subsequentes.

## Opções de configuração

{% columns %}
{% column valign="middle" %}
O **da Lógica IF/THEN** O nó permite definir expressões condicionais que avaliam os dados recebidos e criam caminhos de ramificação em seu fluxo com base nos resultados.
{% endcolumn %}

{% column %}

<figure><img src="/files/b3e44be36024c63f218787afdb79ac5cbae83a5e" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Vamos ver quais elementos este nó usa e o que você pode configurar ao trabalhar com ele.

### Etapas de configuração

{% stepper %}
{% step %}
**Especifique o nome do nó**

Insira um nome descritivo para este **da Lógica IF/THEN** nó.

* Use um nome que identifique claramente o objetivo da validação (por exemplo, *Verificação de alerta de temperatura*, *Detecção de violação de velocidade*).
* Esse nome será exibido no diagrama do fluxo para facilitar a identificação.
  {% endstep %}

{% step %}
**Defina o nome da expressão**

Insira o nome do atributo booleano que armazenará o resultado da validação.

* Esse atributo aparecerá em [Data Stream Analyzer](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) e ficará disponível para uso em nós subsequentes.
* Use nomes descritivos como *high\_temperature\_alert* ou speed\_violation\_detected.
* O sistema gerará automaticamente nomes como *logic\_1*, *logic\_2* se não forem especificados.
  {% endstep %}

{% step %}
**Crie uma expressão condicional**

Crie sua instrução lógica usando o campo de expressão.

* Use [operadores lógicos de acordo com a sintaxe do Navixy Expression Language](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md) para fazer referência a parâmetros do dispositivo e atributos calculados.
* A expressão deve retornar um valor booleano (verdadeiro/falso) para o funcionamento adequado do nó.
* Use o [recurso de preenchimento automático](/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md#autofill-attribute-names) para selecionar atributos disponíveis das fontes de dados conectadas.
* Para fazer referência a uma cerca virtual da Navixy como condição, use o [seletor de cerca virtual](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/geofence-functions.md) no campo de expressão.
  {% endstep %}

{% step %}
**Salve a configuração do nó**

Clique **Aplicar alterações** para concluir a criação do nó.
{% endstep %}

{% step %}
**Conecte os caminhos de saída**

Depois de configurar o nó, você precisa estabelecer conexões para os resultados da validação.

* **Conexão THEN** (verde): Conecta-se a nós que devem processar dados quando a expressão é avaliada como verdadeira.
* **Conexão ELSE** (vermelha): Conecta-se a nós que devem processar dados quando a expressão é avaliada como falsa ou nula.
* A conexão THEN é obrigatória, enquanto a conexão ELSE é opcional.
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}
Quando expressões lógicas não podem ser avaliadas devido a valores nulos, tipos de dados inválidos ou erros de sintaxe, o resultado é tratado como `false`e os dados fluem pelo caminho ELSE.
{% endhint %}

Para obter informações detalhadas sobre sintaxe de expressão, operadores e comportamento do fluxo de dados, consulte [Expressões e sintaxe da Lógica IF/THEN](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).

## Conexões de saída e fluxo de dados

O **da Lógica IF/THEN** O nó cria dois caminhos de saída distintos com base nos resultados da avaliação da expressão.

<figure><img src="/files/1c1ed2c11238bd030612ca58d61043d8a62955f4" alt="IF/THEN Logic node showing THEN and ELSE connections with green and red color coding"><figcaption></figcaption></figure>

### Conexão THEN (<mark style="color:green;">green</mark>)

* **É ativada quando**: A expressão lógica retorna `true`.
* **Requisito de conexão**: Obrigatório — todo nó de lógica IF/THEN deve ter pelo menos uma saída THEN.
* **Várias conexões**: Pode se conectar a vários nós subsequentes para processamento paralelo.
* **Usos típicos**: Acionar alertas, processamento especial, cálculos condicionais ou roteamento de dados para endpoints específicos.

### Conexão ELSE (<mark style="color:vermelha;">vermelha</mark>)

* **É ativada quando**: A expressão lógica retorna `false`, `nulo`, ou encontra erros de avaliação.
* **Requisito de conexão**: Opcional — use somente quando precisar lidar com resultados negativos.
* **Tratamento de erros**: Processa casos em que as expressões não podem ser avaliadas devido a dados ausentes ou erros de sintaxe.
* **Usos típicos**: Registrar validações com falha, rotear dados por caminhos alternativos de processamento ou continuar as operações normais.

### **Requisito de nó terminal**

Ao conectar-se a nós terminais ([Ação](/docs/user/pt-br/guide/account/iot-logic/nodes/action-node.md), [Webhook](/docs/user/pt-br/guide/account/iot-logic/nodes/webhook-node.md)) que não oferecem suporte a conexões de saída, crie conexões paralelas para garantir que tanto o nó terminal quanto um Endpoint de Saída recebam dados:

<figure><img src="/files/1792f9b5d3bfbf35555d1ce7e3c6d18f65e65b74" alt=""><figcaption></figcaption></figure>

**Por que ambos os ramos precisam de Endpoints de Saída:**

* Garante a persistência dos dados e a visibilidade do sistema
* Permite a validação do fluxo
* Ambos os ramos podem compartilhar o mesmo nó Endpoint de Saída

{% hint style="danger" %}
**Erro de validação:** Fluxos sem Endpoints de Saída em todos os ramos não serão salvos e exibirão o erro.
{% endhint %}

## Perguntas frequentes

#### Posso usar atributos criados por outros nós nas expressões de lógica IF/THEN?

Sim. **da Lógica IF/THEN** nós podem fazer referência a quaisquer atributos disponíveis nas fontes de dados conectadas, incluindo parâmetros originais do dispositivo e atributos calculados por nós **Iniciar atributo** anteriores. O recurso de preenchimento automático ajuda você a selecionar entre todos os atributos disponíveis.

#### O que acontece se minha expressão contiver erros de sintaxe?

Se uma expressão contiver erros de sintaxe ou não puder ser avaliada, o **da Lógica IF/THEN** nó trata o resultado como `false` e encaminha os dados pela conexão ELSE. Verifique a sintaxe da expressão e certifique-se de que todos os atributos referenciados existam em seu fluxo de dados.

#### Posso conectar vários nós à mesma saída do nó de lógica IF/THEN?

Sim. As conexões THEN e ELSE suportam várias conexões de saída, permitindo acionar várias ações diferentes com base na mesma condição lógica. Isso possibilita o processamento paralelo para fluxos de trabalho empresariais complexos.

#### Como monitoro os resultados do nó de lógica IF/THEN?

Os resultados do nó de lógica IF/THEN aparecem como atributos booleanos na [Data Stream Analyzer](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) tabela. Selecione seus dispositivos e procure o nome do atributo que você especificou no campo de nome da expressão. Os valores serão exibidos como `true` ou `false` com base nos resultados da avaliação.

#### Posso encadear vários nós de lógica IF/THEN?

Sim. Você pode conectar nós **da Lógica IF/THEN** em sequência para criar árvores de decisão complexas. Cada **da Lógica IF/THEN** nó pode fazer referência aos atributos booleanos criados pelos nós **da Lógica IF/THEN** anteriores, permitindo fluxos de trabalho de validação sofisticados em várias etapas.

<figure><img src="/files/447017260e05dd911df2e9c71d64facb66554f8d" alt="Example flow showing multiple IF/THEN Logic nodes connected in sequence for complex decision trees"><figcaption></figcaption></figure>

#### Por que os ramos de lógica IF/THEN devem se conectar a Endpoints de Saída?

Todo ramo de lógica IF/THEN deve terminar em um Endpoint de Saída para validação do fluxo de dados e visibilidade do sistema. Ao usar nós terminais (Action, Webhook) que não oferecem suporte a conexões de saída, crie uma conexão paralela do nó de lógica IF/THEN diretamente para um Endpoint de Saída. Ambos os ramos podem compartilhar o mesmo Endpoint de Saída, se necessário.


---

# 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://navixy.com/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node.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.
