You are on page 1of 2

IDENTIFICATION DIVISION.

PROGRAM-ID. WRITEPGM.
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.

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 EMP DATA FOR WRITE .....' TO EMSGO
PERFORM 1000-SEND-MAP-PARA
ELSE
PERFORM 2000-RECEIVE-MAP-PARA
PERFORM 3000-KEY-CHK-PARA
END-IF.

1000-SEND-MAP-PARA.
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-WRITE-PARA
ELSE IF EIBAID = DFHPF3
MOVE 'WRT 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-WRITE-PARA.
MOVE 80 TO WS-LEN.
MOVE ECODEI TO EMP-CODE.
MOVE ENAMEI TO EMP-NAME.
MOVE EADDRI TO EMP-ADDR.
MOVE ESALI TO EMP-SAL.
EXEC CICS WRITE
DATASET('VSA11')
FROM(EMP-REC)
LENGTH(WS-LEN)
RIDFLD(EMP-CODE)
RESP(WS-RESP)
END-EXEC.
IF WS-RESP = DFHRESP(NORMAL)
MOVE 'WRITE OVER....ENTER NEW EMP DATA....' TO EMSGO
PERFORM 1000-SEND-MAP-PARA
ELSE IF WS-RESP = DFHRESP(DUPREC)
MOVE 'DUPLICATE KEY IN WRITE PRESS <PAUSE> KEY '
TO EMSGO
PERFORM 4000-SEND-MAP-EXIT-PARA
ELSE
MOVE 'SOME ERROR IN WRITE 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 'WRT PGM HAS SOME ERR PRESS <PAUSE> KEY..' TO EMSGO.
PERFORM 4000-SEND-MAP-EXIT-PARA.

4000-SEND-MAP-EXIT-PARA.
EXEC CICS SEND
MAP('EMPM1')
MAPSET('MAPAC11')
ERASE
END-EXEC.
EXEC CICS RETURN
END-EXEC.

You might also like