Zum Hauptinhalt springen

While-Schleife

Verwende die While-Schleife, um eine Folge von Aktionen zu wiederholen, solange eine Bedingung wahr bleibt. Anders als die For-Each-Schleife, die einmal pro Element einer bekannten Sammlung läuft, läuft die While-Schleife weiter, bis ihre Bedingung falsch wird – sie passt also zu offenen Abläufen, bei denen die Anzahl der Durchläufe vorab nicht feststeht.

Typische Anwendungsfälle:

  • Pollen bis bereit. Je Durchlauf ein externes System aufrufen und weiterlaufen, solange dessen Status noch pending ist.
  • Eine Warteschlange leeren. Weiterverarbeiten, solange eine Sammlung noch Elemente enthält, und im Schleifenrumpf je Durchlauf eines entfernen.
  • Bis zu einer Schwelle zählen. Je Durchlauf ein Element erhöhen und schleifen, solange es unter einem Zielwert liegt.

Schritt konfigurieren

Öffne den Flow-Editor, füge While-Schleife hinzu und fülle die Konfigurationskarte aus.

Beschreibung

  • Zweck: Die Absicht der Schleife auf einen Blick verständlich machen.
  • Wann ausfüllen: Immer. Die Beschreibung wird im Editor und in der Ausführungshistorie angezeigt.
  • Tipps: Benenne die Bedingung, auf die du schleifst, zum Beispiel Solange Status pending oder Solange Warteschlange nicht leer.

Modus

  • Zweck: Festlegen, wann die Bedingung geprüft wird.
  • Wann ausfüllen: Immer. Es gibt zwei Modi:
    • While (Bedingung zuerst prüfen) – die Bedingung wird vor jedem Durchlauf ausgewertet. Ist sie bereits falsch, läuft der Schleifenrumpf null Mal. Das ist die klassische Pre-Test-Schleife.
    • Do-While (Body zuerst ausführen) – der Schleifenrumpf läuft mindestens einmal, und die Bedingung wird nach dem ersten Durchlauf geprüft. Nutze dies, wenn die Arbeit stattfinden muss, bevor über ein Fortsetzen entschieden werden kann.

Max. Iterationen

  • Zweck: Ein Sicherheitslimit, wie viele Durchläufe die Schleife maximal machen darf.
  • Wann ausfüllen: Immer. Standardwert ist 1000. Muss mindestens 1 sein.
  • Tipps: Eine While-Schleife ist nur so sicher wie ihre Bedingung. Wird die Bedingung nie falsch, stoppt dieses Limit den Lauf mit einem Fehler, statt endlos zu schleifen. Bemiss es an der größten legitim erwarteten Durchlaufzahl, mit etwas Reserve.

Bedingung

  • Zweck: Ein SmartField-Filterausdruck, der bei jedem Durchlauf neu ausgewertet wird. Die Schleife läuft weiter, solange er wahr ist.
  • Wann ausfüllen: Erforderlich. Verwendet dieselbe Ausdruckssyntax wie der Decision-Schritt – Vergleichsoperatoren wie =, >, contains, kombiniert mit den Verknüpfungen &, | und !(...).
  • Tipps: Nutze den SmartField-Picker (Assist-Edit), um Platzhalter einzufügen. Da die Bedingung bei jedem Durchlauf neu aufgelöst wird, verweise auf Werte, die der Schleifenrumpf verändert (ein Element, das du erhöhst, eine Sammlung, die du leerst), damit die Schleife überhaupt enden kann.

Verhalten

Die While-Schleife veröffentlicht eine Ausgabe, die nachfolgende und schleifeninterne Schritte lesen können:

  • iteration – der 1-basierte Index des aktuellen Durchlaufs.

Wenn der Schritt läuft:

  1. Bei jedem Dispatch löst AutoFlow die Konfiguration gegen den aktuellen Kontext neu auf – die Bedingung spiegelt also alle Änderungen wider, die der Schleifenrumpf im vorigen Durchlauf vorgenommen hat.
  2. Im Modus While wird die Bedingung sofort ausgewertet. Im Modus Do-While wird der erste Durchlauf erzwungen und die Bedingung erst ab dem zweiten Durchlauf geprüft.
  3. Ist die Bedingung wahr, laufen die an die while-Kante gehängten Schritte, und der Schritt fordert die Engine zu einem weiteren Durchlauf auf.
  4. Ist die Bedingung falsch, wird der Rumpf übersprungen und die Schleife endet – der Flow setzt mit den Schritten nach der While-Schleife fort.

Ist die Bedingung noch wahr, sobald iteration die Max. Iterationen überschreitet, bricht der Schritt mit Die While-Schleife wurde nicht innerhalb der konfigurierten maximalen Anzahl von <n> Iterationen beendet. ab und die Ausführung stoppt. Eine Schleife, die im Grenzdurchlauf natürlich endet, erzeugt keinen Fehler.

Best Practices

  • Verändere immer etwas, das die Bedingung liest. Eine While-Schleife endet nur, wenn ihre Bedingung falsch werden kann. Berührt der Rumpf die Werte der Bedingung nie, läuft die Schleife bis zum Max.-Iterationen-Limit und bricht ab. Erhöhe einen Element erstellen-Wert, leere eine Sammlung oder hole einen entfernten Status im Rumpf neu.
  • Für bekannte Sammlungen lieber For-Each. Wenn die vollständige Elementmenge bereits vorliegt, ist die For-Each-Schleife klarer und selbstbegrenzend. Greife nur zu While, wenn die Durchlaufzahl offen ist.
  • Max. Iterationen bewusst setzen. Behandle es als Sicherung, nicht als Schleifenzähler. Setze es bequem über den schlimmsten legitimen Fall, damit ein gesunder Lauf es nie auslöst, aber klein genug, dass ein Ausreißer schnell scheitert.
  • Do-While, wenn der erste Durchlauf unbedingt ist. Muss die Arbeit einmal laufen, bevor über ein Fortsetzen entschieden werden kann (zum Beispiel Holen-dann-Prüfen), vermeidet Do-While, diese erste Aktion vor der Schleife zu duplizieren.