With this statement:
A 03 CF03(03 ‘Exit’)
The only way CF03 is available is if Indicator 03 is on.
Remove the 03 (and others) from positions 8-9 of your specs
Actually, the use of the 03 in positions 8-9 may be what is desired in the program.
The reason the *in03 and *in12 do not work is the INDARA keyword in the DSPF.
When you use the INDARA keyword in the display file, you must use the INDDS keyword in the RPGLE program.
fdisplay cf e workstn indds(ind_display)
d ind_display ds 99
d ind_exit n overlay(ind_display:3)
d ind_cancel n overlay(ind_display:12)
c dou ind_exit or ind_cancel
INDARA does not require INDDS, we never use INDDS and always use INDARA in our DSPF and it works fine. INDARA just tell to compiler that all indicators used in a DPSF uses a separate area from input/output buffer. If it’s not used each indicator occupies one byte on buffers (depending if the indicator is conditional or result).
The error is probably due to what is answered in first place. Indicators 03 and 04 are conditioning the operation of keys. We don´t have enough code to confirm that…