- 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
Subflujos para agrupar nodos de proceso en unidades reutilizables y autónomas dentro de un flujo de trabajo principal, con reglas de ámbito variables y configuración de entrada/salida.
Qué es
Un subflujo es un proceso incrustado dentro de otro proceso. Agrupa un conjunto de nodos en una unidad autónoma que se ejecuta como parte del proceso principal y le devuelve la salida. Los subflujos te ayudan a organizar la lógica compleja en piezas reutilizables y manejables.
Cómo funciona
Cuando un proceso principal alcanza un nodo de subflujo, la ejecución entra en el subflujo y ejecuta sus nodos en secuencia. El subflujo tiene su propio ámbito de variable, por lo que las variables definidas en su interior no colisionan con las variables del proceso principal. Cuando el subflujo se completa, su valor devuelto se devuelve al proceso principal y la ejecución continúa desde el siguiente nodo después del subflujo.
Los nodos dentro de un subflujo pueden acceder a:
- Otros nodos dentro del mismo subflujo
- El ámbito del proceso principal
El valor devuelto del subflujo es accesible para el proceso principal como $vars.<subflowName>.output.
Crear un subflujo
Para añadir un subflujo a tu proceso:
- Abre la paleta de nodos en el lienzo.
- Busca o localiza el nodo Subflujo .
- Arrástrelo al lienzo y conéctelo al nodo anterior.
El flujo añade el subflujo como un contenedor colapsable en el lienzo. Selecciónalo para expandirlo y añadir nodos en su interior.
Resultado: el subflujo aparece en el lienzo como un contenedor contraíble. Arrastra los nodos dentro de él para definir la lógica del subflujo.
Pasar datos dentro y fuera
Entradas
Las entradas de subflujo se definen en el panel de propiedades. Cada entrada acepta un valor o expresión del ámbito del proceso principal.
Para configurar entradas de subflujo:
- Selecciona el nodo de subflujo en el lienzo.
- Abre la sección Entradas de subflujo en el panel de propiedades.
- Para cada entrada, introduce un nombre y un valor o expresión.
Resultado: las entradas están configuradas y disponibles dentro del cuerpo del subflujo como $vars.<inputName>.
Salida
El valor devuelto del subflujo está disponible para el proceso principal como $vars.<subflowName>.output. Se hace referencia a él en cualquier expresión de nodo descendente como cualquier otra salida de nodo.
// Access the output of a subflow named "validateOrder"
$vars.validateOrder.output
$vars.validateOrder.output.isValid
// Access the output of a subflow named "validateOrder"
$vars.validateOrder.output
$vars.validateOrder.output.isValid
Ámbito de variable
Los subflujos crean su propio ámbito de variable. Esto significa que las variables actualizadas dentro de un subflujo tienen espacios de nombres para evitar colisiones con el proceso principal.
Desde fuera del subflujo, haces referencia a las variables internas de un subflujo como $vars.<subflowName>.<variableName>. Por ejemplo, una variable counter dentro de un subflujo llamado subflow1 se referencia como $vars.subflow1.counter desde el proceso principal.
Desde el interior del subflujo, los nodos acceden a la salida de sus nodos hermanos utilizando el patrón $vars.<nodeName>.<property> estándar. También pueden leer directamente desde el ámbito del proceso principal.
El espacio de nombres de variables evita que las variables internas de un subflujo sobrescriban las variables principales que comparten el mismo nombre. No es necesario coordinar los nombres de variables entre el flujo principal y el secundario.
Ejemplo práctico
Un proceso principal que llama a un subflujo para validar los datos del pedido antes de procesarlos.
Proceso principal:
- Solicitud HTTP (
httpRequest1): obtiene datos de la orden de una API externa. - Subflujo (
validateOrder): valida los datos del pedido y devuelve un resultado. - Decisión (
decision1): ramas basadas en el resultado de la validación.
Dentro del subflujo validateOrder :
-
Script (
script1): comprueba que los campos obligatorios están presentes y que el total del pedido es superior a cero.const order = $vars.validateOrder.orderData; const isValid = order.items.length > 0 && order.total > 0 && order.customerId !== undefined; return { isValid: isValid, reason: isValid ? "OK" : "Missing required fields" };const order = $vars.validateOrder.orderData; const isValid = order.items.length > 0 && order.total > 0 && order.customerId !== undefined; return { isValid: isValid, reason: isValid ? "OK" : "Missing required fields" }; -
El subflujo devuelve la salida del script como
$vars.validateOrder.output.
De vuelta en el proceso principal:
El nodo de decisión evalúa $vars.validateOrder.output.isValid === true y redirige a una ruta de cumplimiento o a una ruta de gestión de errores.
Páginas relacionadas
- Variables y flujo de datos : reglas de ámbito de variables, sintaxis de expresión, patrones de acceso
$vars - El lienzo : navegar por el lienzo, panel de propiedades, paleta de nodos
- Gestión de errores : configurar los controladores de errores en los nodos, incluso dentro de los subflujos