LOOP-Befehl

Führt eine Reihe von ACLScript-Befehlen wiederholt für einen Datensatz aus, bis eine angegebene Bedingung eintritt.

Hinweis

Der LOOP-Befehl muss durch den GROUP-Befehl umschlossen sein.

Syntax

LOOP WHILE Test
  Befehl
  <...n>
END

Parameter

Name Beschreibung
WHILE Test

Der Test, der „wahr“ zurückgeben muss, damit die Befehle innerhalb des LOOP-Befehls ausgeführt werden. Wenn der Test positiv verläuft, werden die Befehle wiederholt ausgeführt, bis der Test "false" als Ergebnis liefert.

Befehl <...n>

Eine oder mehrere auszuführende Befehle.

Sie können mehrere Befehle innerhalb des LOOP-Befehls eingeben. Jeder Befehl muss sich in einer eigenen Zeile befinden.

END Das Ende des LOOP-Befehls.

Beispiele

Durch Kommas getrennte Datei aufteilen

Ihnen liegt eine Tabelle mit Rechnungsdaten vor, und Sie möchten spezifische Informationen für Rechnungsbeträge pro Abteilung isolieren. Eine Rechnung kann sich auf mehr als eine Abteilung beziehen, und Abteilungscodes werden durch Kommas getrennt in der Tabelle gespeichert.

Um die Rechnungsbeträge pro Abteilung zu extrahieren, gehen Sie wie folgt vor:

  1. Verwenden Sie einen GROUP-Befehl, um die Tabelle einen Datensatz nach dem anderen zu verarbeiten.
  2. Berechnen die Anzahl der Abteilungen (n) für jeden Datensatz.
  3. Verwenden Sie den LOOP-Befehl, um den Datensatz n-mal zu durchlaufen und dabei Daten für jede mit dem Datensatz verbundene Abteilung zu extrahieren.
 COMMENT GROUP verwenden, um Kommas in jedem Feld für Abteilungscodes zu zählen und dadurch festzustellen, wie viele Abteilungen zu dem Datensatz gehören. Mit LOOP wird bei jedem Datensatz eine Schleife für alle Codes im Feld ausgeführt, und jeder Code wird in seinen eigenen Datensatz extrahiert END GROUP v_Abteilungszahl = OCCURS(Abteilungscode;',') v_Zähler = 0 LOOP WHILE v_Zähler <= v_Abteilungszahl v_Abteilung = SPLIT(Abteilungscode; ','; (v_Zähler + 1)) EXTRACT FIELDS Rechnungsnummer, Rechnungsbetrag, v_Abteilung AS "Abteilung" TO Ergebnis1 v_Zähler = v_Zähler + 1 END END

Bemerkungen

Tipp

Eine detaillierte Tutorial für die GROUP- und LOOP-Befehle finden Sie unter Gruppierung und Schleifen.

Wann Sie LOOP verwenden sollen

Schleifen werden oft verwendet, wenn ein Datensatz sich wiederholende Informationen enthält, die Sie verarbeiten möchten.

Funktionsweise

Jeder LOOP-Befehl muss eine zu testende WHILE-Bedingung festlegen und mit einer END-Anweisung abgeschlossen werden. Die Befehle zwischen LOOP und END werden wiederholt für den aktuellen Datensatz ausgeführt, solange der angegebene Test „wahr“ ergibt.

Wenn der Test bereits zu Anfang nicht erfüllt ist, werden die Befehle nicht ausgeführt.

Unendliche Schleifen vermeiden

Um eine endlose Schleife zu vermeiden, ist sicherzustellen, dass der Test letztendlich den Wert "false" zurückgibt. Sie können auch den Befehl SET LOOP verwenden, um unendliche Schleifen zu verhindern.

Leitfaden für die Skripterstellung in ACL 14.1