CICS INVOKE SERVICE provides service invocation capabilities for programs and transactions. It enables programs to invoke services, manage service execution, and handle service processing in CICS environments.
CICS INVOKE SERVICE is a command that allows programs to invoke services in the system. It provides service invocation capabilities, service execution management, and service processing for CICS applications.
123456EXEC CICS INVOKE SERVICE SERVICE(service-name) [PARAMETER(parameter-data)] [LENGTH(parameter-length)] [RESP(response-code)] END-EXEC
Business service types
System service types
Communication service types
Processing service types
12345678910111213141516171819202122232425262728IDENTIFICATION DIVISION. PROGRAM-ID. INVSRV01. DATA DIVISION. WORKING-STORAGE SECTION. 01 SERVICE-NAME PIC X(8) VALUE 'ORDERSRV'. 01 PARAMETER-DATA PIC X(100) VALUE 'ORDER123'. 01 PARAMETER-LENGTH PIC S9(4) COMP VALUE 7. 01 RESPONSE-CODE PIC S9(8) COMP. PROCEDURE DIVISION. DISPLAY 'Invoking service' DISPLAY 'Service: ' SERVICE-NAME DISPLAY 'Parameter: ' PARAMETER-DATA EXEC CICS INVOKE SERVICE SERVICE(SERVICE-NAME) PARAMETER(PARAMETER-DATA) LENGTH(PARAMETER-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Service invoked successfully' ELSE DISPLAY 'Service invocation failed' END-IF EXEC CICS RETURN END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960IDENTIFICATION DIVISION. PROGRAM-ID. INVSRV02. DATA DIVISION. WORKING-STORAGE SECTION. 01 SERVICE-NAME PIC X(8). 01 PARAMETER-DATA PIC X(100). 01 PARAMETER-LENGTH PIC S9(4) COMP VALUE 100. 01 RESPONSE-CODE PIC S9(8) COMP. 01 INVOKE-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-INVOKES PIC S9(2) COMP VALUE 3. 01 SRV-STATUS PIC X(1). 01 SERVICE-LIST. 05 SRV-ITEM OCCURS 3 TIMES. 10 SRV-ID PIC X(8). 10 SRV-TYPE PIC X(8). 10 SRV-PARAMETER PIC X(50). 10 SRV-STATUS PIC X(1). PROCEDURE DIVISION. PERFORM INITIALIZE-SERVICES PERFORM INVOKE-MULTIPLE-SERVICES EXEC CICS RETURN END-EXEC. INITIALIZE-SERVICES. MOVE 'ORDERSRV' TO SRV-ID(1) MOVE 'BUSINESS' TO SRV-TYPE(1) MOVE 'ORDER123' TO SRV-PARAMETER(1) MOVE 'INVENTORY' TO SRV-ID(2) MOVE 'BUSINESS' TO SRV-TYPE(2) MOVE 'INV001' TO SRV-PARAMETER(2) MOVE 'REPORTSRV' TO SRV-ID(3) MOVE 'SYSTEM' TO SRV-TYPE(3) MOVE 'RPT001' TO SRV-PARAMETER(3). INVOKE-MULTIPLE-SERVICES. PERFORM VARYING INVOKE-COUNT FROM 1 BY 1 UNTIL INVOKE-COUNT > MAX-INVOKES MOVE SRV-ID(INVOKE-COUNT) TO SERVICE-NAME MOVE SRV-PARAMETER(INVOKE-COUNT) TO PARAMETER-DATA MOVE 50 TO PARAMETER-LENGTH PERFORM INVOKE-SINGLE-SERVICE IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'I' TO SRV-STATUS(INVOKE-COUNT) DISPLAY 'Service ' INVOKE-COUNT ' invoked successfully' ELSE MOVE 'F' TO SRV-STATUS(INVOKE-COUNT) DISPLAY 'Service ' INVOKE-COUNT ' invocation failed' END-IF END-PERFORM. INVOKE-SINGLE-SERVICE. EXEC CICS INVOKE SERVICE SERVICE(SERVICE-NAME) PARAMETER(PARAMETER-DATA) LENGTH(PARAMETER-LENGTH) RESP(RESPONSE-CODE) END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152IDENTIFICATION DIVISION. PROGRAM-ID. INVSRV03. DATA DIVISION. WORKING-STORAGE SECTION. 01 SERVICE-NAME PIC X(8) VALUE 'ORDERSRV'. 01 PARAMETER-DATA PIC X(100) VALUE 'ORDER123'. 01 PARAMETER-LENGTH PIC S9(4) COMP VALUE 7. 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 SRV-INVOKE-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM INVOKE-SERVICE-WITH-RETRY EXEC CICS RETURN END-EXEC. INVOKE-SERVICE-WITH-RETRY. PERFORM INVOKE-SERVICE IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' service invocation' PERFORM INVOKE-SERVICE-WITH-RETRY END-IF. INVOKE-SERVICE. EXEC CICS INVOKE SERVICE SERVICE(SERVICE-NAME) PARAMETER(PARAMETER-DATA) LENGTH(PARAMETER-LENGTH) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO SRV-INVOKE-SUCCESSFUL DISPLAY 'Service invocation successful' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to invoke service' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid service invocation request' WHEN DFHRESP(SERVICEERR) DISPLAY 'Service invocation error' WHEN DFHRESP(SERVICENOTFOUND) DISPLAY 'Service not found' WHEN DFHRESP(SERVICEINUSE) DISPLAY 'Service is in use' WHEN OTHER DISPLAY 'Unexpected service invocation error' END-EVALUATE.
Think of CICS INVOKE SERVICE like asking for help:
Create a program that invokes a basic service.
Write a program that manages multiple service invocations.
Implement comprehensive error handling for service invocation failures.