Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

WAIT-EVENT

&pagelevel(3)&pagelevel

Auftrag ereignisabhängig in Wartezustand versetzen

Komponente:

BS2000

Funktionsbereich:

Jobvariablen

Anwendungsbereich:

JOB-VARIABLES
USER-ADMINISTRATION                                                                                             

Privilegierung:

STD-PROCESSING
HARDWARE-MAINTENANCE
SAT-FILE-EVALUATION
SAT-FILE-MANAGEMENT
SECURITY-ADMINISTRATION

Funktionsbeschreibung

Mit dem Kommando WAIT-EVENT kann der Benutzer den zeitlichen Ablauf eines Auftrags von Benutzerschalterstellungen und Zeitvorgaben oder vom Zustand einer Jobvariablen (JV) abhängig machen.

Benutzerschalter

Es können die Benutzerschalterstellungen der eigenen oder einer fremden Benutzerkennung abgefragt werden. Sind die gewünschten Schalterstellungen erreicht, bevor die angegebene Zeitgrenze (Operand TIME-LIMIT) überschritten ist, so wird der wartende Auftrag mit dem folgenden Kommando fortgesetzt. Ist die Zeit verstrichen, so wird Spin-Off ausgelöst. In Nicht-S-Prozeduren wird zu einem der folgenden Kommandos verzweigt:
SET-JOB-STEP, EXIT-JOB, CANCEL-PROCEDURE, END-PROCEDURE oder EXIT-PROCEDURE.
In S-Prozeduren wird zum nächsten Fehlerbehandlungsblock verzweigt (siehe Kommando IF-BLOCK-ERROR, Beschreibung der SDF-P-Fehlerbehandlung).

Werden keine Benutzerschalter angegeben (Operand ON bzw. OFF), so wird eine Zeitangabe (Operand TIME-LIMIT) ignoriert und die Verarbeitung sofort mit dem folgenden Kommando fortgesetzt.

Zeitvorgaben

Es können zeitliche Vorgaben in Form einer Zeitspanne oder eines Zeitpunktes gemacht werden. Nach Ablauf der vorgegebenen Zeit wird der wartende Auftrag mit dem folgenden Kommando fortgesetzt. Dies gilt auch, wenn die Zeitvorgabe für das Warten „Null“ ist. Wenn der vorgegebene Zeitpunkt jedoch in der Vergangenheit liegt, dann wird das Kommando abgewiesen.

Jobvariablen (JV)

Der Benutzer definiert eine Bedingung (Operand CONDITION) und setzt eine Zeitgrenze (Operand TIME-LIMIT). Zusätzlich kann er angeben, dass die Bedingung nur überprüft wird, wenn eine der davon betroffenen Jobvariablen während der Wartezeit geändert wird (Operand CHECK-CURRENT-VALUE). Ist die Bedingung erfüllt, bevor die Zeitgrenze erreicht ist, so wird der wartende Auftrag mit dem folgenden Kommando fortgesetzt. Ist die Zeit verstrichen, so wird die Verarbeitung bei dem angegebenen Sprungziel (Operand TIMEOUT-LABEL) fortgesetzt bzw. Spin-Off ausgelöst.

 

Format

WAIT-EVENT                                                                                                                                                 

UNTIL = *USER-SWITCHES(...) / *PERIOD(...) / *DATE(...) / *JV(...)


*USER-SWITCHES(...)



|

USER-IDENTIFICATION = *OWN / <name 1..8>



|

,ON = *NONE / list-poss(32): <integer 0..31>



|

,OFF = *NONE / list-poss(32): <integer 0..31>



|

,TIME-LIMIT = *SHUTDOWN / <integer 0..9999999 minutes>


*PERIOD(...)



|

SECONDS = 0 / <integer 0..9999999 seconds>


*DATE(...)



|

DATE = *TODAY / *TOMORROW / <date>



|

,TIME = <time>


*JV(...)



|

CONDITION = *NONE / <text 0..1800 with-low cond-expr>



|

,TIME-LIMIT = 600 / <integer 1..65535 seconds>



|

,TIMEOUT-LABEL = *NONE / <name 1..8>



|

,CHECK-CURRENT-VALUE = *YES / *NO

Operandenbeschreibung

UNTIL =
Art des Ereignisses.

UNTIL = *USER-SWITCHES(...)
Der Auftrag soll abhängig von Benutzerschalterstellungen warten. Ohne Angabe von Benutzerschaltern in den Operanden ON und OFF wird eine Zeitangabe im Operanden TIME-LIMIT ignoriert und die Verarbeitung sofort mit dem folgenden Kommando fortgesetzt.

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. Der Auftrag wird fortgesetzt, sobald 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. Der Auftrag wird fortgesetzt, sobald 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.

TIME-LIMIT = *SHUTDOWN / <integer 0..9999999 minutes>
Zeitangabe in Minuten. Maximale Wartezeit des Auftrags auf Eintritt des Ereignisses.

UNTIL = *PERIOD(...)
Der Auftrag soll eine bestimmte Zeit warten.

SECONDS = 0 / <integer 0..9999999 seconds>
Zeitangabe in Sekunden. Wenn die Zeitvorgabe für das Warten „Null“ ist, dann wird die Verarbeitung sofort mit dem folgenden Kommando fortgesetzt.

UNTIL = *DATE(...)
Der Auftrag soll bis zu einem bestimmten Zeitpunkt warten. Wenn der vorgegebene Zeitpunkt in der Vergangenheit liegt, dann wird das Kommando abgewiesen.

DATE = *TODAY / *TOMORROW / <date>
Datumsangabe.

TIME = <time>
Zeitangabe.

UNTIL = *JV(...)
Der Auftrag soll abhängig vom Zustand einer JV warten.

CONDITION = *NONE / <text 0..1800 with-low cond-expr>
Bedingter Ausdruck (in Klammern eingeschlossen). Der Auftrag wird fortgesetzt, sobald die Bedingung erfüllt ist.

Die zulässigen Angaben sind im Abschnitt „Bedingte Ausdrücke (Jobvariablen)" beschrieben.
Sonder-Jobvariablen sind nicht zulässig.

TIME-LIMIT = 600 / <integer 1..65535 seconds>
Zeitangabe in Sekunden. Maximale Wartezeit des Auftrags auf Eintritt des Ereignisses „Bedingung erfüllt“, wobei der Zeitpunkt der Überprüfung durch den Operanden CHECK-CURRENT-VALUE bestimmt wird. Zeitangaben größer 65280 Sekunden werden als unbegrenzte Wartezeit interpretiert.

TIMEOUT-LABEL = *NONE / <name 1..8>
Sprungziel. Name der Nicht-S-Marke, die das Kommando bezeichnet, mit dem die Verarbeitung fortzusetzen ist, wenn die angegebene Zeit abgelaufen und das Ereignis noch nicht eingetreten ist.
Wird kein Sprungziel definiert, so wird bei Zeitablauf Spin-Off ausgelöst. Im Dialog wird die Angabe eines Sprungziels ignoriert und eine Warnung ausgegeben.
Wurde WAIT-EVENT innerhalb einer Prozedur gegeben, so muss auch das Sprungziel innerhalb dieser Prozedur vorhanden sein, ansonsten erfolgt abnormale Prozedurbeendigung. Tritt das Sprungziel innerhalb einer CJC-Kommandofolge auf (siehe Kommando ADD-CJC-ACTION), so wird es nicht erkannt.

CHECK-CURRENT-VALUE = *YES / *NO
Gibt an, ob die Bedingung sofort überprüft werden soll.
Voreingestellt ist mit *YES die sofortige Überprüfung der Bedingung. Bei Angabe von *NO wird die Bedingung erst dann überprüft, wenn auf eine von der Bedingung betroffene Jobvariable ein Schreibzugriff erfolgt.

Kommando-Returncode

(SC2)

SC1

Maincode

Bedeutung


0

CMD0001

Kommando ausgeführt

1

0

CJC0022

UNTIL=*JV:
Wartezeit abgelaufen, keine Sprungmarke angegeben (TIMEOUT-LABEL=*NONE)

1

0

CMD0001

UNTIL=*USER-SWITCHES:
Kommando ohne Fehler ausgeführt, aber die Bedingung ist innerhalb der Wartezeit nicht eingetreten

2

0

CMD0002

UNTIL=*USER-SWITCHES:
Die Benutzerschalter wurden gesetzt, aber beim Durchsuchen der WHEN-Queue trat ein Fehler auf (SYSOUT-Meldung EXC0823).


1

CMD0202

Syntaxfehler, Fehler in der Bedingung, Sprungmarke nicht gefunden oder Sprung zu dem WAIT-EVENT-Kommando


32

CMD0221

Interner Fehler


32

EXC0041

Systemfehler


64

CMD0025

Katalog der JV exportiert


64

EXC0868

Benutzerkennung nicht gefunden


64

EXC0869

Kommando abgebrochen


64

EXC0878

Sprungziel nicht gefunden


130

CJC0002

JV nicht zugreifbar


130

CJC0003

Speichersättigung


130

CMD2382

SHUTDOWN bzw. CANCEL-JOB aktiv, Programm geladen, Benutzerkennung gesperrt oder Banddatei geöffnet

Hinweise

  • Für einen mittels WAIT-EVENT-Kommando (bei UNTIL=*JV(...)) in den Wartezustand versetzten Auftrag kann der Wartezustand zur Ausführung von CJC-Kommandofolgen vorübergehend aufgehoben werden. Danach geht der Auftrag erneut in den Wartezustand über.

  • Wenn das Kommando bearbeitet wird (bei UNTIL=*USER-SWITCHES, *PERIOD oder *DATE), werden alle Betriebsmittel eines Auftrags freigegeben, die vorher implizit oder mit einem SECURE-RESOURCE-ALLOCATION-Kommando angefordert worden sind, d.h. die Geräteanforderungen müssen wiederholt werden.

  • Das WAIT-EVENT-Kommando wird bei UNTIL ungleich *JV abgewiesen, wenn Banddateien eröffnet sind (Fehlermeldung EXC0849).

  • Der Punkt vor dem Sprungziel darf nicht durch eine Ausdrucksersetzung entstehen, da sonst das Sprungziel als solches nicht mehr gefunden wird.