UiPath Documentation
maestro
latest
false
Guía del usuario de Maestro
Importante :
La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Variables y flujo de datos

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

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado