Professional Documents
Culture Documents
Syntax:
CALL (‘subprogram-name | data-area)
[USING identifier-1 …]
Example:
MOVE COMMUNICATION-AREA TO
DFHCOMMAREA.
CALL ‘GETINV’ USING DFHEIBLK,
DFHCOMMAREA, INV-INVOICE-NUMBER.
Syntax:
EXEC CICS
ABEND [ABCODE (abend-code)]
[NODUMP]
END-EXEC
• READ command
• WRITE command
• REWRITE command
• DELETE command
• UNLOCK command
Example:
EXEC CICS
READ FILE (‘CUSTMAS’)
INTO (CUSTOMER-MASTER-RECORD)
RIDFLD (CM-CUSTOMER-NUMBER)
UPDATE
RESP(RESPONSE-CODE)
END-EXEC
Example:
EXEC CICS
WRITE FILE (‘CUSTMAS’)
INTO (CUSTOMER-MASTER-RECORD)
RIDFLD (CM-CUSTOMER-NUMBER)
RESP(RESPONSE-CODE)
END-EXEC
Example:
EXEC CICS
REWRITE FILE (‘CUSTMAS’)
FROM (CUSTOMER-MASTER-RECORD)
RESP(RESPONSE-CODE)
END-EXEC
Example:
EXEC CICS
UNLOCK FILE (‘CUSTMAS’)
END-EXEC
Version 2 SPI Confidential 19
A04f Potential problems when updating file
Example:
EXEC CICS
READ FILE (‘CUSTMAS’)
INTO (CUSTOMER-MASTER-RECORD)
RIDFLD (CM-CUSTOMER-NUMBER)
RESP(RESPONSE-CODE)
END-EXEC
EVALUATE RESPONSE-CODE
WHEN DFHRESP(NORMAL)
MOVE input-fields TO display-area
WHEN DFHRESP(NOTFND)
MOVE “Customer does not exist” TO message-display-area
WHEN OTHER
EXEC CICS
ABEND
END-EXEC
END-EVALUATE
Syntax: Example:
Add record to TSQ
EXEC CICS EXEC CICS
WRITEQ TS {QUEUE | QNAME} (queue-name) WRITEQ TS QUEUE (TS-QUEUE-NAME)
FROM (data-name) FROM (TS-QUEUE-
[ITEM (data-name) RECORD)
REWRITE] END-EXEC
[NUMITEMS(data-name)]
[MAIN | AUXILIARY]
END-EXEC
Update an existing record in TSQ
EXEC CICS
WRITEQ TS QUEUE (TS-QUEUE-NAME)
FROM (TS-QUEUE-
RECORD)
ITEM (TS-ITEM-
NUMBER)
REWRITE
RESP (RESPONSE-CODE
END-EXEC
Version 2 SPI Confidential 40
C03
READQ TS command
Syntax: Example:
Read a record from TSQ randomly
EXEC CICS EXEC CICS
READQ TS { QUEUE | QNAME} (queue-name) READQ TS QUEUE (TS-QUEUE-NAME)
INTO (data-name) INTO (TS-QUEUE-
[ ITEM (data-name) | RECORD)
literal | ITEM (TS-ITEM-NUMBER)
NEXT ] RESP (RESPONSE-CODE)
[ NUMITEMS (data-name) ] END-EXEC
END-EXEC
Syntax: Example:
Delete a TSQ
EXEC CICS EXEC CICS
DELETEQ TS { QUEUE | QNAME} (queue-name) DELETEQ TS
END-EXEC QUEUE (TS-QUEUE-
NAME)
RESP (RESPONSE-
CODE
END-EXEC
EXEC CICS
SEND MAP (‘MNTMAP1’)
MAPSET(‘MNTSET1’)
FROM(MNTMAP1O)
CURSOR
END-EXEC
Example:
WORKING-STORAGE SECTION.
01 TERMINATION-MESSAGE PIC X(14) VALUE “Session ended”.
.
.
PROCEDURE DIVISION.
.
.
EXEC CICS
SEND TEXT FROM (TERMINATION-MESSAGE)
ERASE
FREEKB
END-EXEC
Syntax: Sample:
LINKAGE SECTION.
EXEC CICS
*
ADDRESS [CWA (pointer)]
01 DFHCOMMAREA PIC X.
[TWA (pointer)] *
[TCTUA (pointer)] 01 COMMON-WORK-AREA.
END-EXEC 05 CWA-CURRENT-DATE PIC X(8).
05 CWA-COMPANY-NAME PIC X(30).
*
PROCEDURE DIVISION.
*
.
.
EXEC CICS
ADDRESS CWA (ADDRESS OF COMMON-WORK-
AREA)
END-EXEC.
MOVE CWA-COMPANY-NAME TO COMPO.
SYNTAX: Sample:
WORKING-STORAGE SECTION.
EXEC CICS
.
ASKTIME [ABSTIME (data-name)
END-EXEC .
01 DATE-AND-TIME-FIELDS.
05 ABSOLUTE-TIME PIC S9(15) COMP-3.
.
.
PROCEDURE DIVISION.
.
.
EXEC CICS
ASKTIME ABSTIME (ABSOLUTE-
TIME))
END-EXEC.
.
.
Samples
Format default date & time
EXEC CICS
FORMATTIME ABSTIME (ABSOLUTE-TIME)
DATE(WS-DATE)
DATESEP
TIME(WS-TIME)
TIMESEP
END-EXEC
• STARTBR
• READNEXT & READPREV
• ENDBR
• RESETBR
Syntax of STARTBR
EXEC CICS
STARTBR FILE(filename)
RIDFLD(data-name)
[RRN | RBA]
[GTEQ | EQUAL]
[GENERIC]
[KEYLENGTH (data-name) | literal]
END-EXEC
Sample of STARTBR
EXEC CICS
STARTBR FILE(‘CUSTMAS’)
RIDFLD(CM-CUSTOMER-NUMBER)
RESP(RESPONSE-CODE)
END-EXEC
EXEC CICS
[READNEXT | READPREV] FILE(filename)
INTO(data-name)
RIDFLD(data-name)
[RRN | RBA]
[KEYLENGTH (data-name) | literal]
END-EXEC
EXEC CICS
ENDBR FILE(filename)
END-EXEC
Sample
EXEC CICS
ENDBR FILE(‘INVOICE’)
END-EXEC
Syntax of RESETBR
EXEC CICS
RESETBR FILE(filename)
RIDFLD(data-name)
[RRN | RBA]
[GTEQ | EQUAL]
[GENERIC]
[KEYLENGTH (data-name | literal)]
END-EXEC
Sample
EXEC CICS
RESETBR FILE(‘CUSTMAS’)
RIDFLD(CM-CUSTOMER-NUMBER)
EQUAL
RESP(RESPONSE-CODE)
END-EXEC
Version 2 SPI Confidential 78
E06 Processing files sequentially
Exceptional conditions
Sample
EXEC CICS
RETRIEVE INTO(ITEM-NUMBER)
RESP(RESPONSE-CODE)
END-EXEC
Ref:
EXEC CICS
START TRANSID(‘LST1’)
FROM(ITEM-NUMBER)
END-EXEC
INTERVAL : A 7 digit packed decimal (PIC S9(7) COMP-3) specifies the duration for delay
coded in the form of HHMMSS
TIME : A 7 digit packed decimal (PIC S9(7) COMP-3) specifies the time of the day when
the delay will end coded in the form of HHMMSS
FOR : Specifies that the HOURS,MINUTES and SECONDS options indicate a duration for
the delay.
UNTIL: Specifies that the HOURS,MINUTES and SECONDS options indicate a time of the
day when th DELAY will end.
HOURS : Specifies PIC S9(8)COMP in the range of 0 to 99
MINUTES: Specifies PIC S9(8)COMP in the range of 0 to 59
SECONDS: Specifies PIC S9(8)COMP in the range of 0 to 99
REQID : Specifies a 1-8 character request indenitifier that is associated with the DELAY
command.
The DELAY command can be used in one more possible area, i.e
when the program needs to retry an operation after a failure
allowing time for the operator to correct the problem that caused
the failure. In this case the task can be delayed for some time say
15 second before the retrying the operation. But make sure to
limit the number of retries so that the task doesn't wait
indefinitely.
If the REQID option is used, then make sure to pass the request identifier
value to the other programs so that they can be used to CANCEL the
DELAY request.
Syntax
EXEC CICS
SUSPEND
END-EXEC
Samples
EXEC CICS
ENQ RESOURCE(DSTINATION-ID)
END-EXEC
EXEC CICS
DEQ RESOURCE(DSTINATION-ID)
END-EXEC
Version 2 SPI Confidential 92
F09 Storage Control
GETMAIN
Syntax
EXEC CICS
GETMAIN SET(pointer)
FLENGTH(data-name | literal) [BELOW]
[INITIMG(data-name)]
Samples
EXEC CICS
FREEMAIN DATA(PRODUCT-RECORD)
END-EXEC
EXEC CICS
FREEMAIN DATAPOINTER(ADDRESS OF PRODUCT-RECORD)
END-EXEC
Version 2 SPI Confidential 94
G. Legacy coding conventions