Skip to content

Schleife (flow.loop)

Wiederholt einen Unter-Flow für jedes Element einer Liste.

Wofür Sie diesen Baustein nutzen

Immer dann, wenn ein und derselbe Ablauf für mehrere Personen, Dokumente oder Datensätze nacheinander durchgeführt werden soll, bietet der Baustein Schleife die passende Lösung. Statt denselben Unter-Flow von Hand mehrfach anzulegen oder ihn für jedes Element einzeln zu starten, übergeben Sie dem Baustein eine Liste — und er sorgt dafür, dass der gewählte Unter-Flow für jedes Listenelement genau einmal ausgeführt wird.

Typische Einsatzbereiche an Schulen sind das Onboarding neuer Lehrkräfte oder Schülerinnen und Schüler, das Versenden von Benachrichtigungen an eine im Flow zusammengestellte Empfängergruppe, die automatisierte Anlage von Aufgaben für mehrere Klassen oder die Verarbeitung einer Liste von Dokumenten, die alle denselben Prüfschritt durchlaufen sollen.

Der Baustein ist einer Aktion zugeordnet und erscheint in der Farbe Violett. Er steht im Flow an der Stelle, an der die Schleife beginnen soll, und lässt sich wie jeder andere Baustein durch Verbindungslinien in den Ablauf einbinden. Den eigentlichen Inhalt der Schleife — also das, was pro Element passieren soll — definieren Sie in einem separaten Unter-Flow, den Sie im Baustein referenzieren.

Hinweis

Die Schleife verarbeitet bis zu 200 Elemente pro Durchlauf. Diese Grenze ist fest hinterlegt und kann nicht in den Einstellungen verändert werden. Wenn Ihre Liste größer ist, teilen Sie sie vor dem Schleifenbaustein in Teilmengen auf.

Die Einstellungen im Detail

FeldPflichtWas es bewirkt
Variable mit Liste (iterableFrom)JaName der Flow-Variable, die die zu durchlaufende Liste enthält.
Sub-Template-ID (bodyTemplateId)JaDie ID des Unter-Flows, der für jedes Listenelement einmal gestartet wird.
Parallel iterieren (parallel)NeinSchalter für parallele Ausführung — derzeit ohne Wirkung (siehe Hinweis unten).
Max. parallel (maxConcurrency)NeinMaximale Anzahl gleichzeitig laufender Unter-Flows (1–50) — derzeit ohne Wirkung.

Variable mit Liste (iterableFrom)

Geben Sie hier den Namen einer Flow-Variable ein, die eine Liste — also ein Array — enthält. Der Baustein liest diese Variable zur Laufzeit aus und iteriert dann der Reihe nach über alle Einträge. Der Variablenname wird ohne geschweifte Klammern eingetragen, also zum Beispiel personen statt .

Wenn die Variable zum Zeitpunkt der Ausführung nicht vorhanden ist, leer ist oder keinen Array enthält, bricht die Schleife mit einem Fehler ab. Prüfen Sie deshalb vor dem Schleifenbaustein mit einem Bedingungsbaustein, ob die Variable tatsächlich eine Liste mit mindestens einem Eintrag enthält, wenn Ihr Flow in dieser Hinsicht unsicher sein könnte.

Sub-Template-ID (bodyTemplateId)

Die ID des Flows, der für jedes Listenelement einmal ausgeführt wird. Den Unter-Flow erstellen Sie im Flow-Designer als eigenständigen Flow. Dessen ID finden Sie in den Flow-Einstellungen oben rechts im Designer.

Der Unter-Flow bekommt automatisch zwei Variablen übergeben:

  • item — das aktuelle Listenelement, also etwa ein Personen-Objekt oder ein einfacher Textwert.
  • index — die laufende Nummer des Elements, beginnend bei 0.

Beide Variablen stehen im Unter-Flow wie alle anderen Flow-Variablen zur Verfügung und können in Texten, Bedingungen und weiteren Bausteinen verwendet werden.

Tipp

Entwerfen Sie den Unter-Flow so, dass er nur auf item und index angewiesen ist und keine zusätzlichen globalen Variablen aus dem übergeordneten Flow voraussetzt. Das macht den Unter-Flow eigenständig wiederverwendbar und erleichtert das Testen.

Parallel iterieren und Max. parallel

Achtung: Diese Felder haben derzeit keine Wirkung

Die Option "Parallel iterieren" und das Feld "Max. parallel" sind in der Benutzeroberfläche sichtbar, aber ihre Funktion ist noch nicht implementiert. Die Schleife läuft in jeder Konfiguration sequenziell — das heißt, der nächste Unter-Flow-Durchlauf startet erst dann, wenn der vorherige abgeschlossen ist. Parallele Ausführung ist als Folgearbeit geplant. Verlassen Sie sich bis zur Ankündigung der Funktion nicht auf diese Einstellung und planen Sie Ihre Flows entsprechend mit sequenziellem Verhalten.

Was dabei herauskommt

