Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

SYSSTMT-Exit 083

&pagelevel(4)&pagelevel

Dieser Exit entspricht dem Exit 081. Alle Aussagen gelten gleichermaßen für beide Exits.

Hinweise

  • Register 12, 13 und 14 dürfen von der Exit-Routine nicht zerstört werden.

  • Die SYSTMT-Exit-Routine sollte Anweisungen, die über die verschiedenen Wege eingegeben werden, dennoch gleich verarbeiten.

  • Wird die Exit-Routine deaktiviert, während eine Anweisung durch mehrere ersetzt wird, wird der Dummy-Kommandosatz /REMARK SYSCMD EXIT NO MORE ACTIVE DURING PROCESSING an das Benutzerprogramm gesendet.

  • Ein Kommando/eine Anweisung darf nur verändert werden durch ein Kommando oder eine Anweisung, die in der System-Syntaxdatei definiert sind.

  • In Prozeduren ist die Variablensubstitution zum Zeitpunkt des Exit-Aufrufs bereits durchgeführt.

DSECT

         EX080 D
EX080PL  DSECT
*-
*-       INPUT  INFORMATION
*-
EX080IND DC    AL1(0)                  SOURCE OF COMMANDS
EX080TER EQU   1                       -CMD READ FROM A TERMINAL
EX080FIL EQU   2                       -CMD READ FROM A JCL FILE
EX080MCL EQU   4                       -CMD READ VIA MCLP
EX080TRN EQU   8                       -CMD READ VIA TRCMD          999
EX080BUF EQU   16                      -CMD FOUND IN BS2000 BUFFER  999
*-
EX080BIT DC    X'00'                   BIT_INFO                     900
EX080SDF EQU   X'80'                   -INPUT IN SDF STRUCTURED FORM002
EX080SD2 EQU   X'40'                   -INPUT IN NEW SDF STRUCT FORM120
EX080STR EQU   X'00'                   -INPUT IN STRING MODE        900
*-
EX080UNU DC    2X'00'                                               900
*-
EX080IR  DC    A(0)                    A (INPUT RECORD)
*-
*-       OUTPUT INFORMATION
*-
EX080RC  DC    AL1(0)                  SYSCMD EXIT'S RETURN CODE
EX80CAC  EQU   0                       -CMD REC ACCEPTED
EX80CRJ  EQU   4                       -CMD REC REJECTED
EX80CRO  EQU   8                       -CMD REC REPLACED BY ONE
EX80CRS  EQU   12                      -CMD REC REPLACED BY SEVERAL
EX80CLR  EQU   16                      -LAST CMD REC REPLACED
         DC    3X'00'                  UNUSED IN VER=710
*-
EX080RR  DC    A(0)                    A (RETURNED RECORD)
*-
*-       ADDITIONAL INPUT  INFORMATION
*-
EX080ILR DC    A(0)                    A (LOWER CASE INPUT RECORD)
EX080STD DC    A(0)                    A (STD FORM)
EX080PLL EQU   *-EX080PL               LENGTH OF SYSCMD EXIT  P/L

Erklärung der Felder:

EX080IND

Quelle des Kommandos

EX080TER

Kommandoeingabe vom Terminal

EX080FIL

Kommandoeingabe aus einer JCL-Date

EX080MCL

Kommandoeingabe über MCLP aus einem Benutzerprogramm

EX080TRN

Kommandoeingabe von TRCMD

EX080BUF

Kommando intern gelesen

EX080BIT

Indikator für SDF

EX080SDF

Eingabe in SDF-Struktur

EX080STR

Eingabe nicht in SDF-Struktur

EX080IR
EX080RC

Adresse des Eingabe-Kommandosatzes oder des normierten Übergabebereichs

Returncode des System Exits

EX080CAC

Kommando akzeptiert

EX080CRJ

Kommando abgewiesen

EX080CRO

Kommando geändert oder ersetzt

EX080CRS

Kommando wird durch mehrere Kommandos ersetzt

EX080CLR

letzter Kommandosatz ersetzt

EX080RR

Adresse des Kommandosatzes, der an die rufende Systemkomponente zurückgegeben wird (bei Ändern/Ersetzen)

EX080ILR

Adresse des Eingabesatzes

