CICS CONVERSE (APPC) provides conversational communication capabilities for APPC sessions. It enables programs to engage in conversational communication, manage APPC conversations, and handle bidirectional communication in CICS environments.
CICS CONVERSE (APPC) is a command that allows programs to engage in conversational communication over APPC sessions. It provides bidirectional communication capabilities, conversation management, and interactive communication for CICS applications.
12345678EXEC CICS CONVERSE CONVID(conversation-id) FROM(data-area) LENGTH(data-length) [INTO(response-area)] [TOLENGTH(response-length)] [RESP(response-code)] END-EXEC
Send data and receive response in one operation
Send data without expecting immediate response
Receive data without sending
Manage conversation state and flow
123456789101112131415161718192021222324252627282930IDENTIFICATION DIVISION. PROGRAM-ID. CONVERSE01. DATA DIVISION. WORKING-STORAGE SECTION. 01 CONVERSATION-ID PIC X(8) VALUE 'CONV001'. 01 SEND-DATA PIC X(100) VALUE 'Hello from CICS'. 01 SEND-LENGTH PIC S9(8) COMP VALUE 100. 01 RECEIVE-DATA PIC X(100). 01 RECEIVE-LENGTH PIC S9(8) COMP. 01 RESPONSE-CODE PIC S9(8) COMP. PROCEDURE DIVISION. EXEC CICS CONVERSE CONVID(CONVERSATION-ID) FROM(SEND-DATA) LENGTH(SEND-LENGTH) INTO(RECEIVE-DATA) TOLENGTH(RECEIVE-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Conversational communication successful' DISPLAY 'Sent: ' SEND-DATA(1:SEND-LENGTH) DISPLAY 'Received: ' RECEIVE-DATA(1:RECEIVE-LENGTH) ELSE DISPLAY 'Failed to converse' END-IF EXEC CICS RETURN END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637IDENTIFICATION DIVISION. PROGRAM-ID. CONVERSE02. DATA DIVISION. WORKING-STORAGE SECTION. 01 CONVERSATION-ID PIC X(8) VALUE 'CONV002'. 01 SEND-DATA PIC X(200) VALUE 'Request for data processing'. 01 SEND-LENGTH PIC S9(8) COMP VALUE 200. 01 RECEIVE-DATA PIC X(500). 01 RECEIVE-LENGTH PIC S9(8) COMP. 01 RESPONSE-CODE PIC S9(8) COMP. 01 CONVERSATION-COUNT PIC S9(4) COMP VALUE 0. 01 MAX-CONVERSATIONS PIC S9(4) COMP VALUE 5. PROCEDURE DIVISION. PERFORM CONVERSATIONAL-LOOP UNTIL CONVERSATION-COUNT >= MAX-CONVERSATIONS EXEC CICS RETURN END-EXEC. CONVERSATIONAL-LOOP. ADD 1 TO CONVERSATION-COUNT EXEC CICS CONVERSE CONVID(CONVERSATION-ID) FROM(SEND-DATA) LENGTH(SEND-LENGTH) INTO(RECEIVE-DATA) TOLENGTH(RECEIVE-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Conversation ' CONVERSATION-COUNT ' successful' DISPLAY 'Response: ' RECEIVE-DATA(1:RECEIVE-LENGTH) ELSE DISPLAY 'Conversation ' CONVERSATION-COUNT ' failed' END-IF.
12345678910111213141516171819202122232425262728293031323334353637IDENTIFICATION DIVISION. PROGRAM-ID. CONVERSE03. DATA DIVISION. WORKING-STORAGE SECTION. 01 CONVERSATION-ID PIC X(8) VALUE 'CONV003'. 01 SEND-DATA PIC X(100) VALUE 'Test message'. 01 SEND-LENGTH PIC S9(8) COMP VALUE 100. 01 RECEIVE-DATA PIC X(100). 01 RECEIVE-LENGTH PIC S9(8) COMP. 01 RESPONSE-CODE PIC S9(8) COMP. PROCEDURE DIVISION. EXEC CICS CONVERSE CONVID(CONVERSATION-ID) FROM(SEND-DATA) LENGTH(SEND-LENGTH) INTO(RECEIVE-DATA) TOLENGTH(RECEIVE-LENGTH) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) DISPLAY 'Conversational communication successful' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid conversation request' WHEN DFHRESP(LENGERR) DISPLAY 'Length error in conversation' WHEN DFHRESP(APPCERR) DISPLAY 'APPC-specific error occurred' WHEN DFHRESP(CONVERR) DISPLAY 'Conversation error occurred' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE EXEC CICS RETURN END-EXEC.
Think of CICS CONVERSE (APPC) like having a conversation with a friend:
Create a program that engages in basic conversational communication using CONVERSE.
Write a program that manages multi-turn conversations with proper state management.
Implement comprehensive error handling for conversational communication failures.