Ir al contenido

Router

El modulo Router enruta el flujo de datos hacia diferentes modulos según el valor de un campo especifico o la evaluación de condiciones. Primero evalua el campo configurado (por ejemplo data.tipo) y busca una coincidencia exacta en las rutas definidas. Si no hay coincidencia exacta, intenta evaluar cada clave de ruta como una expresion JavaScript. Si ninguna ruta coincide, redirige al defaultPath. Es útil para dirigir el flujo a diferentes ramas según el tipo de dato, categoría o cualquier valor dinámico.

ParámetroTipoRequeridoDescripción
fieldtextSiExpresion JavaScript que se evalua para obtener el valor a comparar. Ej: data.tipo, data.estado.
routestext (JSON)SiObjeto JSON donde las claves son valores o condiciones a comparar, y los valores son los nombres de los modulos destino. Ej: {"valor1": "modulo_A", "valor2": "modulo_B"}.
defaultPathtextNoNombre del modulo al que se redirige si ninguna ruta coincide.
{
"nextModule": "modulo_destino",
"data": { "datos_originales": "sin_modificar" },
"_meta_": {
"routerField": "valor_evaluado",
"routerPath": "modulo_destino",
"routerDefault": false
}
}
{
"label": "Router",
"field": "data.tipo",
"routes": "{\"factura\": \"procesarFactura\", \"pedido\": \"procesarPedido\", \"devolucion\": \"procesarDevolucion\"}",
"defaultPath": "procesoGenerico"
}
  • El campo field se evalua con eval(), por lo que puede ser cualquier expresion JavaScript valida (ej: data.tipo, data.items.length).
  • Las rutas se comparan primero por coincidencia exacta con el valor del campo.
  • Si no hay coincidencia exacta, cada clave de ruta se evalua como expresion JavaScript booleana.
  • Si routes es una cadena, se parsea como JSON automáticamente.
  • Los datos pasan sin modificar al siguiente nodo; el Router no transforma datos.
  • El _meta_ incluye información sobre la ruta seleccionada y si se uso el defaultPath.
  • Decision - evaluación binaria true/false
  • Switch - evaluación de múltiples condiciones con operadores
  • Merge - para reunir ramas separadas por el Router