UiPath Documentation
maestro-automate
latest
false
Benutzerhandbuch zu Maestro Automate

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​

FeldErforderlichStandardBeschreibung
SammlungJaKeineArray, über das iteriert werden soll. Geben Sie einen Ausdruck ein, der ein Array ergibt, z. B. $vars.listCustomers1.output.
ParallelNeinAusFü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 BedingungNeinKeineAusdruck, der die Schleife vorzeitig beendet, wenn er nach Abschluss einer Iteration true ergibt. Dies gilt für sequenzielle Schleifen.
Unterbrechungs-Ziehpunkt anzeigenNeinAusAdds 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.
Hinweis:

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>.currentItem ist das Element für die aktuelle Iteration. Greifen Sie mit der Punktnotation auf die Felder zu, z. B. $vars.loop1.currentItem.id.
  • $vars.<loopName>.currentIteration ist die aktuelle Iterationsnummer, beginnend mit 1.
  • $vars.<loopName>.collection ist 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​

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