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.

Script

Referencia de nodo de script: configuración, entorno y ejemplos de JavaScript.

Lo que hace

Ejecuta código JavaScript y pasa el valor devuelto a los nodos posteriores.

Referencia de configuración

CampoObligatorioPredeterminadoDescripción
ScriptNingunoCódigo JavaScript a ejecutar. Debe contener una instrucción return ; el valor devuelto se convierte en la salida de este nodo.

El entorno JavaScript

Los scripts se ejecutan en un runtime aislado y tienen acceso a:

  • $vars : el ámbito de la variable del flujo. Accede a la salida del nodo anterior a través de $vars.<nodeName>.<property>.
  • metadata : metadatos de ejecución de flujo
  • JavaScript estándar integrado , como JSON, Math, Date, Array, Object, String, Number, RegExp, Error, Promise, URL, URLSearchParams y las funciones de temporizador.

Por seguridad, el runtime bloquea las API de red (fetch, XMLHttpRequest, WebSocket), la ejecución de código dinámico (eval, Function) y las API de almacenamiento (indexedDB, caches). Para llamar a una API externa, utiliza el nodo de solicitud HTTP en su lugar.

Los scripts están destinados a una lógica rápida en memoria: mantenlos rápidos y evita procesar cargas útiles muy grandes, que pueden superar los límites de tiempo de ejecución o el tiempo de espera.

Acceder a la salida del nodo anterior

Usa $vars.<nodeName>.<property> donde <nodeName> es el nombre de la variable del nodo (que se muestra en el panel de propiedades):

// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;

// Access a flow variable
const count = $vars.myVariable;
// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;

// Access a flow variable
const count = $vars.myVariable;

ValorDeRetorno

El script debe devolver un valor. El valor devuelto se convierte en la salida del nodo, accesible en sentido descendente como $vars.<nodeName>.output:

return {
  message: "Processed",
  count: items.length
};
return {
  message: "Processed",
  count: items.length
};

Entradas y salidas

Entrada

El nodo Script puede acceder a cualquier variable anterior a través de $vars. No tiene un esquema de entrada con tipo: cualquier cosa en $vars está disponible.

Salida

En caso de éxito$vars.<nodeName>.output:

El valor devuelto del script. La forma depende de lo que devuelva el script.

En caso de fallo (cuando se conecta un controlador de errores) — $vars.<nodeName>.error:

{
  "code": "string",
  "message": "string",
  "detail": "string",
  "category": "string",
  "status": 0
}
{
  "code": "string",
  "message": "string",
  "detail": "string",
  "category": "string",
  "status": 0
}

Generar scripts con IA

El icono de la varita mágica sobre el editor de scripts acepta una descripción en lenguaje sencillo de lo que quieres y genera el JavaScript para ti. Esto es útil para acceder a la salida de un nodo ascendente o escribir una transformación rápida sin buscar la sintaxis $vars exacta.

Ejemplos

Ejemplo 1: establecer una variable de proceso

// Set a variable that downstream nodes can reference
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
  currency: "USD"
};
// Set a variable that downstream nodes can reference
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
  currency: "USD"
};

Los nodos posteriores acceden a los valores como $vars.script1.output.orderTotal y $vars.script1.output.currency.

Ejemplo 2: procesar una respuesta HTTP

const data = $vars.httpRequest1.output.body;

return {
  title: data.title,
  userId: data.userId
};
const data = $vars.httpRequest1.output.body;

return {
  title: data.title,
  userId: data.userId
};

Ejemplo 3: lógica condicional

const status = $vars.httpRequest1.output.statusCode;

if (status === 200) {
  return { success: true, data: $vars.httpRequest1.output.body };
} else {
  return { success: false, statusCode: status };
}
const status = $vars.httpRequest1.output.statusCode;

if (status === 200) {
  return { success: true, data: $vars.httpRequest1.output.body };
} else {
  return { success: false, statusCode: status };
}

Ejemplo 4: transformar una matriz

const items = $vars.fetchItems1.output.body;

return {
  count: items.length,
  names: items.map(item => item.name)
};
const items = $vars.fetchItems1.output.body;

return {
  count: items.length,
  names: items.map(item => item.name)
};

Cuándo utilizar esto frente a Data Transform

Usar script cuando...Utilizar Transformación de datos cuando...
Necesitas la lógica de JavaScript completa: bucles, condicionales, manipulación de cadenasNecesita una asignación de campo simple o una transformación sin código
Desea calcular algo a partir de la salida del nodo anteriorQuieres un asignador visual sin escribir código
La transformación es compleja o con estadoLa transformación es una reforma directa

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado