Der EDT liefert einen Kommando-Returncode, der von SDF-P zur Steuerung in S-Prozeduren verwendet werden kann. Durch den Kommando-Returncode besteht die Möglichkeit, auf bestimmte Fehlersituationen gezielt zu reagieren.
Der Kommando-Returncode besteht aus drei Teilen:
dem Maincode, der einem Meldungsschlüssel entspricht, über den mit dem Kommando
HELP-MSG-INFORMATIONdetailierte Informationen abgefragt werden könnendem Subcode1 (
SC1), der die aufgetretene Fehlersituation in eine Fehlerklasse einordnet, aus der abgeleitet werden kann, wie schwerwiegend ein Fehler istdem Subcode2 (
SC2), der Zusatzinformationen (Wert ungleich Null) enthalten kann
SC2 | SC1 | Maincode | Bedeutung |
0 | 0 | EDT8000 | Normale Beendigung des EDT-Laufs. Es trat keine Meldung auf |
2 | 0 | EDT8000 | Normale Beendigung des EDT-Laufs. Es traten nur Meldungen des Meldungsgewichts 0, 1, 2 auf (Informationen, Warnungen, keine Syntaxfehler) |
5 | 0 | EDT8000 | Normale Beendigung des EDT-Laufs. Es trat mindestens eine Meldung des Meldungsgewichts 4 oder 5 auf (Fehler bei Funktion oder Ausführung, keine Syntaxfehler) |
10 | 0 | EDT8000 | Normale Beendigung des EDT-Laufs. Es trat mindestens eine Meldung des Meldungsgewichts 3 auf (Syntaxfehler in einer Anweisung) |
50 | 64 | EDT8101 | Abnormale Beendigung durch den Benutzer |
100 | 64 | EDT8200 | Abbruch wegen Zeitablauf (Überschreitung der Programmlaufzeit) |
100 | 64 | EDT8292 | Fehler beim Lesen. Programm abgebrochen |
100 | 64 | EDT8293 | Fehler beim Schreiben. Programm abgebrochen |
150 | 64 | EDT8910 | Programmunterbrechung |
150 | 64 | EDT8001 | Abnormale Beendigung nach Programmunterbrechung |
200 | 64 | EDT8002 | Fehler beim Nachladen des Modus EDT |
200 | 64 | EDT8003 | Nicht genügend virtueller Speicher verfügbar |
200 | 64 | EDT8005 | Fehler bei Initialisierung des EDT |
200 | 64 | EDT8006 | Installationsfehler |
Zu Meldungen und Meldungsgewichten siehe Abschnitt „Meldungstexte“.
Wenn der EDT abnormal beendet wurde, können die Komponenten des Returncodes mit den SDF-P-Funktionen SUBCODE1(), SUBCODE2() und MAINCODE() abgefragt werden.
Wenn der EDT normal beendet wurde, kann mit dem Kommando /SAVE-RETURNCODE der Returncode sichergestellt und ebenfalls ausgewertet werden (nähere Information zu Kommando-Returncodes und zum Abfragen von Returncodes siehe Handbuch SDF-P [7]).
Beispiel zum Abfragen von Returncodes
/MODIFY-JOB-SWITCHES ON=5 /START-EDT @LOG NONE @... @DIALOG @... @HALT /SAVE-RETURNCODE /IF-BLOCK-ERROR / WRITE-TEXT 'FEHLER: &SUBCODE1, &SUBCODE2, &MAINCODE' /ELSE / WRITE-TEXT 'EDT NORMAL BEENDET' / IF (&SUBCODE2 > 5) / WRITE-TEXT 'SYNTAX FEHLER IST AUFGETRETEN' / RAISE-ERROR MAINCODE=EDT3002 / END-IF / ... /END-IF /HELP-MSG-INFORMATION &MAINCODE /MODIFY-JOB-SWITCHES OFF=5