Nó 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
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 atrue
.equals false
: Verifica se o valor é igual afalse
.equals null
: Verifica se o valor é igual anull
.not equals null
: Verifica se o valor não é igual anull
.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 que50
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:
is less than 10
→ Saída 1is between 10 and 30
→ Saída 2is greater than 30
→ Saída 3
Resultado:
As temperaturas serão roteadas com base em seu valor.