UiPath Documentation
maestro
latest
false
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

Maestro ユーザー ガイド

スクリプト

機能

Runs JavaScript code and passes the return value to downstream nodes.

Configuration reference

フィールドRequired既定 (Default)説明
スクリプトはいなしJavaScript code to execute. Must contain a return statement; the returned value becomes this node's output.

The JavaScript environment

Scripts run in an isolated runtime and have access to:

  • $vars — the flow's variable scope. Access upstream node output via $vars.<nodeName>.<property>.
  • metadata — flow execution metadata
  • Standard JavaScript built-ins — such as JSON, Math, Date, Array, Object, String, Number, RegExp, Error, Promise, URL, URLSearchParams, and the timer functions.

For security, the runtime blocks network APIs (fetch, XMLHttpRequest, WebSocket), dynamic code execution (eval, Function), and storage APIs (indexedDB, caches). To call an external API, use the HTTP Request node instead.

Scripts are meant for fast, in-memory logic: keep them quick and avoid processing very large payloads, which can exceed runtime limits or time out.

Accessing upstream node output

Use $vars.<nodeName>.<property> where <nodeName> is the node's variable name (shown in the properties panel):

// 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;

戻り値

The script must return a value. The returned value becomes the node's output, accessible downstream as $vars.<nodeName>.output:

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

入力と出力

入力

The Script node can access any upstream variable via $vars. It does not have a typed input schema — anything in $vars is available.

出力

On success$vars.<nodeName>.output:

The return value of the script. Shape depends on what the script returns.

On failure (when an error handle is connected) — $vars.<nodeName>.error:

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

Generate scripts with AI

The magic wand icon above the script editor accepts a plain-language description of what you want and generates the JavaScript for you. This is useful for accessing an upstream node's output or writing a quick transformation without looking up the exact $vars syntax.

Example 1 — Set a process variable

// 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"
};

Downstream nodes access the values as $vars.script1.output.orderTotal and $vars.script1.output.currency.

Example 2 — Process an HTTP response

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

Example 3 — Conditional logic

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

Example 4 — Transform an array

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

When to use this vs Data Transform

Use Script when...Use Data Transform when...
You need full JavaScript logic — loops, conditionals, string manipulationYou need a simple field mapping or no-code transformation
You want to compute something from upstream node outputYou want a visual mapper without writing code
The transformation is complex or statefulThe transformation is a straightforward reshape

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得