Jeder Returncode besteht aus einem Subcode2, einem Subcode1 und dem Maincode. Das Feld für den Returncode hat folgendes Format:
Das Feld mit dem Returncode ist nach einem Makro-Aufruf mittels DSECT (Feld xxxRETC, abgesetzt durch Makro FHDR) ansprechbar.
Subcode1
Die Fehlercodes sind in Fehlerklassen eingeteilt. Diese werden im Subcode1 hinterlegt. Folgende Fehlerklassen werden unterschieden (dezimal dargestellt):
Wert | Bedeutung |
0 | Kein Fehler. |
1 | Syntaktischer Fehler. |
32 | Systemfehler. |
64 | Permanenter Fehler. |
128 | Vorübergehender Fehler. |
Die entsprechenden Equates sind im Makro YNDEQU mit dem Präfix YNDC definiert.
Subcode2
Subcode2 enthält Zusatzinformationen zu Subcode1 oder ist gleich Null.
Maincode
Dieses Feld enthält den genauen Fehler. Es ist in 2 Byte unterteilt.
Wenn Subcode1 den Wert 1 hat (Syntaxfehler, siehe oben), dann gibt das rechtsbündige Byte (Byte 1) des Maincode die Fehlerursache und das linksbündige Byte (Byte 2) den Parameter an. Das rechtsbündige Byte kann folgende Werte annehmen:
Wert von Byte 1
(dezimal)Bedeutung
(wenn Subcode1 den Wert 1 hat)permanente Fehler
1
das Parameterfeld liegt ganz oder teilweise in einem ungültigen Adressraum
2
Adress- oder Längenfeld stehen in Widerspruch zum Schlüsselwortfeld
3
Parameterangabe steht in Widerspruch zu einem anderen Parameter
4
Parameterwert zu lang oder Verstoß gegen die Syntaxregeln;
zum Beispiel FILENAME, PASSWORDbehebbare Fehler
10
Puffer zu klein; dieser Fehlercode ist für zukünftige Erweiterungen reserviert
11
arithmetischer Parameterwert (zum Beispiel RECSIZE-Wert) ungültig
12
Angegebenes Schlüsselwort ist für diesen Parameter nicht zulässig
13
Pflichtparameter fehlt
Die entsprechenden Equates für Byte 1 sind im Makro YNDEQU mit dem Präfix YND1 definiert.
Die entsprechenden Equates für Byte 2 sind im Makro YNDEQU mit dem Präfix YND2 definiert.
Besitzt Subcode1 den Wert 32, 64 oder 128 (dezimal), dann enthält der Maincode die Meldungsnummer als Resultat des Aufrufs, siehe auch Tabelle auf "Returncodes für NCOPY, NDEL, NLMOD, NLSHOW, NMOD und NSHOW".
Beispiele
Bei einem syntaktisch falschen Partnernamen ist der Subcode1 X‘01‘ und der Maincode X‘0204‘.
Bei einem Verstoß gegen die ferne Zugangsberechtigung ist der Subcode1 X‘40‘ und der Maincode X‘879‘.
Ausnahme
Enthält der Maincode den Wert X’FFFF’, so konnte der Auftrag aus systemweit eindeutig geregelten Gründen nicht ausgeführt werden. Die für diesen Fall gültigen Equates für Maincode, Subcode1 und Subcode2 sind im Makro FHDR definiert, der den Standardheader absetzt.
In den folgenden Tabellen sind Subcode2 (SC2), Subcode1 (SC1) und Maincode (MC) sedezimal angegeben. Für SC1 =X’20’, X’40’ und X’80’ stimmt MC mit der Meldungsnummer der FTR-Meldung (dezimal) überein.