By default, the #MREQ request is unconditional; any return-code other than X'00' will result in an abend of the issuing task. The issuing program can request return of control with the COND parameter to avoid an abend.
The value returned to register 15 differs according to whether the #MREQ request is a paging or a nonpaging request. Status codes issued as a result of a nonpaging #MREQ request fall in the range of '00' to '38'; paging requests return values in the range of '40' to '50'.
After completion of an #MREQ statement that does not involve pageable maps, the value in register 15 indicates the outcome of the operation. The following status codes apply to nonpageable maps:
The request has been serviced successfully.
The specified edit or code table cannot be found or is invalid for use with the named map.
The I/O has been interrupted; the terminal operator has pressed ATTENTION (2741) or BREAK (teletype).
A logical error (for example, an invalid control character) has been encountered in the output data stream.
A permanent I/O error has occurred during processing.
The dial-up line for the terminal is disconnected.
The terminal being used is out of service.
The map request block (MRB) contains an invalid field, indicating a possible error in program parameters.
The map load module named in the MRB either cannot be found in the dictionary load area (DDLDCLOD) or is invalid.
The requested map does not support the terminal device type being used.
An error has occurred in a user-written edit module. An invalid pointer to the data stream has been returned to register 1.
A data conversion error has occurred; the internal map data does not match the map data description.
The specified user-written edit module cannot be found or is invalid for use with the named map.
Invalid blast request to DESTID, LTERMID, or USER ID.
Invalid map load module.
After completion of an #MREQ function that involves pageable maps, the value in register 15 indicates the outcome of the operation: The following status codes apply to pageable maps:
(#MREQ IN) The requested node for a header or detail was either not present or not updated.
(#MREQ OUT) There is no current detail occurrence to be updated. No action is taken
(#MREQ IN) No more modified detail occurrences require map in.
(#MREQ OUT) The maximum amount of storage defined for pageable maps at system generation has been reached. This and any ensuing map out detail occurrences are ignored.
(#MREQ IN) The scratch record containing the requested detail could not be accessed (internal error).
(#MREQ OUT) No detail occurrence, footer, or header fields exist to be mapped out by an #MREQ OUT,RESUME command.
(#MREQ OUT) The first screen page has been transmitted to the terminal.
(#MREQ IN) An #MREQ IN,COND=MPNS or an #MREQ OUT,COND=MPNS request was received when no map paging session is in progress. Either a #STRTPAG command was not received prior to this #MREQ IN command or a #ROLLBAK was issued so that the scratch area for the pageable map (area ID MPGPSCRA) is no longer available. Unless the COND=MPNS is specified for #MREQ, this condition abends the map paging task with the message DC242021.
(#MREQ OUT) A mapout command was received when no map paging session was in progress. Either the #STRTPAG command was not received prior to this mapout command or a #ROLLBAK was issued so that the scratch area for the pageable map (area ID MPGPSCRA) is no longer available. This return code is received only when COND=MPNS is specified for #MREQ; otherwise, this condition abends the map paging task.
(#MREQ OUT) Value returned to register 15 when a pageable map page is built before the page is actually displayed. Test for the new map paging return code after each #MREQ OUT DETAIL=YES statement. This allows you to detect when the last detail that can fit on a page has been placed on that page.
Upon successful completion of certain #MREQ requests, four registers contain the following information:
|
Copyright © 2014 CA.
All rights reserved.
|
|