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

Script

El nodo Script ejecuta código JavaScript y devuelve su resultado, con la configuración, el entorno JavaScript y ejemplos.

Lo que hace​

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

Referencia de configuración​

CampoObligatorioPredeterminadoDescripción
CódigoSíNingunoCódigo JavaScript a ejecutar. Debe contener una instrucción return , y el valor devuelto se convierte en la salida del nodo.

El entorno JavaScript​

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

  • $vars: el ámbito de la variable del flujo de trabajo. La salida de los nodos anteriores está disponible como $vars.<nodeName>.<property>.
  • $metadata: información sobre la ejecución, como InstanceId.
  • 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, el nodo Solicitud HTTP es la alternativa.

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​

Los nodos anteriores se leen con $vars.<nodeName>.<property>, donde <nodeName> es el ID del nodo, que se muestra en la pestaña Avanzado de su panel de propiedades:

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

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

// Access a workflow 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, la salida $vars.<nodeName>.output, que es el valor devuelto por el script. Su forma depende de lo que devuelva el script.

En caso de fallo, cuando se conecta un controlador de errores, el error es $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 destello sobre el editor de código 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: calcular valores para nodos posteriores​

// 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: leer 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.code;

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

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)
};

Elegir entre Script y Transformación de datos​

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

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