- Einleitung
- Erste Schritte
- Prozessmodellierung mit BPMN
- Grundlagen der Prozessmodellierung
- Öffnen der Modellierungsarbeitsfläche
- Modellierung Ihres Prozesses
- Ausrichten und Verbinden von BPMN-Elementen
- Autopilot for Maestro (Vorschau)
- Prozess-Repository
- Prozessmodellierung mit Fallverwaltung
- Entwerfen eines persistenten Fallentitätsschemas
- Definieren von Fallschlüsseln (System vs. extern)
- Erstellen von Task-E/A- und Write-Back-Verträgen
- Austrittsregeln und Beendigung der frühen Phase
- Modellieren von primären und sekundären Phasen
- Auslösen eines Falls aus Data Fabric
- Implementieren von Personas und Berechtigungen auf Phasenebene
- Festlegen von SLAs und automatisierten Eskalationsregeln
- Konfigurieren einer Nacharbeitsschleife (Wiedereintritt)
- Verwalten von Live-Fallinstanzen: Anhalten, migrieren und wiederholen
- Maestro-Komponentenwörterbuch für die Fallverwaltung
- Prozessmodellierung mit Flow
- Prozessimplementierung
- Debugging
- Simulieren
- Veröffentlichen und Aktualisieren von agentischen Prozessen
- Häufige Implementierungsszenarien
- Extraktieren und Validieren von Dokumenten
- Prozessabläufe
- Prozessüberwachung
- Prozessoptimierung
- Referenzinformationen
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.outputan. 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:
| Operator | Beispiel | Ergebnis |
|---|---|---|
| Gleichheit | $vars.status === "active" | true oder false |
| Ungleichung | $vars.count !== 0 | true oder false |
| Vergleich | $vars.price > 100 | true oder false |
| Logisches UND | $vars.isVerified && $vars.isActive | true 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
| Symptome | Ursache | Was zu tun ist |
|---|---|---|
Ein Ausdruck wird aufgelöst undefined | Sie haben auf die Ausgabe eines Knotens verwiesen, bevor dieser Knoten ausgeführt wird, oder auf ein Feld, das in der Ausgabe nicht vorhanden ist | Referenzausgabe 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 fehl | Die Bedingung ist kein leerer boolescher Ausdruck, sondern als return -Anweisung geschrieben | Schreiben 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 erzeugt | Verweisen 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ügbar | Der Scope ist nur Upstream – ein Knoten kann keine nachgelagerten Knoten, gleichgeordnete Verzweigungsknoten oder Knoten innerhalb einer Schleife sehen, die er bereits beendet hat | Restrukturieren 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ügbar | Die 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öst | Moduskonflikt: {{ }} 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
trueoderfalseaufgelö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
anyeingegeben 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.