UiPath Documentation
maestro-automate
latest
false
Guía de usuario de Maestro Automate

Subflujo

Group nodes into a subflow that runs as one step inside a workflow, pass data in and out of it, and scope its variables.

A subflow is a workflow embedded within another workflow, called the parent workflow. It groups a set of nodes into a self-contained unit that runs as part of the parent and returns output to it. Subflows organize complex logic into self-contained, manageable groups.

Cómo funciona​

Cuando un flujo de trabajo principal llega a un nodo de subflujo, la ejecución entra en el subflujo y ejecuta sus nodos en secuencia. El subflujo tiene su propio ámbito, la parte de un flujo de trabajo donde se puede leer un nombre, por lo que las variables definidas en su interior no colisionan con las variables del flujo de trabajo principal. Cuando el subflujo se completa, su salida se pasa de nuevo al flujo de trabajo principal y la ejecución continúa con el siguiente nodo.

Los nodos dentro de un subflujo pueden acceder a:

  • Otros nodos dentro del mismo subflujo.
  • El ámbito del flujo de trabajo principal.

La salida del subflujo es accesible para el flujo de trabajo principal como $vars.<subflowName>.output.

Añadir un subflujo​

Se añade un nodo Subflujo desde el panel Añadir nodo , donde aparece en la categoría Maestro Flow , y se conecta al nodo anterior. Aparece en el lienzo como un nodo con un icono de capas apiladas. El botón Explorar en en la barra de herramientas del nodo abre el interior del subflujo como su propio lienzo. Una ruta de navegación en la parte superior izquierda, con un icono de inicio y el nombre del subflujo, conduce de nuevo al flujo de trabajo principal. El interior comienza con un nodo de inicio conectado a un nodo final , y tiene la misma barra de herramientas inferior que el lienzo principal, por lo que los nodos se añaden de la misma manera.

Pasar datos dentro y fuera​

Entradas​

La sección Entradas del panel de propiedades del nodo de subflujo define las variables de entrada del subflujo y asigna expresiones del ámbito principal a ellas. Añadir variable de entrada añade una entrada. Cada entrada tiene un nombre, un tipo y un Valor, una expresión que se evalúa en el ámbito del flujo de trabajo principal. El menú Insertar del campo Valor enumera los valores de ese ámbito, como los nodos antes del subflujo y $metadata.

Dentro del subflujo, las entradas son salidas del nodo de inicio del subflujo. El menú Insertar enumera ese nodo como <subflowName>Start, por ejemplo $vars.subflow1Start.output.orderData. El nodo Inicio también ofrece Añadir argumento de entrada.

Salida​

La sección Salidas del nodo de subflujo define las variables de salida del subflujo. Añadir variable de salida añade una, y los valores se asignan a través de las asignaciones de salida del nodo final dentro del subflujo. La salida está disponible para el flujo de trabajo principal como $vars.<subflowName>.output, y cada variable de salida es un campo de la misma, por ejemplo $vars.subflow1.output.isValid. Cualquier nodo después del subflujo puede hacer referencia a él en una expresión, como con 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. Las variables actualizadas dentro de un subflujo tienen espacio de nombres, lo que significa que van prefijadas con el nombre del subflujo, para evitar colisiones con el flujo de trabajo principal.

Desde fuera del subflujo, las variables internas de un subflujo se referencian como $vars.<subflowName>.<variableName>. Por ejemplo, una variable counter dentro de un subflujo llamado subflow1 se referencia como $vars.subflow1.counter desde el flujo de trabajo 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 flujo de trabajo principal.

Nota:

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 subflujo.

Ejemplo práctico​

Un flujo de trabajo principal llama a un subflujo para validar los datos del pedido antes de procesarlos.

El flujo de trabajo principal tiene tres nodos:

  1. Solicitud HTTP (httpRequest1): obtiene datos de la orden de una API externa.
  2. Subflujo (validateOrder): valida los datos del pedido y devuelve un resultado.
  3. Decisión (decision1): ramas basadas en el resultado de la validación.

El subflujo validateOrder tiene un nodo, Script (script1), que comprueba que los campos obligatorios están presentes y que el total del pedido es superior a cero:

const order = $vars.validateOrderStart.output.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.validateOrderStart.output.orderData;
const isValid = order.items.length > 0
  && order.total > 0
  && order.customerId !== undefined;
return { isValid: isValid, reason: isValid ? "OK" : "Missing required fields" };

La sección Salidas del nodo de subflujo define una variable de salida llamada isValid con el tipo de datos Boolean, y el nodo Final dentro del subflujo la asigna a $vars.script1.output.isValid. De vuelta en el flujo de trabajo 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.

Próximos pasos​

  • Variables y flujo de datos: reglas de ámbito de variables, sintaxis de expresión y patrones de acceso $vars .
  • El lienzo Flujo: el lienzo, el panel de propiedades y el panel Añadir nodo.
  • Gestión de errores: configurar los controladores de errores en los nodos, incluido el interior de los subflujos.
  • Comunidad: haz preguntas y comparte flujos de trabajo con otros constructores en UiPath Forum.
  • Cómo funciona​
  • Añadir un subflujo​
  • Pasar datos dentro y fuera​
  • Entradas​
  • Salida​
  • Ámbito de variable​
  • Ejemplo práctico​
  • Próximos pasos​

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte(opens in new window)

¿Quiere aprender? UiPath Academy(opens in new window)

¿Tiene alguna pregunta? Foro de UiPath(opens in new window)

Manténgase actualizado