Sobald die Schleife alle Elemente verarbeitet hat, stellt sie dem übergeordneten Flow drei Ausgabevariablen bereit:

VariableBedeutung
iterationsGesamtanzahl der Elemente in der Liste.
startedAnzahl der Unter-Flow-Durchläufe, die erfolgreich gestartet wurden.
childInstanceIdsListe der internen IDs aller gestarteten Unter-Flow-Durchläufe.

Mit childInstanceIds können nachgelagerte Bausteine oder externe Systeme den Status der einzelnen Kind-Durchläufe nachverfolgen. In den meisten schulischen Anwendungsfällen genügt es jedoch, nach dem Schleifenbaustein direkt weiterzuarbeiten — die Schleife selbst gilt als abgeschlossen, sobald alle Unter-Flows gestartet wurden.

Hinweis

"Gestartet" bedeutet, dass der Unter-Flow übergeben wurde. Ob er erfolgreich abgeschlossen wird, hängt von seinem eigenen Inhalt ab. Prüfen Sie im Zweifelsfall die Durchlaufliste des Unter-Flows separat.

Wenn etwas schiefgeht

Sub-Template-ID ist leer

Wenn das Feld "Sub-Template-ID" nicht ausgefüllt ist, verweigert der Baustein die Ausführung und meldet einen Konfigurationsfehler. Öffnen Sie den Baustein, tragen Sie die korrekte ID des Unter-Flows ein und speichern Sie den Flow.

Die angegebene Variable ist keine Liste

Enthält die unter "Variable mit Liste" angegebene Variable zum Ausführungszeitpunkt keinen Array — etwa weil sie einen Text, eine Zahl oder ein einzelnes Objekt enthält — bricht die Schleife mit einem Fehler ab. Prüfen Sie, welcher vorgelagerte Baustein die Variable befüllt, und stellen Sie sicher, dass er tatsächlich eine Liste zurückliefert. Oft liegt der Fehler darin, dass ein HTTP-Baustein nur ein einzelnes Objekt zurückgibt, obwohl eine Liste erwartet wird.

Mehr als 200 Elemente in der Liste

Überschreitet die Liste die harte Obergrenze von 200 Elementen, bricht die Schleife vor dem ersten Durchlauf ab. Teilen Sie die Liste in einem vorgelagerten Schritt in kleinere Teilmengen auf oder filtern Sie irrelevante Einträge heraus, bevor die Schleife erreicht wird.

Maximale Verschachtelungstiefe überschritten

Flows dürfen nicht beliebig tief ineinander verschachtelt werden. Wenn der Unter-Flow seinerseits eine Schleife enthält, die wiederum einen Unter-Flow startet, und so weiter, kann die Systemgrenze der Verschachtelungstiefe erreicht werden. In diesem Fall schlägt der Start des Unter-Flows fehl. Vereinfachen Sie die Struktur: Lagern Sie Logik, die immer gleich ist, in Hilfsvariablen aus, statt sie durch mehrere Schleifenebenen zu schachteln.

Kein Läufer verfügbar

Wenn das System zum Zeitpunkt der Ausführung ausgelastet ist und kein Prozess-Läufer zur Verfügung steht, wird die Schleife in eine Warteschlange gestellt. Die Ausführung beginnt, sobald Kapazität frei wird. Wenn der Flow dringend benötigt wird und dauerhaft in der Warteschlange verbleibt, wenden Sie sich an den Systemadministrator.

Beispiel

Szenario: Onboarding-Flow für mehrere neue Lehrkräfte

Eine Schule nimmt zu Semesterbeginn fünf neue Lehrkräfte auf. Für jede Person soll derselbe Onboarding-Ablauf durchgeführt werden: Begrüßungsmail, Anlage einer persönlichen Aufgabenliste und Zuweisung zum Schulraum.

Vorbereitung: Es existiert ein Unter-Flow "Onboarding Einzelperson" mit der ID tpl-onboarding-einzelperson. Dieser Unter-Flow enthält drei Schritte und nutzt die Variable item, um auf Name und E-Mail-Adresse der jeweiligen Person zuzugreifen.

Im übergeordneten Flow wird zunächst über einen Daten-setzen-Baustein eine Variable neueLehrkraefte angelegt, die ein Array mit fünf Personenobjekten enthält. Danach folgt der Baustein Schleife mit folgenden Einstellungen:

  • Variable mit Liste: neueLehrkraefte
  • Sub-Template-ID: tpl-onboarding-einzelperson

Beim Ausführen startet die Schleife den Unter-Flow nacheinander für alle fünf Einträge. Der erste Durchlauf erhält item = { name: "Anna Berger", email: "a.berger@schule.de" } und index = 0, der zweite index = 1 und so weiter. Nach Abschluss aller fünf Durchläufe stellt die Schleife iterations: 5, started: 5 und die fünf childInstanceIds bereit. Der übergeordnete Flow läuft anschließend weiter — etwa mit einer abschließenden Benachrichtigung an die Schulleitung.

Verwandte Seiten