Nodo switch
El nodo switch
está diseñado para enrutar mensajes según su contenido, estructura u otras condiciones. Es una herramienta poderosa para crear lógica condicional en flujos.
Configuraciones del nodo switch
1. Nombre
Campo para especificar el nombre del nodo.
El nombre se muestra en el área de trabajo y ayuda a identificar fácilmente el nodo.
Si se deja vacío, el nodo se llamará inject
.
Ejemplo:
- Nombre del nodo:
check status
2. Propiedad
Indica qué propiedad del objeto del mensaje msg
se utilizará para verificar las condiciones.
Ejemplo:
msg.payload
msg.topic
msg.device.temperature
También se admiten propiedades de contexto (flow
, global
) y expresiones JSONata (que comienzan con $
).
3. Verificación
- Verificación hasta la primera coincidencia (Predeterminado):
El mensaje se envía solo a la primera salida que cumpla con la condición. - Verificación de todas las coincidencias:
El mensaje puede enviarse a varias salidas si cumple con varias condiciones.
3. Reglas
Definen la lógica de enrutamiento. Cada condición está vinculada a una de las salidas del nodo. El mensaje se enviará a la primera salida adecuada.
Tipos de condiciones disponibles:
==
: Verifica la igualdad del valor.!=
: Verifica la desigualdad.<
: Verifica si el valor es menor.<=
: Verifica si el valor es menor o igual.>
: Verifica si el valor es mayor.>=
: Verifica si el valor es mayor o igual.has key
: Verifica si el objeto contiene la clave especificada.between
: Verifica si el valor está en el rango especificado (inclusive).contains
: Verifica si la cadena o el arreglo contiene el valor especificado.matches regex
: Verifica si la cadena coincide con la expresión regular.equals true
: Verifica si el valor es igual atrue
.equals false
: Verifica si el valor es igual afalse
.equals null
: Verifica si el valor es igual anull
.not equals null
: Verifica si el valor no es igual anull
.is of type
: Verifica si el valor es del tipo especificado (por ejemplo,string
,number
,boolean
).empty
: Verifica si la cadena, arreglo u objeto está vacío.not empty
: Verifica si la cadena, arreglo u objeto no está vacío.else
: Se ejecuta si ninguna de las otras condiciones se cumple.
Ejemplo:
msg.payload
es mayor que50
Entradas
El nodo recibe un objeto msg
.
Qué propiedades se verificarán se establece en el campo Propiedad.
Salidas
El nodo envía el mensaje msg
a la salida que cumple con la condición especificada.
Si el mensaje no cumple con ninguna condición, no se envía a las salidas.
Ejemplos de uso
Ejemplo 1: Filtración de datos de temperatura
Tarea:
Clasificar los datos en tres categorías: temperatura baja, normal y alta.
Flujo:
[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]
Configuraciones del nodo switch
:
- Propiedad:
msg.payload
- Condiciones:
is less than 10
→ Salida 1is between 10 and 30
→ Salida 2is greater than 30
→ Salida 3
Resultado:
Las temperaturas se enrutarán según su valor.