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:
- Verwenden Sie einen GROUP-Befehl, um die Tabelle einen Datensatz nach dem anderen zu verarbeiten.
- Berechnen die Anzahl der Abteilungen (n) für jeden Datensatz.
- 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.