You are on page 1of 2

IDENTIFICATION DIVISION.

PROGRAM-ID. READPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMP-REC.
05 EMP-CODE PIC X(05).
05 EMP-NAME PIC X(10).
05 EMP-ADDR PIC X(20).
05 EMP-SAL PIC X(06).
05 FILLER PIC X(39).

COPY MAPAC11.
COPY DFHAID.
COPY DFHBMSCA.

77 WS-COMM PIC X(5).


77 WS-LEN PIC S9(4) COMP.
77 WS-RESP PIC S9(8) COMP.

PROCEDURE DIVISION.
MAIN-PARA.
EXEC CICS HANDLE CONDITION
MAPFAIL(0001-MF-PARA)
ERROR(0002-GEN-ERR-PARA)
END-EXEC.
IF EIBCALEN = 0
MOVE LOW-VALUES TO EMPM1O
MOVE 'ENTER ECODE FOR READ .....' TO EMSGO
PERFORM 1000-SEND-MAP-PARA
ELSE
PERFORM 2000-RECEIVE-MAP-PARA
PERFORM 3000-KEY-CHK-PARA
END-IF.

1000-SEND-MAP-PARA.
MOVE DFHBMPRO TO ENAMEA.
MOVE DFHBMPRO TO EADDRA.
MOVE DFHBMPRO TO ESALA.
EXEC CICS SEND
MAP('EMPM1')
MAPSET('MAPAC11')
ERASE
END-EXEC.
MOVE 3 TO WS-LEN.
EXEC CICS RETURN
TRANSID(EIBTRNID)
COMMAREA(WS-COMM)
LENGTH(WS-LEN)
END-EXEC.

2000-RECEIVE-MAP-PARA.
EXEC CICS RECEIVE
MAP('EMPM1')
MAPSET('MAPAC11')
END-EXEC.

3000-KEY-CHK-PARA.
IF EIBAID = DFHPF10 OR DFHENTER
PERFORM 3100-READ-PARA
ELSE IF EIBAID = DFHPF3
MOVE 'READ PGM OVER PRESS <PAUSE> KEY ....' TO EMSGO
PERFORM 4000-SEND-MAP-EXIT-PARA
ELSE
MOVE 'INVALID KEY PRESS <PAUSE> KEY .....' TO EMSGO
PERFORM 4000-SEND-MAP-EXIT-PARA
END-IF
END-IF.

3100-READ-PARA.
MOVE 80 TO WS-LEN.
MOVE ECODEI TO EMP-CODE.
EXEC CICS READ
DATASET('VSA11')
INTO(EMP-REC)
LENGTH(WS-LEN)
RIDFLD(EMP-CODE)
RESP(WS-RESP)
END-EXEC.
IF WS-RESP = DFHRESP(NORMAL)
MOVE 'READ OVER....ENTER NEW ECODE FOR READ.....'
TO EMSGO
MOVE EMP-CODE TO ECODEO
MOVE EMP-NAME TO ENAMEO
MOVE EMP-ADDR TO EADDRO
MOVE EMP-SAL TO ESALO
PERFORM 1000-SEND-MAP-PARA
ELSE IF WS-RESP = DFHRESP(NOTFND)
MOVE 'ECODE NOT FOUND .... PRESS <PAUSE> KEY '
TO EMSGO
PERFORM 4000-SEND-MAP-EXIT-PARA
ELSE
MOVE 'SOME ERROR IN READ PRESS <PAUSE> KEY ....'
TO EMSGO
PERFORM 4000-SEND-MAP-EXIT-PARA
END-IF
END-IF.

0001-MF-PARA.
MOVE 'MAPFAIL ERROR PRESS <PAUSE> KEY... ' TO EMSGO.
PERFORM 4000-SEND-MAP-EXIT-PARA.

0002-GEN-ERR-PARA.
MOVE 'READ PGM HAS SOME ERR PRESS <PAUSE> KEY' TO EMSGO.
PERFORM 4000-SEND-MAP-EXIT-PARA.

4000-SEND-MAP-EXIT-PARA.
MOVE DFHBMPRO TO ECODEA.
MOVE DFHBMPRO TO ENAMEA.
MOVE DFHBMPRO TO EADDRA.
MOVE DFHBMPRO TO ESALA.
EXEC CICS SEND
MAP('EMPM1')
MAPSET('MAPAC11')
ERASE
END-EXEC.
EXEC CICS RETURN
END-EXEC.

You might also like