Zu Sprungziel verzweigen (abhängig von Schaltern oder JV)
Komponente: | BS2000 |
Funktionsbereich: | Auftragsverarbeitung |
Anwendungsbereich: | JOB |
Privilegierung: | STD-PROCESSING |
Funktionsbeschreibung
Mit dem Kommando SKIP-COMMANDS können in einer Prozedur bedingte oder unbedingte Sprünge ausgeführt werden. Folgende Bedingungen sind möglich:
Sprung abhängig von der Einstellung eines Auftragsschalters
(Operand IF=*JOB-SWITCHES):
Auftragsschalter können mit dem Kommando MODIFY-JOB-SWITCHES gesetzt werden (siehe „Auftragsschalter").Sprung abhängig von der Einstellung eines Benutzerschalters
(Operand IF=*USER-SWITCHES):
Benutzerschalter können mit dem Kommando MODIFY-USER-SWITCHES gesetzt werden.Sprung abhängig vom Inhalt einer JV (Operand IF = *JV):
Diese Funktion steht dem Anwender nur bei Einsatz des Subsystems JV zur Verfügung.
Beim unbedingten Sprung wird zum angegebenen Sprungziel verzweigt.
Beim bedingten Sprung wird zum angegebenen Sprungziel verzweigt, wenn die Bedingung erfüllt ist. Ist die Bedingung nicht erfüllt, wird die Verarbeitung bei dem nachfolgenden Kommando fortgesetzt.
Das Kommando darf nur in katalogisierten Kommandofolgen (Prozeduren und Enter-Dateien) verwendet werden. Es wird im Dialog abgewiesen und daher auch nicht im Menü angeboten.
In S-Prozeduren kann SKIP-COMMANDS nur eingeschränkt verwendet werden, da Nicht-S-Marken nur auf oberster Blockebene unterstützt werden. Für unbedingte Sprünge sollte das Kommando GOTO, für bedingte Sprünge ein entsprechender IF-Kommandoblock verwendet werden. Damit sind dann auch Sprünge innerhalb von Kommandoblöcken oder in einen übergeordneten Kommandoblock möglich.
Format
SKIP-COMMANDS | ||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
TO-LABEL = <name 1..8>
Sprungziel. Name der Nicht-S-Marke, die das Kommandos kennzeichnet, mit dem die Verarbeitung fortzusetzen ist, wenn die angegebene Bedingung erfüllt ist.
Ist keine Bedingung vereinbart, so erfolgt ein unbedingter Sprung. Ist das angegebene Sprungziel nicht vorhanden, so kann der unbedingte Sprung oder der bedingte Sprung bei „Bedingung erfüllt“ nicht ausgeführt werden, und die Prozedur wird abnormal beendet.
IF =
Art der Bedingung.
IF = *NO-CONDITION
Es erfolgt ein unbedingter Sprung zum angegebenen Sprungziel (TO-LABEL).
IF = *JOB-SWITCHES(...)
Sprung abhängig von der Stellung der angegebenen Auftragschalter.
ON = *NONE / list-poss(32): <integer 0..31>
Auftragsschalter. Die Bedingung ist erfüllt, wenn die angegebenen Schalter auf ON gesetzt sind und die im Operanden OFF angegebenen Schalter auf OFF stehen. Voreingestellt ist *NONE, d.h. die Auftragsschalter werden nicht auf die Stellung ON geprüft.
OFF = *NONE / list-poss(32): <integer 0..31>
Auftragsschalter. Die Bedingung ist erfüllt, wenn die angegebenen Schalter auf OFF gesetzt sind und die im Operanden ON angegebenen Schalter auf ON stehen. Voreingestellt ist *NONE, d.h. die Auftragsschalter werden nicht auf die Stellung OFF geprüft.
Sprung abhängig von der Stellung der angegebenen Benutzerschalter.
USER-IDENTIFICATION = *OWN / <name 1..8>
Benutzerkennung, deren Benutzerschalter abzufragen sind.
Voreingestellt ist *OWN, d.h. es werden die Benutzerschalter der Benutzerkennung des laufenden Auftrags abgefragt.
ON = *NONE / list-poss(32): <integer 0..31>
Benutzerschalter. Die Bedingung ist erfüllt, wenn die angegebenen Schalter auf ON gesetzt sind und die im Operanden OFF angegebenen Schalter auf OFF stehen. Voreingestellt ist *NONE, d.h. die Benutzerschalter werden nicht auf die Stellung ON geprüft.
OFF = *NONE / list-poss(32): <integer 0..31>
Benutzerschalter. Die Bedingung ist erfüllt, wenn die angegebenen Schalter auf OFF gesetzt sind und die im Operanden ON angegebenen Schalter auf ON stehen. Voreingestellt ist *NONE, d.h. die Benutzerschalter werden nicht auf die Stellung OFF geprüft.
IF = *JV(...)
Sprung abhängig vom Inhalt einer JV.
CONDITION = <text 0..1800 with-low cond-expr>
Bedingter Ausdruck (in Klammern eingeschlossen).
Die zulässigen Angaben sind im Abschnitt „Bedingte Ausdrücke (Jobvariablen)" beschrieben. Sonder-Jobvariablen sind zulässig.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Kommando ausgeführt | |
1 | CMD0202 | Syntaxfehler, Fehler in der Bedingung, Sprungmarke nicht gefunden oder Sprung auf das SKIP-COMMANDS-Kommando | |
32 | CMD0221 | Interner Fehler | |
32 | EXC0041 | Systemfehler | |
64 | EXC0868 | Benutzerkennung nicht gefunden | |
64 | EXC0878 | Sprungmarke nicht gefunden | |
130 | CJC0002 | JV nicht zugreifbar | |
130 | CJC0003 | Speichersättigung | |
130 | CMD2382 | Benutzerkennung gesperrt |
Hinweise
In einer Prozedurdatei kann sowohl vorwärts wie auch rückwärts gesprungen, d.h. ein vorangegangener Kommandosatz bearbeitet werden. Das System durchsucht die Datei nach dem Sprungziel zuerst ab SKIP-COMMANDS bis zum Ende und setzt dann die Suche am Dateianfang fort.
Der führende Punkt vor dem Sprungzielnamen darf nicht durch eine Ausdrucksersetzung entstehen, da sonst das Sprungziel als solches nicht mehr gefunden wird.