Saltearse al contenido

Switch

El modulo Switch evalua multiples condiciones definidas como rutas y enruta los datos hacia las salidas correspondientes. Funciona de forma similar a un switch/case en programacion. Soporta dos modos de evaluacion: first_match (solo la primera coincidencia) y all_matches (todas las coincidencias en paralelo). Cada ruta define un campo a evaluar, un operador de comparacion y un valor de referencia. Los operadores disponibles incluyen: igualdad, desigualdad, mayor/menor que, contiene, empieza/termina con, esta vacio, pertenece a lista, y expresiones regulares. Si ninguna condicion se cumple, los datos se envian por la ruta Default. Soporta hasta 4 rutas personalizadas mas la ruta Default.

ParametroTipoRequeridoDescripcion
modeselectSiModo de evaluacion: Primera coincidencia (first_match) o Todas las coincidencias (all_matches). Por defecto: first_match.
routesswitchRoutesNoDefine las condiciones para cada ruta de salida. Cada ruta evalua un campo con un operador y valor.
{
"nextModule": "modulo_ruta_1",
"data": { "datos_originales": "sin_modificar" },
"_meta_": {
"switchMode": "first_match",
"matchedRoutes": [
{ "index": 0, "name": "Ruta VIP", "target": "procesoVIP" }
],
"usedDefault": false,
"totalRoutes": 3,
"evaluatedAt": "2026-03-23T10:00:00.000Z"
}
}
{
"label": "Switch",
"mode": "first_match",
"routes": [
{ "name": "Ruta VIP", "field": "data.tipo_cliente", "operator": "equals", "value": "vip" },
{ "name": "Ruta Premium", "field": "data.tipo_cliente", "operator": "equals", "value": "premium" },
{ "name": "Monto Alto", "field": "data.monto", "operator": "greater_than", "value": "1000" }
]
}
  • Operadores disponibles: equals (==), not_equals (!=), greater_than (>), less_than (<), greater_or_equal (>=), less_or_equal (<=), contains, not_contains, starts_with, ends_with, is_empty, is_not_empty, in, not_in, regex.
  • En modo first_match, se detiene en la primera ruta que cumple la condicion.
  • En modo all_matches, envia los datos a todas las rutas que cumplen (en paralelo) y retorna un array de nextModule.
  • Las comparaciones de texto (contains, starts_with, ends_with, in, not_in) son case-insensitive.
  • Soporta paths con punto para acceder a propiedades anidadas usando lodash _.get (ej: user.address.city).
  • Para el operador in, los valores se separan por comas (ej: "vip,premium,gold").
  • Soporta hasta 4 rutas configurables (route_0 a route_3) mas la ruta Default.
  • Los datos pasan sin modificar; el Switch solo decide la ruta.
  • Decision - evaluacion binaria simple true/false
  • Router - enrutamiento por valor de campo con coincidencia exacta
  • MergeMultiple - para reunir ramas paralelas del Switch