Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

EXIT-PROCEDURE

&pagelevel(3)&pagelevel

Prozedurablauf beenden (Rückkehr zum Aufrufer)

Komponente:

SYSFILE

Funktionsbereich:

Prozeduren

Anwendungsbereich:

PROCEDURE                                                                     

Privilegierung:

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

Funktionsbeschreibung

EXIT-PROCEDURE ist ein SDF-P-Kontrollflusskommando. Es beendet den Prozedurablauf und bewirkt die Rückkehr zum Aufrufer (Prozedurstufe aus der der Aufruf erfolgte). Beendet EXIT-PROCEDURE die letzte Prozedur, erfolgt die Rückkehr zur primären Kommandoeingabe (entspricht der Prozedurstufe 0):
Im Dialog ist die Kommandoeingabe (SYSCMD) primär der Datenstation, im Batchbetrieb primär der ENTER-Datei zugeordnet.
Die Systemdateien (einschl. TASKLIB) erhalten die Zuordnung, die am Unterbrechungspunkt gültig war. Eine Datei, die mit ASSIGN-SYSLST in der Prozedur zugewiesen wurde, wird bei EXIT-PROCEDURE geschlossen.

Mit dem Operanden ERROR kann ein Kommando-Returncode an den Aufrufer zurückgegeben werden, der mit SDF-P-Mitteln ausgewertet werden kann (siehe Kommando IF-BLOCK-ERROR).
Im Operanden RESUME-PROGRAM kann vereinbart werden, dass ein geladenes Programm auch nach Beendigung der Prozedur fortgesetzt werden kann. Diese Funktion entspricht dem Kommando ENDP-RESUME.

Eine Prozedur wird bei Eintritt der EOF-Bedingung (physikalisches Ende der Prozedurdatei bei Kommandoverarbeitung erreicht) wie bei Ausführung eines EXIT-PROCEDURE-Kommandos beendet. Der Aufrufer erhält einen Returncode, der dem aktuellen Fehlerzustand bei Beendigung entspricht.
Die Wirkung eines EXIT-PROCEDURE-Kommandos im ESCAPE-Modus ist beim HOLD-PROCEDURE-Kommando beschrieben.

In einer S-Prozedur wird das Kommando EXIT-PROCEDURE in einer Fehlersituation nicht erkannt.

 

Format

EXIT-PROCEDURE                                                                                                                                     

ERROR = *NO (...) / *YES(...)


*NO(...)



|

SUBCODE2 = 0 / <integer 0..255>



|

,MAINCODE = CMD0001 / <alphanum-name 7..7>


*YES(...)



|

SUBCODE1 = 64 / <integer 0..255>



|

,SUBCODE2 = 0 / <integer 0..255>



|

,MAINCODE = SDP0018 / <alphanum-name 7..7>

,RESUME-PROGRAM = *NO / *YES

Operandenbeschreibung

ERROR =
Gibt an, welche Information der Aufrufer über den Prozedurablauf erhalten soll.

ERROR = *NO(...)
Der Aufrufer erhält den Returncode der Klasse „NO-ERROR“. Mit den Operanden SUBCODE2 und MAINCODE können Zusatzinformationen übermittelt werden:

SUBCODE2 = 0 / <integer 0..255>
Übergibt Zusatzinformation in Subcode2. Voreingestellt ist der Wert null, d.h. es ist keine Zusatzinformation vorhanden.

MAINCODE = CMD0001 / <alphanum-name 7..7>
Übergibt einen Meldungsschlüssel, dessen Bedeutung sich der Aufrufer mit dem Kommando HELP-MSG-INFORMATION ausgeben lassen kann.
Voreingestellt ist CMD0001, d.h. die Prozedur fehlerfrei beendet.

ERROR = *YES(...)
Der Aufrufer erhält einen Returncode, der einen Fehler anzeigt. Mit den Operanden SUBCODE1, SUBCODE2 und MAINCODE können Fehlerklasse und Zusatzinformationen übermittelt werden:

SUBCODE1 = 64 / <integer 0..255>
Bezeichnet die Fehlerklasse des aufgetreten Fehlers.

Aus Kompatibilitätsgründen ist auch SUBCODE1=0 möglich. Weil dieser Wert laut Konvention (siehe „Kommando-Returncode") für „kein Fehler“ steht, wird ERROR=*YES(SUBCODE1=0) ausgeführt wie ERROR=*NO.

SUBCODE2 = 0 / <integer 0..255>
Übergibt Zusatzinformation in Subcode2.
Voreingestellt ist der Wert null, d.h. es ist keine Zusatzinformation vorhanden.

MAINCODE = SDP0018 / <alphanum-name 7..7>
Übergibt einen Meldungsschlüssel, dessen Bedeutung sich der Aufrufer mit dem Kommando HELP-MSG-INFORMATION ausgeben lassen kann.

RESUME-PROGRAM = *NO / *YES
Gibt an, ob ein geladenes Programm bei Prozedurbeendigung fortgesetzt werden soll. Bei Angabe von *YES kann das zuletzt geladene Programm nach Prozedurbeendigung fortgesetzt werden.

Hinweis

Wird eine Prozedur im ESCAPE-Modus aufgerufen, so wird beim Rücksprung die Meldung „TASK IS IN ESCAPE-MODE AT LEVEL NUMBER i“ ausgegeben (i = Nummer der Prozedurstufe, in die der Rücksprung erfolgt ist).

Bei Erreichen der primären Kommandoeingabe (Stufe 0) wird diese Meldung nicht ausgegeben.

Kommando-Returncode

Mit dem Operanden ERROR kann das Kommando EXIT-PROCEDURE jeden Kommando-Returncode dem Aufrufer melden. Aus der Sicht des Aufrufers ist dies der Returncode des CALL-PROCEDURE- oder INCLUDE-PROCEDURE-Kommandos. Jedoch wenn die Ausführung des EXIT-PROCEDURE-Kommandos selbst zu einem Fehler führt, so wird nicht zum Aufrufer zurückgekehrt, sondern einer der folgenden Returncodes geliefert und die Fehlerbehandlung innerhalb der Prozedur angestoßen.

(SC2)

SC1

Maincode

Bedeutung


0

CMD0001

Ohne Fehler

2

0

SSM2039

Fehler beim Schließen Ausgabe-Systemdatei; die SYSOUT-Meldung enthält den DMS-Fehlerschlüssel als Insert


1

CMD0202

Syntaxfehler


3

CMD2203

Falsche Syntaxdatei


32

CMD0221

Systemfehler (interner Fehler)


64

SSM1013

Es ist keine Prozedur aufgerufen

Beispiele

Siehe Kommandos CANCEL-PROCEDURE und HOLD-PROCEDURE.