UiPath Documentation
maestro
latest
false
Benutzerhandbuch zu Maestro
Wichtig :
Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Variablen und Datenfluss

Wie Daten zwischen Knoten über Knotenausgaben und -variablen fließen, mit Scope-Regeln für Unterflows und Verzweigungen.

Dieser Leitfaden umfasst Folgendes:

Knoten im Flow teilen nicht automatisch Daten. Wenn ein Knoten eine Ausgabe erzeugt – wie eine HTTP-Antwort oder einen berechneten Wert – greifen nachgelagerte Knoten explizit über Ausdrücke auf diese Ausgabe zu. Mit Variablen und Datenflüssen verknüpfen Sie Daten zwischen Knoten und speichern Werte in Ihrem Prozess.

Es gibt zwei Möglichkeiten, wie Daten durch einen Prozess verschoben werden:

  • Knotenausgabe – Jeder Knoten erzeugt eine Ausgabe, auf die nachgelagerte Knoten verweisen können
  • Variablen – Variablen auf Prozessebene, die Sie definieren, um Werte zwischen Knoten zu speichern und zu übergeben

Die vollständige Syntax für Ausdrücke, Operatoren und das Schreiben von $vars -Referenzen finden Sie unter Ausdruckssyntax.

Wie es funktioniert

Knotenausgabe

Jeder Knoten, der Daten erzeugt, stellt diese über $vars.<nodeName>.output zur Verfügung. Der Knotenname wird basierend auf dem Knotentyp automatisch zugewiesen – z. B. heißt der erste HTTP-Anforderungsknoten httpRequest1, der zweite httpRequest2.

Sie können den Variablennamen eines Knotens im Eigenschaftenbereich sehen, wenn der Knoten ausgewählt ist.

// Access HTTP Request response
$vars.httpRequest1.output.body
$vars.httpRequest1.output.statusCode

// Access Script return value
$vars.script1.output

// Access a second HTTP Request
$vars.httpRequest2.output.body
// Access HTTP Request response
$vars.httpRequest1.output.body
$vars.httpRequest1.output.statusCode

// Access Script return value
$vars.script1.output

// Access a second HTTP Request
$vars.httpRequest2.output.body

Die Ausgabestruktur hängt vom Knotentyp ab. Auf der Referenzseite jedes Knotens finden Sie seine spezifische Ausgabeform.

Variablen

Variablen sind Werte auf Prozessebene, die für die Dauer einer einzelnen Ausführung bestehen bleiben. Sie definieren sie auf der Registerkarte Variablen des Eigenschaftenbereichs.

Jede Variable hat:

  • Name – wie Sie in Ausdrücken darauf verweisen (z. B. $vars.orderTotal)
  • Typ – String, Zahl, Boolescher Wert, Objekt oder Array
  • Richtung – Eingabe, Ausgabe oder bidirektional

Wann Variablen im Vergleich zu Knotenausgaben verwendet werden sollten:

  • Die Knotenausgabe passt zu Daten, die von einem Knoten zum nächsten wechseln. Dies ist das gängigste Muster.
  • Variablen eignen sich für Werte, die im gesamten Prozess zugänglich sein müssen, oder für Werte, die Eingaben und Ausgaben für den Prozess selbst definieren.

Klare Benennung von Variablen: Beschreibende Namen in Kleinbuchstaben mit Bindestrichen oder BinnenMajuskel – wie z. B. customerEmail, invoiceTotal, apiResponse – bleiben im Laufe der Zeit in den Ausführungsablaufverfolgungen lesbar. Namen und Abkürzungen, die aus einem einzigen Buchstaben bestehen, verlieren schnell an Bedeutung.

Trigger-Eingaben

Eingabevariablen befinden sich im Besitz ihres Triggers, nicht des Prozesses. Wenn ein Trigger ausgelöst wird, sind seine Eingaben als $vars.<triggerName>.output.<inputName> verfügbar:

// Access an input defined on a Manual Trigger named "manualTrigger1"
$vars.manualTrigger1.output.userId
// Access an input defined on a Manual Trigger named "manualTrigger1"
$vars.manualTrigger1.output.userId

Dies gilt für alle Triggertypen. Wenn Ihr Prozess über mehrere Trigger verfügt, besitzt jeder Trigger seine eigenen Eingaben – nachgelagerte Knoten verweisen auf den spezifischen Trigger, der die Ausführung gestartet hat.

Variablendefinitionen

Variablendefinitionen sind auf der Registerkarte Variablen (Variables) des Eigenschaftenbereichs live zu finden. Jede Definition speichert den Variablennamen, den Typ und die Richtung, damit auf den Wert während einer Ausführung konsistent verwiesen werden kann.

