UiPath Documentation
maestro-automate
latest
false
Benutzerhandbuch zu Maestro Automate

Variablen und Datenfluss

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

Knoten in einem Workflow geben Daten nicht automatisch frei. Wenn ein Knoten eine Ausgabe erzeugt, z. B. eine HTTP-Antwort oder einen berechneten Wert, lesen die Knoten nach ihm, die als nachgelagerte Knoten bezeichnet werden, diese Ausgabe durch Ausdrücke. Ein Ausdruck ist ein kurzes Teil von JavaScript, das einen Wert liest oder berechnet. Beim Datenfluss übergibt ein Workflow Werte zwischen Knoten und speichert sie für die Dauer einer Ausführung.

Daten werden auf zwei Arten durch einen Workflow verschoben:

  • Knotenausgabe: Jeder Knoten erzeugt eine Ausgabe, auf die nachgelagerte Knoten verweisen können.
  • Variablen: Werte auf Workflow-Ebene, die Sie definieren, um Werte zwischen Knoten zu speichern und zu übergeben.

Die Ausdruckssyntax beschreibt die vollständige Syntax, die Operatoren und das Schreiben von $vars -Referenzen.

Wie es funktioniert​

Knotenausgabe​

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

Der Variablenname eines Knotens ist seine ID, die auf der Registerkarte Erweitert des Eigenschaftenbereichs angezeigt wird, wenn der Knoten ausgewählt ist. Das Bleistiftsymbol neben der ID ändert sie.

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

// 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.code

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

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

Die Ausgabestruktur hängt vom Knotentyp ab. Auf jeder Seite der Knotenreferenz ist die Ausgabe seines Knotens aufgeführt.

Knotenfehler​

Wenn ein Knoten fehlschlägt und sein Fehler-Handle verbunden ist, befinden sich die Details des Fehlers auf $vars.<nodeName>.error neben der Ausgabe des Knotens. Lesen Sie sie in den Knoten auf dem Fehlerpfad, z. B. in einem Skriptknoten, der den Fehler protokolliert:

// Read the error of a failed HTTP Request
$vars.httpRequest1.error.message   // what went wrong
$vars.httpRequest1.error.status    // the HTTP status, for example 404
// Read the error of a failed HTTP Request
$vars.httpRequest1.error.message   // what went wrong
$vars.httpRequest1.error.status    // the HTTP status, for example 404

Das Fehlerobjekt ist nur auf dem Fehlerpfad vorhanden. Auf dem Erfolgspfad ist $vars.<nodeName>.error nicht definiert. Das Fehlerobjekt listet alle seine Felder auf.

Variablen​

Variablen sind Werte auf Workflow-Ebene, die für die Dauer einer einzelnen Ausführung bestehen bleiben. Sie definieren sie im Bereich Variablen , der über die Registerkarte Variablen neben der Registerkarte Eigenschaften auf der rechten Seite geöffnet wird. Im Bereich sind die Eingaben, Ausgaben und Variablen des Workflows und die Ausgabe jedes Knotens aufgeführt. Ein Umschalter zwischen Alle Variablen und Ausgewählter Knoten. Mit dem Symbol Fokus auf Knoten in der Zeile eines Knotens wird die Arbeitsfläche auf diesen Knoten vergrößert. Wenn Ausgewählter Knoten aktiviert ist, ist der Bereich auf den ausgewählten Knoten beschränkt und der Header zeigt den Namen dieses Scope an, z. B. Scope: Manueller Trigger.

Das + neben Variablen im Bereich öffnet das Dialogfeld Variable hinzufügen . Jede Variable hat:

  • Name: Wie Sie in Ausdrücken darauf verweisen, z. B. $vars.orderTotal.
  • Datentyp: String, Zahl, Boolescher Wert, Objekt oder Array.
  • Beschreibung: Eine optionale Anmerkung dazu, was der Wert darstellt.
  • Standardwert: ein optionaler Startwert.

Variablen auf Workflow-Ebene sind immer bidirektional: Jeder Knoten kann sie lesen oder schreiben. Es gibt keine Richtungseinstellung zum Konfigurieren. Ein schreibgeschützter oder schreibgeschützter Wert stammt aus einer Triggereingabe oder einer Ausgabevariablen, wie unten beschrieben.

Die drei Datenarten unterscheiden sich dadurch, wo Sie sie definieren:

ArtDefiniert inRichtungReferenzsyntax
VariableBereich Variablen neben VariablenBidirektional (Lesen und Schreiben)$vars.<name>
TriggereingabeAuf dem Triggerknoten oder im Variablenbereich neben dem TriggerSchreibgeschützt$vars.<triggerName>.output.<name>
AusgabevariableAuf einem Endknoten oder im Panel Variablen neben AusgabenSchreibgeschützt$vars.<name>

