Anwendungsgebiet: PROCEDURE
Kommandobeschreibung
Das Kommando REPEAT-STMT ermöglicht die wiederholte Ausführung einer Anweisung (SDF-Format), wobei ein speziell gekennzeichneter Teil (Namensteil, Operand, Operandenwert) nacheinander durch die Elemente einer Eingabeliste substituiert wird. Diese Elemente können als Sätze in einer Datei, einem Bibliothekselement oder als Listenelemente einer S-Variablen spezifiziert oder direkt am Terminal eingegeben werden. Die angegebene Anweisung wird für jedes Element der Eingabeliste aufgerufen.
Die Substitution kann prinzipiell an beliebiger Stelle der Anweisung erfolgen; sie kann auch an mehreren Stellen vereinbart werden. Die Wiederholung der Anweisung erfolgt aber immer nur in einfacher Schleife (keine Unterschleifen).
Es kann angegeben werden, ob in einem Selektionsmenü die Elemente der Eingabeliste nochmals zur Überprüfung ausgegeben werden sollen.
Das Kommando ist besonders zur Ausführung von Anweisungen geeignet, die nicht die Angabe von mehreren Werten (list-possible-Option) unterstützen.
Format
REPEAT-STMT |
STMT = <text 0..1800 with-low> ,SUBSTITUTION-LIST = *TERMINAL / <filename 1..54 without-gen-vers> / *VARIABLE(...) / *LIBRARY-ELEMENT(...) *VARIABLE(...) VARIABLE-NAME = <composed-name 1..255> *LIBRARY-ELEMENT(...) LIBRARY = <filename 1..54 without-vers> ,ELEMENT = <composed-name 1..64>(...) <composed-name 1..64>(...) VERSION = *HIGHEST-EXISTING / <composed-name 1..24> ,TYPE = S / <alphanum-name 1..8> ,DIALOG-SELECTION = *NO / *YES ,CONTINUE-AFTER-ERROR = *YES / *NO |
Operandenbeschreibung
STMT= <text 0..1800 with-low>
Anweisung im SDF-Format, die wiederholt ausgeführt werden soll. Die Angabe ist in runde Klammern einzuschließen. Als Platzhalter für zu substituierende Teile sind die Zeichen %* anzugeben. Der Anweisungsname ist ohne führende Schrägstriche anzugeben.
Beispiel: STMT=(WRITE-TEXT TEXT='%*')
SUBSTITUTION-LIST = *TERMINAL / <filename 1..54 without-gen-vers> / VARIABLE(...) / *LIBRARY-ELEMENT(...)
Bezeichnet das Eingabemedium für die Elemente der Eingabeliste.
SUBSTITUTION-LIST = *TERMINAL
Die Elemente der Eingabeliste werden vom Terminal gelesen. Nach Absenden des Kommandos REPEAT-STMT wird als Eingabeaufforderung die Zeichenfolge „%>>:“ ausgegeben. Jede Eingabe für ein Element ist mit den Tasten abzusenden. Danach erscheint erneut die Eingabeaufforderung. Das Einlesen wird beendet, wenn der String *END-OF-CMD eingegeben wird.
SUBSTITUTION-LIST = <filename 1..54 without-gen-vers>
Die Elemente der Eingabeliste werden aus der angegebenen Datei (ISAM-Datei mit Standardschlüsseln oder SAM-Datei) gelesen. Das Einlesen wird beendet, wenn Dateiende erkannt oder der String *END-OF-CMD gelesen wird.
SUBSTITUTION-LIST = VARIABLE(...)
Die Elemente der Eingabeliste der angegebenen Variablenliste werden gelesen. Das Einlesen wird beendet, wenn das Listenende erkannt oder der String *END-OF-CMD gelesen wird.
VARIABLE-NAME = <composed-name 1..255>
Name der Listenvariablen.
Die Variable muss existieren und mit dem Datentyp STRING deklariert worden sein. (Sie kann auch mit dem Datentyp ANY deklariert sein. Jedoch darf sie dann auch nur Strings enthalten.)
SUBSTITUTION-LIST = *LIBRARY-ELEMENT(...)
Die Elemente der Eingabeliste aus dem angegebenen Bibliothekselement werden gelesen. Das Einlesen wird beendet, wenn Dateiende erkannt oder der String *END-OF-CMD gelesen wird.
LIBRARY = <filename 1..54 without-vers>
Name der Bibliothek.
ELEMENT = <composed-name 1..64>(...)
Name des Bibliothekselements.
VERSION = *HIGHEST-EXISTING / <composed-name 1..24>
Version des Bibliothekselements.
TYPE = S / <alphanum-name 1..8>
Typ des Bibliothekselements.
DIALOG-SELECTION = *NO / *YES
Bestimmt, ob am Terminal ein Selektionsmenü ausgegeben wird. In diesem Menü werden alle Elemente der Eingabeliste zur nochmaligen Verifikation aufgelistet; Markierung mit beliebigem Zeichen möglich.
CONTINUE-AFTER-ERROR = *YES / *NO
Bestimmt, ob nach fehlerhafter Anweisungsausführung die Verarbeitung mit dem nächsten Element der Eingabeliste fortgesetzt oder abgebrochen wird.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
2 | 0 | SDP2000 | Warnung: Nicht alle Elemente der Eingabeliste konnten erfolgreichabgearbeitet werden. garantierte Meldung: SDP2000 |
1 | SDP2001 | Keines der Elemente der Eingabeliste konnte erfolgreich abgearbeitet werden. garantierte Meldung: SDP2001 |
Wurde aufgrund der Angabe CONTINUE-AFTER-ERROR=*NO die Verarbeitung nach dem ersten Fehler abgebrochen (Meldung SDP2003
), so wird der Returncode der fehlerhaften Anweisung geliefert.