Each return code consists of a subcode2, a subcode1 and the maincode.
The field for these return codes has the following format:
The field with the return code can be addressed with DSECT after a macro call (field xxxRETC, generated with the macro FHDR).
Subcode1
The error codes are divided into error classes. These are found in subcode. The following error classes exist:
Value | Meaning |
0 | No error. |
1 | Syntax error. |
32 | System error. |
64 | Permanent error. |
128 | Temporary error. |
The corresponding equates are defined in the macro YNDEQU with the prefix YNDC.
Subcode2
This field contains additional information or is zero.
Maincode
This field contains the exact error. It is divided into two bytes.
If subcode 1 has the value 1 (syntax error, see above), then the flush-right byte (byte 1) specifies the maincode for the cause of error and the flush-left byte (byte 2) specifies the parameter. The flush-right byte can have the following values:
Value of
Byte 1
(decimal)Meaning
(if the value of Subcode 1 is 1)Permanent error
1
the parameter field is partially or entirely in an invalid address space
2
the address or length field contradicts the keyword field
3
the parameter entry contradicts another parameter
4
the parameter value is too long or does not respect the syntax rules;
e.g. FILENAME, PASSWORDErrors which can be eliminated
10
the buffer is too small; this error code is reserved for future expansions
11
the arithmetic parameter value (e.g. RECSIZE value) is invalid
12
the keyword entered is not permitted for this parameter
13
a mandatory parameter is missing
The corresponding equates for byte 1 are defined in the macro YNDEQU with the prefix YND1.
The corresponding equates for byte 2 are defined in the macro YNDEQU with the prefix YND2.
If subcode1 has the value 32, 64 or 128 (decimal), then the maincode contains the message number as the result of the call, see the table on "Return codes for NCOPY, NDEL, NLMOD, NLSHOW, NMOD and NSHOW".
Examples
In the case of a syntax error in the partner name, the subcode1 is X‘01‘ and the maincode is X‘0204‘.
If the remote transfer admission is violated, the subcode1 is X‘40‘ and the maincode is X‘879‘.
Exception
If the maincode contains the value X’FFFF’, the request could not be executed for reasons specified uniquely throughout the system. The equates valid in this case for maincode, subcode1 and subcode2 are defined in the macro FHDR, which generates the default header.
Subcode 2 (SC2), subcode 1 (SC1) and maincode (MC) are specified as hexadecimal values in the following tables. In the case of SC1 =X’20’, X’40’ and X’80’, MC corresponds to the message number of the FTR message (decimal).