UiPath Documentation
maestro-automate
latest
false
Benutzerhandbuch zu Maestro Automate

Skript

Der Skriptknoten führt JavaScript-Code aus und gibt sein Ergebnis mit der Konfiguration, der JavaScript-Umgebung und Beispielen zurück.

Was es tut​

Führt JavaScript-Code aus und übergibt den Rückgabewert danach an die Knoten.

Konfigurationsreferenz​

FeldErforderlichStandardBeschreibung
CodeJaKeineJavaScript-Code, der ausgeführt werden soll. Er muss eine return -Anweisung enthalten und der zurückgegebene Wert wird zur Ausgabe des Knotens.

Die JavaScript-Umgebung​

Skripts werden in einer isolierten Runtime ausgeführt und haben Zugriff auf:

  • $vars: Der Variablen-Scope des Workflows. Die Ausgabe früherer Knoten ist als $vars.<nodeName>.<property> verfügbar.
  • $metadata: Informationen über die Ausführung, z. B. InstanceId.
  • Standardmäßig integrierte JavaScript-Instanzen, wie z. B. JSON, Math, Date, Array, Object, String, Number, RegExp, Error, Promise, URL, URLSearchParams und die Timerfunktionen.

Aus Sicherheitsgründen blockiert die Runtime Netzwerk-APIs (fetch, XMLHttpRequest, WebSocket), dynamische Codeausführung (eval, Function) und Speicher-APIs (indexedDB, caches). Um eine externe API aufzurufen, ist der HTTP-Anforderungsknoten die Alternative.

Skripts sind für schnelle In-Memory-Logik vorgesehen: Halten Sie sie kurz und vermeiden Sie die Verarbeitung sehr großer Nutzlasten, da diese die Runtime-Limits überschreiten oder zu einem Timeout führen können.

Zugriff auf die Ausgabe eines vorgelagerten Knotens​

Frühere Knoten werden mit $vars.<nodeName>.<property> gelesen, wobei <nodeName> die ID des Knotens ist, die auf der Registerkarte Erweitert des Eigenschaftenbereichs angezeigt wird:

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

Rückgabewert​

Das Skript muss einen Wert zurückgeben. Der zurückgegebene Wert wird zur Ausgabe des Knotens, auf die nachgelagerte Knoten über $vars.<nodeName>.output zugreifen können:

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

Eingaben und Ausgaben​

Eingabe​

Der Script-Knoten kann über $vars auf jede Variable eines vorgelagerten Knotens zugreifen. Er verfügt über kein typisiertes Eingabeschema – alles in $vars ist verfügbar.

Ausgabe​

Bei Erfolg ist die Ausgabe $vars.<nodeName>.output, der Rückgabewert des Skripts. Die Form hängt davon ab, was das Skript zurückgibt.

Bei einem Fehler ist der Fehler $vars.<nodeName>.error, wenn ein Fehlerhandle verbunden ist:

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

Skripts mit KI generieren​

Das Blitz-Symbol über dem Code-Editor akzeptiert eine Beschreibung in einfacher Sprache und generiert das JavaScript für Sie. Dies ist nützlich, um auf die Ausgabe eines vorgelagerten Knotens zuzugreifen oder eine schnelle Transformation zu schreiben, ohne die genaue $vars -Syntax nachzuschlagen.

Beispiele​

Beispiel 1: Berechnen von Werten für spätere Knoten​

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

Nachgelagerte Knoten greifen über $vars.script1.output.orderTotal und $vars.script1.output.currency auf die Werte zu.

Beispiel 2: Lesen Sie eine HTTP-Antwort​

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

Beispiel 3: Bedingte Logik​

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

Beispiel 4: Transformieren eines Arrays​

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

Auswahl zwischen Skript und Datentransformation​

Verwenden Sie Script, wenn …Verwenden Sie Data Transform, wenn …
Sie benötigen die vollständige JavaScript-Logik – Schleifen, Bedingungen und String-Manipulation.Sie benötigen eine einfache Feldzuordnung oder eine Transformation ohne Code.
Sie möchten etwas aus der Ausgabe eines vorgelagerten Knotens berechnen.Sie möchten eine visuelle Zuordnung vornehmen, ohne Code zu schreiben.
Die Transformation ist komplex oder zustandsbehaftet.Die Transformation ist eine einfache Umformung.

Nächste Schritte​

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support(opens in new window)

Möchten Sie lernen? UiPath Academy(opens in new window)

Haben Sie Fragen? UiPath-Forum(opens in new window)

Auf dem neuesten Stand bleiben