Mainframe Path Start learning free
CoreCobol

A pseudo-conversational CICS program skeleton

The template most CICS screens follow.

PAY1 transaction skeleton
       WORKING-STORAGE SECTION.
       01  WS-RESP           PIC S9(8) COMP.
       01  WS-COMMAREA.
           05  WS-STEP       PIC X(01) VALUE '1'.
           05  WS-ACCT-ID    PIC X(10) VALUE SPACES.
       COPY PAYMAP.
       LINKAGE SECTION.
       01  DFHCOMMAREA       PIC X(11).

       PROCEDURE DIVISION.
       0000-MAIN.
           IF EIBCALEN = ZERO
               PERFORM 1000-FIRST-TIME
           ELSE
               MOVE DFHCOMMAREA TO WS-COMMAREA
               EVALUATE EIBAID
                   WHEN DFHPF3  PERFORM 8000-EXIT
                   WHEN DFHCLEAR PERFORM 1000-FIRST-TIME
                   WHEN OTHER   PERFORM 2000-HANDLE-INPUT
               END-EVALUATE
           END-IF
           PERFORM 9000-RETURN.

       2000-HANDLE-INPUT.
           EXEC CICS RECEIVE MAP('PAYM01') MAPSET('PAYMAP')
                RESP(WS-RESP) END-EXEC
           IF ACCTNOL = ZERO
               MOVE 'ACCOUNT NUMBER IS REQUIRED' TO MSGO
               MOVE -1 TO ACCTNOL
               PERFORM 8100-SEND-DATAONLY
           ELSE
               MOVE ACCTNOI TO WS-ACCT-ID
               PERFORM 3000-READ-ACCOUNT
           END-IF.

       3000-READ-ACCOUNT.
           EXEC CICS READ FILE('ACCTFILE') INTO(WS-ACCT-REC)
                RIDFLD(WS-ACCT-ID) RESP(WS-RESP) END-EXEC
           EVALUATE WS-RESP
               WHEN DFHRESP(NORMAL)  PERFORM 3100-SHOW
               WHEN DFHRESP(NOTFND)
                   MOVE 'ACCOUNT NOT FOUND' TO MSGO
                   MOVE -1 TO ACCTNOL
                   PERFORM 8100-SEND-DATAONLY
               WHEN OTHER PERFORM 9900-ERROR
           END-EVALUATE.

       8100-SEND-DATAONLY.
           EXEC CICS SEND MAP('PAYM01') MAPSET('PAYMAP')
                DATAONLY CURSOR FREEKB END-EXEC.

       9000-RETURN.
           EXEC CICS RETURN TRANSID('PAY1')
                COMMAREA(WS-COMMAREA)
                LENGTH(LENGTH OF WS-COMMAREA) END-EXEC.

Stuck on something else?
Ask the community or search the full course.

Ask a question