EX080STD

Adresse der Standardeingabe

Erklärung der Returncodes im Feld EX080RC

Returncode X'04': Kommando zurückgewiesen (EX080RC=EX080CRJ)

Im Dialogbetrieb wird keine Systemmeldung ausgegeben; die Exit-Routine kann jedoch eine Meldung an den Benutzer senden

Bei Kommandoeingabe aus einer katalogisierten Datei wird folgende Meldung ausgegeben:

/REMARK COMMAND REJECTED BY THE SYSTEM ADMINISTRATOR

Im Stapelbetrieb wird die gleiche Meldung in die Protokolldatei aufgenommen.

Returncode X'08': Kommando ersetzen oder ändern (EX080RC=EX080CRO)

Die Exit-Routine muss das neue oder geänderte Kommando selbst aufbauen bzw. den normierten Übergabebereich versorgen (siehe Handbuch „SDF-A“ [10]). Die Adresse des Kommandosatzes (des normierten Übergabebereichs) wird im Feld EX080RR des Parameterbereichs an die rufende Systemkomponente übergeben.

Aufbau des Kommandosatzes (sofern nicht normierter SDF-Übergabebereich)

0

2

4                                                                           

SL-1    

SL


Kommando mit Operanden                                                          

SL = Satzlänge

Der Kommandosatz darf keinen ISAM-Schlüssel, kein Fortsetzungszeichen und keine symbolischen Parameter (&...) enthalten. Die Satzlänge darf verändert werden.

Im Dialogbetrieb erfolgt keine Systemmeldung.

Bei Kommandoeingabe aus einer katalogisierten Datei wird das neue oder geänderte Kommando ausgegeben bzw. in die Protokolldatei geschrieben.

Bei Kommandoeingabe über MCLP muss das ersetzende Kommando ebenfalls MCLP-zulässig sein, sonst wird der Returncode X'14' (= ungültiges Kommando) an das Benutzerprogramm zurückgeben. Es darf kein CALL-PROCEDURE-, LOGOFF-, LOAD-PROGRAM- oder START-PROGRAM-Kommando zurückgegeben oder ein anders Kommando über MCLP aufgerufen werden, da dann das Anwenderprogramm sofort entladen wird. – Tritt bei Abarbeitung des neuen Kommandos ein Fehler auf, wird X'10' (unzulässiges Kommando) an das Anwenderprogramm gemeldet.

Returncode X'0C'/X'10': ein Kommando durch mehrere Kommandos ersetzen
(EX080RC=EX080CRS/EX080CLR)

Gibt die Exit-Routine einen Kommandosatz an das System zurück (siehe RC = X'08') und setzt gleichzeitig im Feld EX080RC den Returncode auf X'0C' (= EX080CRS), erhält sie sofort die Steuerung zurück und kann einen weiteren Kommandosatz übergeben. Ab dem zweiten Aufruf nach Returncode X'0C', ist die Adresse des Eingabe-Kommandosatzes (Feld EX080IR des Parameterbereichs) auf null gesetzt. Wenn die Exit-Routine das letzte Kommando zurückgibt, muss sie den Returncode im Parameterbereich auf X'10' (=EX080CLR) setzen.

Im Dialogbetrieb erfolgt keine Systemmeldung, wenn ein Kommando durch mehrere ersetzt wurde.

Im Stapelbetrieb werden die ersetzenden Kommandos in die Protokolldatei geschrieben.

Bei Kommandoeingabe über MCLP sind die Hinweise zu beachten, die den Returncode X'08' betreffen. Die o.g. Kommandos CALL-PROCEDURE etc. dürfen auch nicht in einer Kommandofolge zurückgegeben werden, da dann das Anwenderprogramm sofort entladen wird. Wenn im Anwenderprogramm ein Puffer für die Aufnahme der
Bearbeitungsergebnisse des MCLP-Kommandos zur Verfügung gestellt wird, muss dieser Puffer die Ergebnisse der gesamten Kommandofolge aufnehmen können.

Es ist zu erwarten, dass viele Anwenderprogramme, die MCLP-Aufrufe benutzen, nicht mehr korrekt ablaufen, wenn die Exit-Routine ein Kommando durch mehrere ersetzt!