CICS ADD SUBEVENT provides event management capabilities for programs and transactions. It enables programs to add subevents, manage event handling, and handle subevent operations in CICS environments.
CICS ADD SUBEVENT is a command that allows programs to add subevents to existing events, manage event hierarchies, and handle subevent operations. It provides event management capabilities, event tracking, and subevent handling for CICS applications.
1234567EXEC CICS ADD SUBEVENT EVENT(event-name) SUBEVENT(subevent-name) [FROM(data-area)] [LENGTH(data-length)] [RESP(response-code)] END-EXEC
Data-related subevents
Process-related subevents
User-related subevents
System-related subevents
12345678910111213141516171819202122232425262728293031323334IDENTIFICATION DIVISION. PROGRAM-ID. SUBEVENT01. DATA DIVISION. WORKING-STORAGE SECTION. 01 EVENT-NAME PIC X(8) VALUE 'MAINEVENT'. 01 SUBEVENT-NAME PIC X(8) VALUE 'SUBEVENT1'. 01 SUBEVENT-DATA PIC X(50) VALUE 'Sample subevent data'. 01 DATA-LENGTH PIC S9(8) COMP VALUE 50. 01 RESPONSE-CODE PIC S9(8) COMP. 01 SUBEVENT-ADDED PIC X(1) VALUE 'N'. PROCEDURE DIVISION. IF SUBEVENT-ADDED = 'N' DISPLAY 'Adding subevent: ' SUBEVENT-NAME EXEC CICS ADD SUBEVENT EVENT(EVENT-NAME) SUBEVENT(SUBEVENT-NAME) FROM(SUBEVENT-DATA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'Y' TO SUBEVENT-ADDED DISPLAY 'Subevent added successfully' ELSE DISPLAY 'Failed to add subevent' END-IF ELSE DISPLAY 'Subevent already added' END-IF EXEC CICS RETURN END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152IDENTIFICATION DIVISION. PROGRAM-ID. SUBEVENT02. DATA DIVISION. WORKING-STORAGE SECTION. 01 EVENT-NAME PIC X(8) VALUE 'MAINEVENT'. 01 SUBEVENT-NAME PIC X(8). 01 SUBEVENT-DATA PIC X(100). 01 DATA-LENGTH PIC S9(8) COMP VALUE 100. 01 RESPONSE-CODE PIC S9(8) COMP. 01 SUBEVENT-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-SUBEVENTS PIC S9(2) COMP VALUE 5. 01 SUBEVENT-LIST. 05 SUBEVENT-ITEM OCCURS 5 TIMES. 10 SUBEVENT-ID PIC X(8). 10 SUBEVENT-STATUS PIC X(1). PROCEDURE DIVISION. PERFORM ADD-MULTIPLE-SUBEVENTS EXEC CICS RETURN END-EXEC. ADD-MULTIPLE-SUBEVENTS. MOVE 'SUBEV001' TO SUBEVENT-ID(1) MOVE 'SUBEV002' TO SUBEVENT-ID(2) MOVE 'SUBEV003' TO SUBEVENT-ID(3) MOVE 'SUBEV004' TO SUBEVENT-ID(4) MOVE 'SUBEV005' TO SUBEVENT-ID(5) PERFORM VARYING SUBEVENT-COUNT FROM 1 BY 1 UNTIL SUBEVENT-COUNT > MAX-SUBEVENTS MOVE SUBEVENT-ID(SUBEVENT-COUNT) TO SUBEVENT-NAME MOVE 'Sample data for subevent' TO SUBEVENT-DATA PERFORM ADD-SINGLE-SUBEVENT IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'A' TO SUBEVENT-STATUS(SUBEVENT-COUNT) DISPLAY 'Added: ' SUBEVENT-NAME ELSE MOVE 'F' TO SUBEVENT-STATUS(SUBEVENT-COUNT) DISPLAY 'Failed: ' SUBEVENT-NAME END-IF END-PERFORM. ADD-SINGLE-SUBEVENT. EXEC CICS ADD SUBEVENT EVENT(EVENT-NAME) SUBEVENT(SUBEVENT-NAME) FROM(SUBEVENT-DATA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152IDENTIFICATION DIVISION. PROGRAM-ID. SUBEVENT03. DATA DIVISION. WORKING-STORAGE SECTION. 01 EVENT-NAME PIC X(8) VALUE 'TESTEVENT'. 01 SUBEVENT-NAME PIC X(8) VALUE 'TESTSUB'. 01 SUBEVENT-DATA PIC X(50) VALUE 'Test subevent data'. 01 DATA-LENGTH PIC S9(8) COMP VALUE 50. 01 RESPONSE-CODE PIC S9(8) COMP. 01 RETRY-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-RETRIES PIC S9(2) COMP VALUE 3. 01 ADDITION-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM ADD-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. ADD-WITH-ERROR-HANDLING. PERFORM ADD-SUBEVENT IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' adding subevent' PERFORM ADD-WITH-ERROR-HANDLING END-IF. ADD-SUBEVENT. EXEC CICS ADD SUBEVENT EVENT(EVENT-NAME) SUBEVENT(SUBEVENT-NAME) FROM(SUBEVENT-DATA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO ADDITION-SUCCESSFUL DISPLAY 'Subevent added successfully' WHEN DFHRESP(NOTFND) DISPLAY 'Event not found' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to add subevent' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid subevent request' WHEN DFHRESP(SUBEVENTERR) DISPLAY 'Subevent addition error' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE.
Think of CICS ADD SUBEVENT like adding stickers to a picture:
Create a program that adds a subevent to an existing event.
Write a program that manages multiple subevents and their relationships.
Implement comprehensive error handling for subevent addition failures.