- Introducción
- Primeros pasos
- Modelado de procesos con BPMN
- Comprender el modelado del proceso
- Abrir el lienzo de modelado
- Modelar tu proceso
- Alinear y conectar elementos BPMN
- Autopilot para Maestro (vista previa)
- Repositorio de procesos
- Modelado de procesos con gestión de casos
- Diseñar un esquema de entidad de caso persistente
- Definir claves de caso (de sistema o externo)
- Establecer contratos de entrada/salida y de escritura diferida de tareas
- Reglas de salida y terminación temprana de etapas
- Modelar las etapas principal y secundaria
- Iniciar un caso desde Data Fabric
- Implementar perfiles y permisos a nivel de etapa
- Establecer SLA y reglas de escalado automatizadas
- Configurar un bucle de reprocesamiento (reingreso)
- Gestionar instancias de casos en ejecución: pausar, migrar y reintentar
- Diccionario de componentes de la gestión de casos de Maestro
- Modelado de procesos con Flow
- Implementación del proceso
- Depuración
- Simular
- Publicar y actualizar procesos de agente
- Escenarios de implementación comunes
- Extracción y validación de documentos
- Operaciones de proceso
- Supervisión de procesos
- Optimización de procesos
- Información de referencia
Cómo fluyen los datos entre nodos a través de la salida del nodo y las variables, con reglas de ámbito para subflujos y ramas.
Qué es
Los nodos en Flow no comparten datos automáticamente. Cuando un nodo produce una salida, como una respuesta HTTP o un valor calculado, los nodos posteriores acceden a esa salida explícitamente a través de expresiones. Las variables y el flujo de datos son la forma en que conectas los datos entre nodos y los valores persistentes en todo tu proceso.
Hay dos formas en que los datos se mueven a través de un proceso:
- Salida del nodo : cada nodo produce una salida a la que los nodos posteriores pueden hacer referencia
- Variables : variables a nivel de proceso que defines para almacenar y pasar valores entre nodos
Para obtener la gramática completa de las expresiones, los operadores y cómo escribir referencias, consulta Sintaxis de las expresiones $vars
Cómo funciona
Salida del nodo
Cada nodo que produce datos los pone a disposición a través de $vars.<nodeName>.output. El nombre del nodo se asigna automáticamente en función del tipo de nodo; por ejemplo, el primer nodo de solicitud HTTP se llama httpRequest1, el segundo es httpRequest2.
Puedes ver el nombre de la variable de un nodo en el panel de propiedades cuando se selecciona el nodo.
// Access HTTP Request response
$vars.httpRequest1.output.body
$vars.httpRequest1.output.statusCode
// Access Script return value
$vars.script1.output
// Access a second HTTP Request
$vars.httpRequest2.output.body
// Access HTTP Request response
$vars.httpRequest1.output.body
$vars.httpRequest1.output.statusCode
// Access Script return value
$vars.script1.output
// Access a second HTTP Request
$vars.httpRequest2.output.body
La estructura de salida depende del tipo de nodo. Consulta la página de referencia de cada nodo para su forma de salida específica.
Variables
Las variables son valores a nivel de proceso que persisten durante una sola ejecución. Las defines en la pestaña Variables del panel de propiedades.
Cada variable tiene:
- Nombre : cómo se hace referencia a él en las expresiones (p. ej.,
$vars.orderTotal) - Tipo : cadena, número, booleano, objeto o matriz
- Dirección : entrada, salida o bidireccional
Cuándo utilizar variables frente a salida de nodo:
- La salida del nodo se ajusta a los datos que pasan de un nodo al siguiente. Este es el patrón más común.
- Las variables se ajustan a valores que deben ser accesibles en todo el proceso, o valores que definen entradas y salidas para el propio proceso.
Nombrar variables claramente: los nombres descriptivos en minúsculas con guiones o camelCase, como customerEmail, invoiceTotal, apiResponse , permanecen legibles en los seguimientos de ejecución a lo largo del tiempo. Los nombres de una sola letra y las abreviaturas pierden significado rápidamente.
Entradas de desencadenador
Las variables de entrada son propiedad de su desencadenador, no del proceso. Cuando se activa un desencadenador, sus entradas están disponibles como $vars.<triggerName>.output.<inputName>:
// Access an input defined on a Manual Trigger named "manualTrigger1"
$vars.manualTrigger1.output.userId
// Access an input defined on a Manual Trigger named "manualTrigger1"
$vars.manualTrigger1.output.userId
Esto se aplica a todos los tipos de desencadenador. Si tu proceso tiene varios desencadenadores, cada desencadenador posee sus propias entradas: los nodos posteriores hacen referencia al desencadenador específico que inició la ejecución.
Definiciones de variables
Las definiciones de variables se encuentran en la pestaña Variables del panel de propiedades. Cada definición almacena el nombre, el tipo y la dirección de la variable para que se pueda hacer referencia al valor de forma coherente durante una ejecución.
Actualizaciones de variables
Las variables pueden actualizarse por configuración de nodo o por salida de nodo de Script.
Desde cualquier nodo: sección Actualizar variable
Cada nodo tiene una sección Actualizar variable en el panel de propiedades. La sección almacena un destino de variable de escritura (salida o dirección bidireccional) y la expresión JavaScript asignada a ella. La expresión se evalúa después de que se complete el nodo.
Desde un nodo de Script: valor devuelto
Se puede acceder al valor devuelto de un nodo de script en sentido descendente como $vars.<scriptName>.output. El nodo Script también tiene la misma sección Actualizar variable que otros nodos para escrituras directas de variables:
// The return value becomes $vars.script1.output
return {
orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity
};
// The return value becomes $vars.script1.output
return {
orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity
};
Reglas de ámbito
Un nodo puede acceder a la salida desde:
- Nodos ascendentes en el mismo ámbito : nodos en el mismo nivel que se ejecutaron antes
- Nodos contenedores principales : si el nodo está dentro de un subflujo o bucle, puede acceder al ámbito del principal
Un nodo no puede acceder a la salida de:
- Nodos en una rama diferente : si una Decisión o Switch envió la ejecución por una ruta diferente, la salida de esos nodos no está disponible
- Nodos que no se han ejecutado : la salida solo existe después de que se ejecuta un nodo
Ámbito de subflujo
Los subflujos crean su propio ámbito de variable. Los nodos dentro de un subflujo pueden acceder a:
- Otros nodos dentro del mismo subflujo
- El ámbito del proceso principal
Las variables actualizadas dentro de un subflujo tienen espacio de nombres para evitar colisiones con el proceso principal. Por ejemplo, una variable counter dentro de un subflujo llamado subflow1 se referencia como $vars.subflow1.counter desde fuera del subflujo.
El valor devuelto del subflujo es accesible para el proceso principal como $vars.<subflowName>.output.
Ramas paralelas
Las ramas paralelas tienen contextos de ejecución independientes. Mutar una variable dentro de una rama no hace que el cambio sea visible en otra rama. Un nodo Fusionar consolida las salidas de rutas paralelas cuando las rutas necesitan volver a unirse.
Patrones
Crear cadenas dinámicas
Los literales de plantilla en un nodo de Script combinan variables y texto estático:
return `Hello ${firstName}, your order #${orderId} has shipped.`;
return `Hello ${firstName}, your order #${orderId} has shipped.`;
Acumular valores en un bucle
Un patrón acumulador utiliza una matriz inicializada antes del nodo Bucle y anexada dentro del cuerpo del bucle:
// Script node inside the Loop body
results.push(item.processedValue);
return results;
// Script node inside the Loop body
results.push(item.processedValue);
return results;
Mantener los valores secretos fuera de los registros
Los valores de las variables secretas están enmascarados en la IU, pero pueden aparecer en los datos de seguimiento exportados. Registrarlos es un riesgo de exposición de datos.
Ejemplo práctico
Un proceso que obtiene un usuario de una API y lo enruta en función de su rol:
Paso 1: Solicitud HTTP (httpRequest1): OBTENER https://api.example.com/users/42
Paso 2: Script (script1): extrae el rol del usuario
const user = $vars.httpRequest1.output.body;
return {
name: user.name,
role: user.role,
isAdmin: user.role === "admin"
};
const user = $vars.httpRequest1.output.body;
return {
name: user.name,
role: user.role,
isAdmin: user.role === "admin"
};
Paso 3: Decisión (decision1): rama en estado de administrador
Expresión: $vars.script1.output.isAdmin === true
- Verdadero → conceder acceso de administrador
- Falso → otorgar acceso estándar
Páginas relacionadas
- Sintaxis de las expresiones : gramática
$vars, operadores, dónde se escriben las expresiones, errores comunes - Nodo de script : escritura de JavaScript, valores devueltos, acceso
$vars - Nodo de decisión : ramificación en expresiones
- El lienzo : panel de propiedades, pestaña Variables
- Qué es
- Cómo funciona
- Salida del nodo
- Variables
- Entradas de desencadenador
- Definiciones de variables
- Actualizaciones de variables
- Reglas de ámbito
- Ámbito de subflujo
- Ramas paralelas
- Patrones
- Crear cadenas dinámicas
- Acumular valores en un bucle
- Mantener los valores secretos fuera de los registros
- Ejemplo práctico
- Páginas relacionadas