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.

Sintaxis de expresión

Sintaxis de expresión JavaScript para variables, operadores y condiciones en flujos de trabajo de Flow.

Las expresiones de flujo son JavaScript. Hacen referencia a variables con el prefijo $vars y calculan valores en campos de configuración, condiciones de decisión y cambio, y código de script.

Para saber cómo se mueven los datos entre los nodos y el modelo de variables en profundidad, consulta Variables y flujo de datos.

Referencias de variables

Cada valor al que haces referencia se encuentra en $vars:

$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
  • Salida del nodo: $vars.<nodeName>.output. Cada nodo expone su resultado en .output. La forma de ese objeto depende del nodo, así que consulta la página de referencia de cada nodo para ver sus campos de salida.
  • Variables: $vars.<name>.
  • Entradas de desencadenador: $vars.<triggerName>.output.<inputName>.

Para las propiedades anidadas, utiliza la notación de puntos; para los elementos de la matriz, utiliza la notación de corchetes:

$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id
$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id

Dónde se escriben las expresiones

El flujo tiene dos modos, dependiendo del campo:

Campos (de texto) literales : incrusta una expresión en el texto circundante con llaves dobles. Usa esto solo cuando se espere texto de solicitud o plantilla:

https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}
https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}

Campos de expresión (condiciones de Decisión y Cambio, la sección Actualizar variable) y código de script : escribe la expresión directamente, sin llaves:

$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200

Operadores

Se admiten los operadores JavaScript estándar:

OperadorEjemploResultado
Igualdad$vars.status === "active"true o false
Desigualdad$vars.count !== 0true o false
Comparación$vars.price > 100true o false
Lógico y$vars.isVerified && $vars.isActivetrue o false
Lógico o$vars.role === "admin" || $vars.role === "owner"true o false
Ternario$vars.count > 0 ? "has items" : "empty"String

Operaciones de cadena

"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")
"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")

Los literales de plantilla combinan variables y texto estático:

`Hello ${firstName}, your order #${orderId} has shipped.`
`Hello ${firstName}, your order #${orderId} has shipped.`

Encadenamiento opcional

Usa ?. para acceder de forma segura a propiedades que pueden no estar definidas:

$vars.httpRequest1.output.body?.items?.[0]?.id
$vars.httpRequest1.output.body?.items?.[0]?.id

undefined en lugar de generar un error de runtime si cualquier propiedad intermedia es nula o no está definida.

Fusión nula

Usa ?? para proporcionar un valor predeterminado cuando un valor es nulo o indefinido:

$vars.userName ?? "Anonymous"
$vars.userName ?? "Anonymous"

Errores comunes

SíntomaCausaQué hacer
Una expresión se resuelve en undefinedHizo referencia a la salida de un nodo antes de que se ejecute ese nodo, o a un campo que no existe en la salidaSalida de referencia solo de nodos ascendentes; consulta la página de referencia del nodo para ver sus campos de salida reales. Utilice el encadenamiento opcional (?.) para las propiedades que puedan faltar.
Una condición de decisión o cambio se comporta de forma inesperada o fallaLa condición no es una expresión booleana simple, por ejemplo, está escrita como una declaración returnEscribe una expresión simple que se resuelva en true o false, por ejemplo $vars.order1.output.total > 1000. No utilices return.
Cannot find name '$vars' (o '$self')La variable no está dentro del ámbito de este nodo, o $self se utiliza en un nodo que no produce salida propiaReferencia solo a las variables mostradas en el selector de variables para ese nodo. $vars se resuelve solo en variables dentro del ámbito; $self solo está disponible en los nodos que producen salida.
Un valor de otro nodo no está disponible para hacer referenciaEl ámbito es solo ascendente: un nodo no puede ver nodos descendentes, nodos de ramas hermanas o nodos dentro de un bucle del que ya ha salidoReestructura para que el nodo productor esté más arriba de donde lo referencias, o transmite el valor a través de una variable que esté dentro del ámbito.
$vars.<node>.error no está disponibleLa salida de error de un nodo solo está dentro del ámbito cuando la gestión de errores está habilitada en él (o su ruta de error está conectada)Habilita la gestión de errores en el nodo o conecta su gestor de errores y luego haz referencia a $vars.<node>.error.
{{ }} se muestra como texto literal o un campo de texto no se resuelveFalta de coincidencia de modos: {{ }} solo funciona en campos literales (texto)Usar {{ $vars.x }} solo en campos de texto sin formato; en los campos de expresión y en las condiciones de Decisión y Cambio, escribe $vars.x directamente sin llaves.

Las condiciones de decisión y cambio se ejecutan como expresiones en runtime. Una instrucción return solo es válida en el código del nodo Script.

Notas

  • Las expresiones se evalúan en tiempo de ejecución, no en tiempo de diseño. Los errores de sintaxis surgen cuando se ejecuta el nodo.
  • Una expresión en un campo de configuración debe resolverse en el tipo que espera el campo: un campo de condición debe resolverse en true o false.
  • Los prefijos = y =js: que puedes ver en un archivo .flow son formatos de serialización internos. Nunca se escriben en el editor.
  • La comprobación de tipos es el mejor esfuerzo. Las referencias a salidas poco escritas (objetos o matrices escritos como any) no se validan por completo, por lo que un error tipográfico en un nombre de campo anidado puede pasar sin una advertencia: comprueba las rutas anidadas con la salida del nodo.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado