SHOW-CJC-STATUS
Mit diesem Kommando kann sich der Benutzer über Aufträge mit momentan wirksamen Anwendungen der Bedingungsabhängigen Auftragssteuerung (CJC = Conditional Job Control) informieren. Die Abfrage kann für Rechner, Kataloge oder Jobvariablen formuliert werden.
SKIP-COMMANDS
Dieses Kommando verzweigt innerhalb der Kommandofolge abhängig von der Auswertung einer als Operand angegebenen Bedingung.
Tritt in der Kommandofolge ein SKIP-COMMANDS auf, so werden die Werte aller im Bedingungsoperanden angegebenen Jobvariablen unmittelbar gelesen und der bedingte Ausdruck ausgewertet. Ergibt die Auswertung „Bedingung erfüllt“, so wird zur vorgegebenen Stelle in der Kommandofolge verzweigt. Das Sprungziel kann in der Kommandofolge vor oder hinter dem SKIP-COMMANDS-Kommando liegen. Ergibt die Auswertung „Bedingung nicht erfüllt“, so wird die Verarbeitung mit dem Kommando fortgesetzt, das auf SKIP-COMMANDS folgt.
WAIT-EVENT
Mit dem Kommando WAIT-EVENT kann ein Auftrag in den Wartezustand versetzt werden, bis eine angegebene Bedingung erfüllt ist oder bis ein vorgegebenes Zeitintervall verstrichen ist. Im letzteren Fall kann der Benutzer durch eine Marke angeben, wo der Auftrag nach Zeitablauf fortgesetzt werden soll. Das Sprungziel kann in der Kommandofolge vor oder hinter dem WAIT-EVENT-Kommando liegen. Ohne Angabe eines Sprungziels wird zum nächsten SET-JOB-STEP, EXIT-JOB, LOGOFF, END-PROCEDURE bzw. IF-BLOCK-ERROR in der Kommandofolge verzweigt.
ADD-CJC-ACTION
Mit dem Kommando ADD-CJC-ACTION kann ein Auftrag während eines bestimmten Zeitintervalls mehrfach auf die Erfüllung einer angegebenen Bedingung asynchron warten, während die normale Abarbeitung der nachstehenden Kommandofolge fortgesetzt wird. Für die Fälle „Bedingung erfüllt“ und Auftreten von „timeout“ können jeweils unterschiedliche Aktionen festgelegt werden. Erlaubte Aktionen sind das Starten von Aufträgen (ENTER-JOB), das Starten von Prozeduren (ENTER-PROCEDURE) und das Setzen von Jobvariablen (MODIFY-JV).
Eine CJC-Kommandofolge beginnt mit dem Kommando ADD-CJC-ACTION und endet mit dem Kommando END-CJC-ACTION. Dazwischen können zwei Kommandofolgen für „Bedingung erfüllt“ und „timeout“ mit beliebig vielen erlaubten Aktionen (ENTER-JOB-, ENTER-PROCEDURE- bzw. MODIFY-JV-Kommandos) stehen. Die Kommandofolgen werden vom System für eine spätere Ausführung gespeichert. Tritt das Ereignis „Bedingung erfüllt“ ein, so wird ein gerade bearbeitetes Kommando noch ausgeführt (WAIT-EVENT-Wartezustand wird sofort unterbrochen!) und die erste CJC-Kommandofolge abgearbeitet. Danach wird der Auftrag normal am Unterbrechungspunkt fortgesetzt. Entsprechend wird bei Auftreten von „timeout“ die zweite CJC-Kommandofolge abgearbeitet.
Befindet sich der Auftrag im Programm-Modus (incl. TU-Contingency), so wird er sofort unterbrochen, und die vorgegebene CJC-Kommandofolge wird ausgeführt. Danach erfolgt die Rückverzweigung zur Unterbrechungsstelle im Programm.
Hinweis
Tritt das Ereignis „Bedingung erfüllt“ ein, wird die CJC-Kommandofolge durchlaufen. Werden mehrere Wiederholungen vereinbart, wird vor jedem erneuten Durchlauf geprüft, ob die Bedingung erfüllt ist.
Das Zeitintervall, in dem das System die Bedingung überprüfen soll (timeout), kann ebenfalls im Kommando angegeben werden.
Das Kommando ADD-CJC-ACTION bleibt im System solange wirksam, bis
der Auftrag beendet (Kommando EXIT-JOB bzw. LOGOFF) bzw. abgebrochen (Kommando CANCEL-JOB) wird,
die maximale Anzahl Ereignisse „Bedingung erfüllt“ eingetreten ist,
die Lebensdauer „timeout“ abgelaufen ist,
das ADD-CJC-ACTION gelöscht wird (REMOVE-CJC-ACTION), oder
ein Katalog, der eine beteiligte Jobvariable enthält, exportiert wird
Hinweis
Solange das Kommando ADD-CJC-ACTION wirksam ist, kann kein Fixpunkt (Makro WRCPT) geschrieben werden. Ein Restart (Kommando RESTART-PROGRAM) beendet alle noch wirksamen Kommandos ADD-CJC-ACTION.
END-CJC-ACTION
Das Kommando END-CJC-ACTION dient in der Kommandofolge als Abschluss der CJC-Kommandofolge. Eine CJC-Kommandofolge beginnt mit einem ADD-CJC-ACTION-Kommando und endet mit einem END-CJC-ACTION-Kommando. Zwischen diesen begrenzenden Anweisungen stehen alle Kommandos, die im Fall von „Bedingung erfüllt“ bzw. nach Ablauf der angegebenen Zeit (timeout) ausgeführt werden sollen.
Nach END-CJC-ACTION wird die CJC-Kommandofolge unter einer auftragsbezogenen lokalen Nummer abgespeichert. Mit der Angabe dieser Nummer kann eine bestimmte CJC-Kommandofolge wieder gelöscht werden (REMOVE-CJC-ACTION).
REMOVE-CJC-ACTION
Mit diesem Kommando erlischt die Wirksamkeit einer bestimmten CJC-Kommandofolge oder aller noch wirksamen CJC-Kommandofolgen (Operand ALL).
Alle im Zusammenhang mit den gelöschten CJC-Kommandofolgen gespeicherten Informationen werden gelöscht.
ONEVT - Makroaufruf
Mit dem Makroaufruf ONEVT kann der Benutzer auf Programmebene Wertänderungen von Jobvariablen zur Steuerung seines Programmlaufs ausnutzen. Dazu kann als Operand eine Bedingung angegeben werden. Bei jeder Wertänderung einer dort verwendeten Jobvariablen wird vom System geprüft, ob die Bedingung erfüllt ist. Der Fall „Bedingung erfüllt“ hat die Eigenschaft eines Ereignisses im Sinne der TU-Ereignissteuerung über so genannte Event Items. Das bedeutet, dass vorher mit dem Makroaufruf ENAEI eine entsprechende Ereigniskennung eingerichtet und entweder das erwartete Ereignis mit SOLSIG angefordert oder dafür eine Contingency-Routine definiert werden muss.
DONEVT - Makroaufruf
Mit dem Makroaufruf DONEVT wird die Wirkung des Makros ONEVT aufgehoben. Da das Warten auf eine ONEVT-Bedingung (Jobvariablen-Ereignis) auch durch den TIMEOUT-Wert im SOLSIG aufgehoben werden kann, ist es sinnvoll (logisch zwingend), eine „verspätete“ Auswirkung des ONEVT mittels DONEVT und DISEI zu verhindern.
Andernfalls kann, wenn mit derselben Ereigniskennung ONEVT und SOLSIG wiederholt durchlaufen werden, mit diesem SOLSIG ein verspätetes Ereignis des alten ONEVT angefordert werden.
Alternativ hierzu kann in jedem Aufruf des Makros ONEVT dem Operanden POST ein anderer Wert zugewiesen werden, um Ereignisse verschiedener ONEVT unterscheiden und alte verwerfen zu können.
Nähere Informationen zum Thema Ereignissteuerung können dem Handbuch „Makroaufrufe an den Ablaufteil“ [4] entnommen werden.
Nachfolgende Tabelle zeigt den Anwendungsbereich von bedingten Kommandos und Makros.
Kommando / Makro | Programmebene | Kommandoebene | |||
Batchverarbeitung | Dialogverarbeitung | ||||
Proz.Modus | Kom.Modus | Proz.Modus | Kom.Modus | ||
SHOW-CJC-STATUS | -- | x | x | x | x |
SKIP-COMMMANDS | -- | x | x | x | -- |
WAIT-EVENT | -- | x | x | x | x |
ADD-CJC-ACTION | -- | x | x | x | x |
END-CJC-ACTION | -- | x | x | x | x |
REMOVE-CJC-ACTION | -- | x | x | x | x |
ONEVT | x | -- | -- | -- | -- |
DONEVT | x | -- | -- | -- | -- |
Tabelle 21: Anwendungsbereich bedingter Kommandos und Makroaufrufe
Hinweis
Temporäre Jobvariablen in den Kommandos/Makros der Bedingungsabhängigen Auftragssteuerung sind nur innerhalb des erzeugenden Auftrags möglich!
Der Zugriff auf temporäre Jobvariablen eines anderen Auftrags ist nicht möglich.