What it means
RESP 36 means the input from the 3270 screen had zero length or no field data that BMS could map. The input map is not cleared to nulls, so its fields hold whatever was there before.
If the program does not test RESP for it, CICS ends the task abnormally. A HANDLE AID that is active for the key pressed takes priority over HANDLE CONDITION, so test RESP to be sure.
Typical causes
- The user pressed CLEAR or a PA key.
- The user pressed Enter or a PF key without changing any field, no field was sent with the modified data tag set, and the cursor was not in a named map field (or the map does not ask for the cursor location).
- RECEIVE MAP was issued with no earlier SEND MAP of that map, for example on the first entry to a pseudo-conversational program.
How to fix it
- Test RESP after RECEIVE MAP and, on MAPFAIL, send the map again with a short hint instead of ending.
- Check EIBAID first and handle CLEAR and PA keys before issuing RECEIVE MAP.
- Use EIBCALEN or a COMMAREA flag to tell first entry from a reply, and send the map on first entry.
- If the program needs fields even when unchanged, send them with the modified data tag set (FSET).
Example
Illustrative only; names and values are invented.
EXEC CICS RECEIVE MAP('ORDMAP') MAPSET('ORDSET') INTO(ORDMAPI)
RESP(WS-RESP) END-EXEC
IF WS-RESP = DFHRESP(MAPFAIL)
PERFORM 1000-SEND-EMPTY-MAP
END-IF