Wann sie jeweils verwendet werden sollten:

  • Die Knotenausgabe passt zu Daten, die von einem Knoten zum nächsten wechseln. Dies ist das gängigste Muster.
  • Variablen entsprechen Werten, die im gesamten Workflow zugänglich sein müssen.
  • Eingaben und Ausgaben passen zu Werten, die definieren, was der Workflow selbst erhält oder zurückgibt, wie unter Trigger-Eingaben und Ausgabevariablen beschrieben.

Beschreibenden Binnenmappennamen, wie z. B. customerEmail, invoiceTotal und apiResponse, bleiben in Ausführungsablaufverfolgungen im Laufe der Zeit lesbar. Namen und Abkürzungen, die aus einem einzigen Buchstaben bestehen, verlieren schnell an Bedeutung.

Trigger-Eingaben​

Eingabevariablen sind im Abschnitt „Variablen“ nicht definiert. Sie werden als Eingabeargumente im Eigenschaftenbereich des Triggers oder mit + neben dem Trigger im Variablenbereich hinzugefügt, wodurch das Dialogfeld Eingabevariable hinzufügen geöffnet wird. Bei beiden Arten sind sie schreibgeschützt. 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 Workflow mehrere Trigger hat, besitzt jeder Trigger seine eigenen Eingaben und nachgelagerte Knoten verweisen auf den spezifischen Trigger, der die Ausführung gestartet hat.

Ausgabevariablen​

Ausgabevariablen stellen das Ergebnis des Workflows dar. Sie werden mit Ausgabevariable hinzufügen auf der Registerkarte Parameter eines Endknotens oder mit + neben Ausgaben im Panel Variablen hinzugefügt. Sie sind schreibgeschützt.

// Access an output variable named "finalStatus"
$vars.finalStatus
// Access an output variable named "finalStatus"
$vars.finalStatus

Jede Ausgabevariable hat:

  • Name: Wie Sie in Ausdrücken darauf verweisen, z. B. $vars.finalStatus.
  • Datentyp: String, Zahl, Boolescher Wert, Objekt oder Array.
  • Beschreibung: Eine optionale Anmerkung dazu, was der Wert darstellt.
  • Standardwert: ein optionales Fallback, das verwendet wird, wenn die Variable nicht festgelegt wird.

Der Wert einer Ausgabevariablen wird auf die gleiche Weise wie jede andere Variable festgelegt: im Abschnitt Variable aktualisieren eines Knotens oder als Rückgabewert eines Skriptknotens.

Variablendefinitionen​

Variablendefinitionen sind live im Variablenbereich verfügbar. Jede Definition speichert den Variablennamen und -typ, damit während einer Ausführung konsistent auf den Wert verwiesen werden kann.

Aktualisierungen von Variablen​

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

Von einem beliebigen Knoten​

Jeder Knoten verfügt über einen Abschnitt Variable aktualisieren auf der Registerkarte Erweitert des Eigenschaftenbereichs, in dem Variablenaktualisierung hinzufügen eine Zuweisung hinzufügt. Im Abschnitt werden ein beschreibbares Variablenziel, bei dem es sich um eine Workflow- oder eine Ausgabevariable handelt, und der ihm zugewiesene JavaScript-Ausdruck gespeichert. Der Ausdruck wird ausgewertet, nachdem der Knoten abgeschlossen ist.

Über einen Skriptknoten​

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:

  • Upstream-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 Containers zugreifen.

Scope ist der Teil eines Workflows, in dem ein Name gelesen werden kann. 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 Workflows

Variablen, die in einem Unterflow aktualisiert werden, erhalten einen Namespace, d. h. sie haben ein Präfix mit dem Namen des Unterflows, um Konflikte mit dem übergeordneten Workflow 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 Workflow als $vars.<subflowName>.output zugänglich.

Parallele Zweige​

Jeder parallele Zweig hat seine eigenen Variablen. 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 ${$vars.firstName}, your order #${$vars.orderId} has shipped.`;
return `Hello ${$vars.firstName}, your order #${$vars.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 Workflow, der einen Benutzer von einer API abruft und basierend auf seiner Rolle weiterleitet, hat drei Knoten:

  1. HTTP-Anforderung (httpRequest1): Sendet eine GET-Anforderung an https://api.example.com/users/42.
  2. Skript (script1): Extrahiert die Rolle des Benutzers mit diesem Code:
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"
};
  1. Entscheidung (decision1): Verzweigt vom Administratorstatus mit diesem Ausdruck:
$vars.script1.output.isAdmin === true
$vars.script1.output.isAdmin === true

Die Verzweigung True gewährt Administratorzugriff und die Verzweigung False gewährt Standardzugriff.

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