Aktualisierungen von Variablen

Variablen können durch die Knotenkonfiguration oder durch die Skriptknotenausgabe aktualisiert werden.

Von einem beliebigen Knoten – Abschnitt „Variable aktualisieren“.

Jeder Knoten verfügt über einen Abschnitt Variable aktualisieren im Eigenschaftenbereich. Im Abschnitt werden ein beschreibbares Variablenziel (Ausgabe- oder bidirektionale Richtung) und der diesem zugewiesene JavaScript-Ausdruck gespeichert. Der Ausdruck wird ausgewertet, nachdem der Knoten abgeschlossen ist.

Von einem Skriptknoten – Rückgabewert

Der Rückgabewert eines Skriptknotens ist später als $vars.<scriptName>.output zugänglich. Der Skriptknoten verfügt außerdem über den gleichen Abschnitt Variable aktualisieren wie andere Knoten für direkte Variablenschreibungen:

// The return value becomes $vars.script1.output
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity
};
// The return value becomes $vars.script1.output
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity
};

Scope-Regeln

Ein Knoten kann auf die Ausgabe zugreifen von:

  • Vorgelagerte Knoten im selben Scope – Knoten auf der gleichen Ebene wie zuvor ausgeführt
  • Übergeordnete Containerknoten – Wenn sich der Knoten in einem Unterflow oder einer Schleife befindet, kann er auf den Scope des übergeordneten Elements zugreifen

Ein Knoten kann nicht auf die Ausgabe von:

  • Knoten in einer anderen Verzweigung – Wenn eine Entscheidung oder ein Switch die Ausführung über einen anderen Pfad gesendet hat, ist die Ausgabe dieser Knoten nicht verfügbar
  • Knoten, die nicht ausgeführt wurden – Die Ausgabe ist erst vorhanden, nachdem ein Knoten ausgeführt wurde

Unterflow-Scoping

Unterflows erstellen ihren eigenen Variablen-Scope. Knoten innerhalb eines Unterflows können auf Folgendes zugreifen:

  • Andere Knoten innerhalb desselben Unterflows
  • Der Scope des übergeordneten Prozesses

Variablen, die in einem Unterflow aktualisiert werden, erhalten einen Namespace, um Konflikte mit dem übergeordneten Prozess zu vermeiden. Zum Beispiel wird auf eine Variable counter innerhalb eines Unterflows mit dem Namen subflow1 als $vars.subflow1.counter von außerhalb des Unterflows verwiesen.

Der Rückgabewert des Unterflows ist für den übergeordneten Prozess als $vars.<subflowName>.output zugänglich.

Parallele Zweige

Parallele Zweige haben unabhängige Ausführungskontexte. Wenn eine Variable innerhalb einer Verzweigung verändert wird, wird diese Änderung nicht in einer anderen Verzweigung sichtbar. Ein Zusammenführungsknoten konsolidiert Ausgaben von parallelen Pfaden, wenn die Pfade erneut zusammengeführt werden müssen.

Muster

Erstellen dynamischer Strings

Vorlagenliterale in einem Skriptknoten kombinieren Variablen und statischen Text:

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

Summieren von Werten in einer Schleife

Ein Laufzeitmuster verwendet ein Array, das vor dem Schleifenknoten initialisiert und innerhalb des Schleifenkörpers angefügt wurde:

// Script node inside the Loop body
results.push(item.processedValue);
return results;
// Script node inside the Loop body
results.push(item.processedValue);
return results;

Halten von geheimen Werten aus Protokollen heraus

Geheime Variablenwerte werden in der Benutzeroberfläche maskiert, können aber in exportierten Ablaufverfolgungsdaten angezeigt werden. Ihre Protokollierung gefährdet die Daten gefährden.

Beispiel aus der Praxis

Ein Prozess, der einen Benutzer von einer API abruft und basierend auf seiner Rolle weiterleitet:

Schritt 1 – HTTP-Anforderung (httpRequest1): GET https://api.example.com/users/42

Schritt 2 – Skript (script1): Extrahieren Sie die Rolle des Benutzers

const user = $vars.httpRequest1.output.body;
return {
  name: user.name,
  role: user.role,
  isAdmin: user.role === "admin"
};
const user = $vars.httpRequest1.output.body;
return {
  name: user.name,
  role: user.role,
  isAdmin: user.role === "admin"
};

Schritt 3 – Entscheidung (decision1): Verzweigen nach Administratorstatus

Ausdruck: $vars.script1.output.isAdmin === true

  • True → Administratorzugriff gewähren
  • False → Standardzugriff gewähren

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben