A RETURN command that sets up the next execution of a program
DFHCOMMAREA in LS
COMMUNICATION-AREA in WS
MOVE DFHCOMMAREA TO COMMUNICATION-AREA
EXEC CICS
RETURN TRANSID('INQ1')
COMMAREA(COMMUNICATION-AREA)
END-EXEC.
Receive INQ map
EXEC CICS
RECEIVE MAP('INQMAP1')
MAPSET('INQSET1')
INTO(INQMAP1I)
END-EXEC.
INSPECT INQMAPI
REPLACING ALL '_' BY SPACE.
Read CUSTMAS INTO CUST-MAS-REC
EXEC CICS
READ FILE('CUSTMAS')
INTO(CUST-MAS-REC)
RIDFLD(CUSTNOI)
RESP(RESPONSE-CODE)
END-EXEC.
ABEND PROGRAM
EXEC CICS
ABEND [NODUMP]
END-EXEC
The syntax of the SEND MAP command
EXEC CICS
SEND MAP(map-name)
[MAPSET(mapset-name)]
[FROM(data-name)]
[MAPONLY | DATAONLY]
[ERASE]
[ALARM]
[FREEKB]
[CURSOR]
END-EXEC
An If statement that tests the response code after
a read operation
IF RESPONSE-CODE = DFHRESP(NORMAL)
OR NOTFND
command that invokes a program named INVMENU
EXEC CICS
XCTL PROGRAM('INVMENU')
END-EXEC.
Parts of event/response chart
Event, Context, Response, New context
free the keyboard while sending map
the JCL parameter that appears at the end of the job to point to your program name
//LKED.SYSIN DD *
NAME MENUP3C(R)
to have CICS point to the newest version of your program,
EMT SET PROG(MENUP3c) NEW
to remove the underscores
INSPECT MENUI
REPLACING ALL '_' BY SPACE.
f your file is not open, you will
I need to type: CEMT SET FI(CSTMST3c) OPE
can end a CICS application using
RETURN
XCTL
LINK
ABEND
when first pass
EVALUATE TRUE
WHEN EIBCALEN = ZERO OR EIBAID = DFHCLEAR
MOVE LOW-VALUE TO INQUIRYO
MOVE 'Type a customer bid number. Then press ENTER.'
TO INSTRO
MOVE '_______' TO CUSTNOO
SET SEND-ERASE TO TRUE
PERFORM 1400-SEND-CUSTOMER-MAP
SET GET-CUST TO TRUE
when PA1
WHEN EIBAID = DFHPA1 OR DFHPA2 OR DFHPA3
CONTINUE
on enter
WHEN EIBAID = DFHENTER
IF GET-CUST
PERFORM 1000-DISPLAY-CUSTOMER-DATA
ELSE
PERFORM 2000-CLEAR-CUSTOMER-DATA
END-IF
on F3 transfers control to menu
WHEN EIBAID = DFHPF3 OR DFHPF12
EXEC CICS
XCTL PROGRAM ('MENUP3C')
END-EXEC
on other keys
WHEN OTHER
MOVE LOW-VALUE TO INQUIRYO
MOVE 'Invalid key pressed.' TO MESSAGEO
SET SEND-DATAONLY-ALARM TO TRUE
PERFORM 1400-SEND-CUSTOMER-MAP
END-EVALUATE
PERFORM 1100-RECEIVE-CUSTOMER-MAP
EXEC CICS
RECEIVE MAP('INQUIRY')
MAPSET('INQM3C')
INTO(INQUIRYI)
END-EXEC
INSPECT INQUIRYI
REPLACING ALL '_' BY SPACE.
1200-EDIT-CUSTOMER-DATA.
EVALUATE TRUE
WHEN CUSTNOI = SPACES OR CUSTNOL = 0
PERFORM 1240-CUSTNO-ERROR
MOVE '_______' TO CUSTNOO
MOVE 'You entered nothing or spaces.' TO MESSAGEO
WHEN CUSTNOL > 0 AND CUSTNOL < 8
CONTINUE
WHEN OTHER
PERFORM 1240-CUSTNO-ERROR
MOVE '1200 WHEN OTHER.' TO MESSAGEO
END-EVALUATE.
1240-CUSTNO-ERROR.
MOVE 'N' TO VALID-DATA-SW
MOVE 'Type a customer bid number. Then press ENTER.'
TO INSTRO
MOVE ATTR-PINK TO CUSTNOC
MOVE ATTR-NEUTRAL TO INSTRC
MOVE ATTR-UNPROT-NUM-BRT TO CUSTNOA
MOVE -1 TO CUSTNOL.
Read customer record
EXEC CICS
READ FILE('CSTMST3C')
INTO(BIDDER-MASTER-RECORD)
RIDFLD(CUSTNOI)
RESP(RESPONSE-CODE)
END-EXEC
check read conditions
EVALUATE TRUE
WHEN RESPONSE-CODE = DFHRESP(NORMAL)
MOVE BM-CUSTOMER-NUMBER TO CUSTNOO
MOVE BM-FIRST-NAME TO FIRSTNAMEO
MOVE BM-LAST-NAME TO LASTNAMEO
MOVE SPACE TO MESSAGEO
MOVE 'Press Enter to continue.' TO INSTRO
SET CLEAR-CUST TO TRUE
WHEN RESPONSE-CODE = DFHRESP(NOTFND)
PERFORM 1240-CUSTNO-ERROR
MOVE 'That customer does not exist.' TO MESSAGEO
WHEN RESPONSE-CODE = DFHRESP(NOTOPEN)
MOVE 'N' TO VALID-DATA-SW
MOVE '_______' TO CUSTNOO
MOVE SPACE TO INQUIRYO
MOVE 'The file is not open.' TO MESSAGEO
WHEN OTHER
EXEC CICS
ABEND
END-EXEC
END-EVALUATE.
1400-SEND-CUSTOMER-MAP.
opening
MOVE 'IN3C' TO TRANIDO
MOVE -1 TO CUSTNOL
EVALUATE TRUE
WHEN SEND-ERASE
WHEN SEND-ERASE
EXEC CICS
SEND MAP('INQUIRY')
MAPSET('INQM3C')
FROM(INQUIRYO)
CURSOR
ERASE
END-EXEC
WHEN SEND-DATAONLY
EXEC CICS
SEND MAP('INQUIRY')
MAPSET('INQM3C')
FROM(INQUIRYO)
CURSOR
DATAONLY
END-EXEC
send other
WHEN OTHER
EXEC CICS
SEND MAP('INQUIRY')
MAPSET('INQM3C')
FROM(INQUIRYO)
CURSOR
DATAONLY
ALARM
FREEKB
END-EXEC
1. What SEND MAP option do you code to send just the data in the symbolic map?
dataonly
2. What SEND MAP option do you code to send just the physical map?
MAPONLY
3. What option do you code on a READ command to indicate you intend to rewrite or delete the record?
UPDATE
4. To find out whether an exceptional condition occurred during the execution of a CICS command, you check the .
set RESP(RESPONSE-CODE) in EXEC CICS
RESPONSE-CODE
= DFHRESP(NORMAL)
=DFHRESP(NOTFND)
=DFHRESP(NOTOPEN)
=DFHRESP(DUPREC)
5. What exceptional condition occurs when you attempt to write a file record with a key that’s already in the file?
RESPONSE-CODE=DFHRESP(DUPREC)
6. What exceptional condition is raised when you try to read a record that doesn’t exist?
set RESP(RESPONSE-CODE) in EXEC CICS
RESPONSE-CODE
=DFHRESP(NOTFND)
7. Context information that’s identified in the event/response chart is usually maintained across program sessions by storing it in the ____________________________.
01 COMMUNICATION-AREA.
05 CONTEXT-FLAG PIC X(01).
88 GET-CUST VALUE '1'.
88 CLEAR-CUST VALUE '2'.
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(01).
PROCEDURE DIVISION.
0000-PROCESS-CUSTOMER-INQUIRY.
MOVE DFHCOMMAREA TO COMMUNICATION-AREA
...
EXEC CICS
RETURN COMMAREA(COMMUNICATION-AREA)
TRANSID('IN3C')
END-EXEC.
8. Which service transaction should you issue to update the Processing Program Table so it points to a new version of a program? _____________
CEMT SET PROG(INQP3C) NEW
9. The XCTL command transfers control to a program at the next _________ logical level
same
EXEC CICS
XCTL PROGRAM(program-name)
[COMMAREA(data-name)]
END-EXEC
EXEC CICS
XCTL PROGRAM(PROGRAM-NAME(ACTION-SUB))
RESP(RESPONSE-CODE)
END-EXEC
10. The LINK command transfers control to a program at the next _________ logical level
lower
EXEC CICS
LINK
PROGRAM(program-name)
[COMMAREA(ws-name)]
[DATALENGTH(data-name|literal]
END-EXEC
11. The RETURN command transfers control to a program at the next ___________ logical level
higher
EXEC CICS
RETURN
[TRANSID(trans-id)]
[COMMAREA(data-name)]
END-EXEC
12. Which options do you code on a RETURN command if you wish to end the program?
no option
EXEC CICS
RETURN
END-EXEC
13. Which options do you code on a RETURN command if you wish to end the program pseudoconversationally?
EXEC CICS
RETURN
TRANID(trans-id)
COMMAREA(data-name)
END-EXEC
14. When should you code the ERASE option on a SEND MAP command?
Causes the contents of the screen to be erased before data is displayed.
how do you check for first run
The EIBCALEN field contains the length of the data passed to the program through its communication area (DFHCOMMAREA)
EIBCALEN = 0
15. The communication area commonly includes
Flags and 88 levels
16. Which service transaction do you use to close or open a file?
CEMT SET FI(CSTMST3c) OPE
XCTL VS RETURN
XCTL PROGRAM ('MENUP3C')
RETURN TRANID(trans-id)
syntax to READ
EXEC CICS
READ FILE(fileName) INTO(dataName)
RIDFLD(key)
[UPDATE]
RESP(RESP-CODE)
END-EXEC
syntax to WRITE
EXEC CICS
WRITE FILE('fileName')
FROM(recName)
RIDFLD(key)
RESP(resp-code)
END-EXEC
syntax to REWRITE
EXEC CICS
REWRITE FILE('file')
FROM(recName)
RESP(resp-code)
END-EXEC
must do READ before
syntax for delete
first read with update
EXEC CICS
DELETE FILE('fileName')
RESP(resp-code)
END-EXEC
PROBLEMS WHEN UPDATING FILES
One program changes or deletes a record while another is trying to update it.