- Erste Schritte
- Erstellen
- Fügen Sie einen KI-Agent zu einem Workflow hinzu
- Rufen Sie eine externe API auf
- Eingehende E-Mails verarbeiten
- Einen Slack-Benachrichtigungs-Workflow erstellen
- Eine menschliche Genehmigung zu einem Workflow hinzufügen
- Erstellen Sie einen Chat Agent-Workflow
- Fehler behandeln
- Grundlagen des Debuggens
- Human-in-the-Loop: Eskalation oder menschlicher Schritt
- Auswerten Ihrer Workflows
- Bereitstellen und ausführen
- Beispiele
- Referenz (Reference)
Schleife
Configure the Loop node, build the loop body, and read its output, with examples and fixes for common issues.
Was es tut
Iteriert über eine Sammlung und führt die Knoten im Schleifenkörper einmal für jedes Element aus.
Wann die Schleife verwendet werden sollte
Eine Schleife passt zu einer Sammlung von zu verarbeitenden Elementen, z. B. einer Liste von Datensätzen, die von einer API zurückgegeben werden, einer Liste von Dateien oder einer Liste von IDs. Die Schleife wird einmal pro Element ausgeführt und wird angehalten, wenn die Sammlung erschöpft ist.
Um die Schleife zu beenden, bevor die Sammlung erschöpft ist, verwenden Sie „Break on condition“ oder einen Break-Handle, die beide unten beschrieben werden.
Konfigurationsreferenz
| Feld | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
| Sammlung | Ja | Keine | Array, über das iteriert werden soll. Geben Sie einen Ausdruck ein, der ein Array ergibt, z. B. $vars.listCustomers1.output. |
| Parallel | Nein | Aus | Führt alle Iterationen gleichzeitig statt nacheinander aus. Wenn deaktiviert, wird die Schleife sequenziell ausgeführt und wartet, bis jede Iteration abgeschlossen ist, bevor die nächste gestartet wird. |
| Unterbrechen bei Bedingung | Nein | Keine | Ausdruck, der die Schleife vorzeitig beendet, wenn er nach Abschluss einer Iteration true ergibt. Dies gilt für sequenzielle Schleifen. |
| Unterbrechungs-Ziehpunkt anzeigen | Nein | Aus | Adds a break handle to the loop so nodes inside the body can exit the loop early. Connect a node's output to the break handle to stop iterating from inside the body. Available in sequential and parallel loops. |
Die sequenzielle Iteration bewahrt die Reihenfolge und ist erforderlich, damit „Break on condition“ funktioniert, da die Bedingung nach Abschluss jeder Iteration überprüft wird. Parallele Iterationen werden nicht in einer garantierten Reihenfolge ausgeführt.
Die Schleife auf der Canvas
Die Schleife wird auf der Arbeitsfläche als Container angezeigt. Ein Abzeichen oben rechts zeigt den Modus an, Sequenziell oder Parallel, und der Umschalter Parallel im Eigenschaftenbereich schaltet ihn um. Innerhalb des Containers beginnt jede Iteration mit einem Starthandle auf der linken Seite und ein Fortsetzungshandle auf der rechten Seite beendet sie. Die Schaltfläche „+“ innerhalb des Containers fügt dem Textkörper einen Knoten hinzu, und die Schaltfläche „+“ am rechten Rand fügt den Knoten hinzu, der nach der Schleife ausgeführt wird. Das Fortsetzungshandle akzeptiert Kanten von mehr als einem Knoten, sodass jeder Pfad durch den Textkörper damit enden kann. Ein Unterbrechungshandle wird angezeigt, wenn Unterbrechungshandle . aktiviert ist.
Der Schleifenknoten unterstützt die Fehlerbehandlung, sodass die Registerkarte Fehlerbehandlung eine Fehlerbehandlung hinzufügen kann, wie bei der Fehlerbehandlung beschrieben.
Der Schleifenkörper
Knoten, die innerhalb der Schleifenbegrenzung platziert werden, bilden den Textkörper. Knoten im Textkörper können das aktuelle Element und die Iteration sowie alle Variablen im Scope außerhalb der Schleife lesen.
Aktuelles Element und Iteration
Verweisen Sie innerhalb des Schleifenkörpers mit den folgenden Ausdrücken auf den Fortschritt der Schleife:
$vars.<loopName>.currentItemist das Element für die aktuelle Iteration. Greifen Sie mit der Punktnotation auf die Felder zu, z. B.$vars.loop1.currentItem.id.$vars.<loopName>.currentIterationist die aktuelle Iterationsnummer, beginnend mit1.$vars.<loopName>.collectionist das vollständige Array, das iteriert wird.
Diese sind nur innerhalb des Schleifenkörpers verfügbar.
Ausgabe
Nach Abschluss aller Iterationen sind die aggregierten Ergebnisse der Schleife unter $vars.<loopName>.output verfügbar. Die Ausführung wird dann mit dem Knoten nach der Schleife fortgesetzt.
currentItem und currentIteration sind außerhalb des Schleifenkörpers nicht zugänglich.
Beispiele
Beispiel 1: Aufrufen einer API für jedes Element
Die Schleife iteriert über $vars.listCustomers1.output. Der Schleifenkörper enthält einen HTTP Request-Knoten mit der URL:
https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}
https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}
Beispiel 2: Erstellen Sie ein Ergebnis-Array über Iterationen hinweg
Ein Script-Knoten im Schleifenkörper gibt für jedes Element einen Wert zurück. Die Schleife sammelt das Ergebnis jeder Iteration in $vars.loop1.output:
return { id: $vars.loop1.currentItem.id, processed: true };
return { id: $vars.loop1.currentItem.id, processed: true };
Nach der Schleife enthält $vars.loop1.output ein Array mit diesen Ergebnissen.
Beispiel 3: Früh anhalten, sobald eine Übereinstimmung gefunden wurde
Ein Decision-Knoten im Schleifenkörper überprüft das aktuelle Element. Wenn „Break-Handle anzeigen“ aktiviert ist, wird die entsprechende Verzweigung des Decision-Knotens mit dem Break-Handle der Schleife verbunden, um die Iteration zu beenden, sobald die Übereinstimmung gefunden wurde.
Häufige Probleme
Der Schleifenkörper wird nie ausgeführt
Die Sammlung ist leer oder undefined. Überprüfen Sie die Ausgabe des vorgelagerten Knotens in der Ausführungsablaufverfolgung, um sicherzustellen, dass das Array Elemente enthält. Eine leere Sammlung überspringt den Schleifenkörper und setzt die Ausführung nach der Schleife fort.
Eine Unterbrechungsbedingung wird nie in einer Parallelschleife ausgelöst
„Break on condition“ wird nach Abschluss jeder Iteration der Reihe nach ausgewertet und gilt daher für sequenzielle Schleifen. Deaktivieren Sie „Parallel“, wenn Sie eine Abbruchbedingung während der Ausführung benötigen.
Das Bearbeiten der Sammlung innerhalb des Textkörpers ändert nicht, was iteriert wird
Die Sammlung wird beim Start der Schleife erfasst. Das Ändern der Array-Variable im Schleifenkörper ändert nicht, über welche Elemente iteriert wird. Dies ist beabsichtigt.
Nächste Schritte
- Steuerungsfluss: die Knoten, die Pfade verzweigen, wiederholen und wieder verbinden.
- Entscheidung: Verzweigung für eine Bedingung.
- Variablen und Datenfluss: Wie Knoten Daten übergeben.
- Community: Stellen Sie Fragen und teilen Sie Workflows mit anderen Buildern im UiPath Forum.
- Was es tut
- Wann die Schleife verwendet werden sollte
- Konfigurationsreferenz
- Die Schleife auf der Canvas
- Der Schleifenkörper
- Aktuelles Element und Iteration
- Ausgabe
- Beispiele
- Beispiel 1: Aufrufen einer API für jedes Element
- Beispiel 2: Erstellen Sie ein Ergebnis-Array über Iterationen hinweg
- Beispiel 3: Früh anhalten, sobald eine Übereinstimmung gefunden wurde
- Häufige Probleme
- Der Schleifenkörper wird nie ausgeführt
- Eine Unterbrechungsbedingung wird nie in einer Parallelschleife ausgelöst
- Das Bearbeiten der Sammlung innerhalb des Textkörpers ändert nicht, was iteriert wird
- Nächste Schritte