Pular para o conteúdo principal

switch

O nó switch é destinado à roteação de mensagens com base em seu conteúdo, estrutura ou outras condições. É uma ferramenta poderosa para criar lógica condicional em fluxos.


Configurações do nó switch

IMG2

1. Nome

Campo para especificar o nome do nó.
O nome é exibido na área de trabalho e ajuda a identificar facilmente o nó.
Se deixado em branco, o nó será chamado de inject.

Exemplo:

  • Nome do nó: check status

2. Propriedade

Indica qual propriedade do objeto de mensagem msg será usada para verificar as condições.

Exemplo:

  • msg.payload
  • msg.topic
  • msg.device.temperature

Também são suportadas propriedades de ambiente (flow, global) e expressões JSONata (começam com $).


3. Verificação

  • Verificação até a primeira correspondência (Padrão):
    A mensagem é enviada apenas para a primeira saída que atende à condição.
  • Verificação de todas as correspondências:
    A mensagem pode ser enviada para várias saídas, se corresponder a várias condições.

3. Regras

Definem a lógica de roteação. Cada condição está vinculada a uma das saídas do nó. A mensagem será enviada para a primeira saída adequada.

Tipos de condições disponíveis:

  • ==: Verifica a igualdade do valor.
  • !=: Verifica a desigualdade.
  • <: Verifica se o valor é menor.
  • <=: Verifica se o valor é menor ou igual.
  • >: Verifica se o valor é maior.
  • >=: Verifica se o valor é maior ou igual.
  • has key: Verifica se o objeto contém a chave especificada.
  • between: Verifica se o valor está dentro do intervalo especificado (inclusive).
  • contains: Verifica se a string ou array contém o valor especificado.
  • matches regex: Verifica se a string corresponde à expressão regular.
  • equals true: Verifica se o valor é igual a true.
  • equals false: Verifica se o valor é igual a false.
  • equals null: Verifica se o valor é igual a null.
  • not equals null: Verifica se o valor não é igual a null.
  • is of type: Verifica se o valor corresponde ao tipo especificado (por exemplo, string, number, boolean).
  • empty: Verifica se a string, array ou objeto está vazio.
  • not empty: Verifica se a string, array ou objeto não está vazio.
  • else: Executa se nenhuma das outras condições for atendida.

Exemplo:

  • msg.payload é maior que 50

Entrada

O nó aceita o objeto msg.
Quais propriedades específicas serão verificadas é definido no campo Propriedade.


Saída

O nó envia a mensagem msg para a saída que corresponde à condição especificada.
Se a mensagem não corresponder a nenhuma condição, ela não será enviada para as saídas.


Exemplos de uso

Exemplo 1: Filtragem de dados de temperatura

Tarefa:
Dividir os dados em três categorias: temperatura baixa, normal e alta.

Fluxo:

[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]

Configurações do nó switch:

  • Propriedade: msg.payload
  • Condições:
    1. is less than 10 → Saída 1
    2. is between 10 and 30 → Saída 2
    3. is greater than 30 → Saída 3

Resultado:
As temperaturas serão roteadas com base em seu valor.