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.

Ausdruckssyntax

JavaScript-Ausdruckssyntax für Variablen, Operatoren und Bedingungen in Flow-Workflows.

Flow-Ausdrücke sind JavaScript. Sie verweisen auf Variablen mit dem Präfix $vars und berechnen Werte in Konfigurationsfeldern, Entscheidungs- und Switch-Bedingungen und Skriptcode.

Informationen dazu, wie sich Daten zwischen Knoten und dem Variablenmodell im Detail verschieben, finden Sie unter Variablen und Datenfluss.

Variablenreferenzen

Jeder Wert, auf den Sie verweisen, befindet sich unter $vars:

$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
  • Knotenausgabe: $vars.<nodeName>.output. Jeder Knoten zeigt sein Ergebnis unter .output an. Die Form dieses Objekts hängt vom Knoten ab. Auf der Referenzseite jedes Knotens finden Sie die Ausgabefelder.
  • Variablen: $vars.<name>.
  • Triggereingaben: $vars.<triggerName>.output.<inputName>.

Verwenden Sie für verschachtelte Eigenschaften die Punktnotation; Verwenden Sie für Array-Elemente die Klammernnotation:

$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id
$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id

Wo Sie Ausdrücke schreiben

Der Flow hat je nach Feld zwei Modi:

Literal-Felder (Text) – betten Sie einen Ausdruck mit doppelten geschweiften Klammern in den umgebenden Text ein. Verwenden Sie dies nur, wenn eine Eingabeaufforderung oder ein Vorlagentext erwartet wird:

https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}
https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}

Ausdrucksfelder (Entscheidungs- und Switch-Bedingungen, Abschnitt Variable aktualisieren) und Skriptcode – schreiben Sie den Ausdruck direkt ohne eckige Klammern:

$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200

Operatoren

Standardmäßige JavaScript-Operatoren werden unterstützt:

OperatorBeispielErgebnis
Gleichheit$vars.status === "active"true oder false
Ungleichung$vars.count !== 0true oder false
Vergleich$vars.price > 100true oder false
Logisches UND$vars.isVerified && $vars.isActivetrue oder false
Logisches ODER$vars.role === "admin" || $vars.role === "owner"true oder false
Ternär$vars.count > 0 ? "has items" : "empty"string

String-Operationen

"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")
"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")

Vorlagenliterale kombinieren Variablen und statischen Text:

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

Optionale Verkettung

Verwenden Sie ?. , um sicher auf Eigenschaften zuzugreifen, die möglicherweise nicht definiert sind:

$vars.httpRequest1.output.body?.items?.[0]?.id
$vars.httpRequest1.output.body?.items?.[0]?.id

Gibt undefined zurück, anstatt einen Laufzeitfehler auszulösen, wenn eine Zwischeneigenschaft NULL oder nicht definiert ist.

Nullständige Verbindung

Verwenden Sie ?? um einen Standardwert bereitzustellen, wenn ein Wert NULL oder nicht definiert ist:

$vars.userName ?? "Anonymous"
$vars.userName ?? "Anonymous"

Häufige Fehler

SymptomeUrsacheWas zu tun ist
Ein Ausdruck wird aufgelöst undefinedSie haben auf die Ausgabe eines Knotens verwiesen, bevor dieser Knoten ausgeführt wird, oder auf ein Feld, das in der Ausgabe nicht vorhanden istReferenzausgabe nur von vorgelagerten Knoten; überprüfen Sie die Referenzseite des Knotens auf die tatsächlichen Ausgabefelder. Verwenden Sie die optionale Verkettung (?.) für Eigenschaften, die möglicherweise fehlen.
Eine Entscheidungs- oder Wechselbedingung verhält sich unerwartet oder schlägt fehlDie Bedingung ist kein leerer boolescher Ausdruck, sondern als return -Anweisung geschriebenSchreiben Sie einen einfachen Ausdruck, der in true oder false aufgelöst wird, z. B. $vars.order1.output.total > 1000. Verwenden Sie nicht return.
Cannot find name '$vars' (oder '$self' )Die Variable befindet sich an diesem Knoten nicht im Scope, oder $self wird auf einem Knoten verwendet, der keine eigene Ausgabe erzeugtVerweisen Sie nur auf Variablen, die in der Variablenauswahl für diesen Knoten angezeigt werden. $vars wird nur auf Variablen innerhalb des Bereichs aufgelöst; $self ist nur auf Knoten verfügbar, die eine Ausgabe erzeugen.
Ein Wert von einem anderen Knoten ist nicht als Verweis verfügbarDer Scope ist nur Upstream – ein Knoten kann keine nachgelagerten Knoten, gleichgeordnete Verzweigungsknoten oder Knoten innerhalb einer Schleife sehen, die er bereits beendet hatRestrukturieren Sie sie so, dass sich der erzeugende Knoten vor dem Ort befindet, an dem Sie darauf verweisen, oder den Wert durch eine Variable übertragen, die sich im Scope befindet.
$vars.<node>.error ist nicht verfügbarDie Fehlerausgabe eines Knotens befindet sich nur dann im Scope, wenn die Fehlerbehandlung auf ihm aktiviert ist (oder sein Fehlerpfad verbunden ist)Aktivieren Sie die Fehlerbehandlung auf dem Knoten oder verbinden Sie sein Fehler-Handle und verweisen Sie dann auf $vars.<node>.error.
{{ }} wird als Literaltext angezeigt, oder ein Textfeld wird nicht aufgelöstModuskonflikt: {{ }} funktioniert nur in Literal-Feldern (Text).Verwenden Sie {{ $vars.x }} nur in Nur-Text-Feldern; Schreiben Sie $vars.x in Ausdrucksfeldern und in Entscheidungs- und Switch-Bedingungen direkt ohne eckige Klammern.

Entscheidungs- und Switch-Bedingungen werden als Ausdrücke zur Laufzeit ausgeführt. Eine return -Anweisung ist nur im Skriptknotencode gültig.

Hinweise

  • Ausdrücke werden zur Laufzeit ausgewertet, nicht zur Entwurfszeit. Syntaxfehler werden angezeigt, wenn der Knoten ausgeführt wird.
  • Ein Ausdruck in einem Konfigurationsfeld muss in den Typ aufgelöst werden, den das Feld erwartet – ein Bedingungsfeld muss auf true oder false aufgelöst werden.
  • Die Präfixe = und =js: , die Sie möglicherweise in einer .flow -Datei sehen, sind interne Serialisierungsformate. Sie geben sie nie in den Editor ein.
  • Die Typprüfung erfolgt nach bestem Wissen und Gewissen. Verweise auf allgemein typisierte Ausgaben (Objekte oder Arrays, die als any eingegeben wurden) sind nicht vollständig validiert, sodass ein Tippfehler in einem geschachtelten Feldnamen ohne Warnung übergeben werden kann – überprüfen Sie die geschachtelten Pfade erneut mit der Ausgabe des Knotens.

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