CICS ADF (Application Development Framework) provides application development capabilities for programs and transactions. It enables programs to develop applications, manage framework components, and handle ADF operations in CICS environments.
CICS ADF (Application Development Framework) is a framework that allows programs to develop applications in the system. It provides application development capabilities, framework management, and ADF operations for CICS applications.
123456EXEC CICS ADF [APPLICATION(app-name)] [COMPONENT(component-name)] [ACTION(action-type)] [RESP(response-code)] END-EXEC
Application component types
Framework component types
Development component types
Runtime component types
1234567891011121314151617181920212223242526272829IDENTIFICATION DIVISION. PROGRAM-ID. ADF01. DATA DIVISION. WORKING-STORAGE SECTION. 01 APP-NAME PIC X(8) VALUE 'MYAPP01'. 01 COMPONENT-NAME PIC X(8) VALUE 'CORE'. 01 ACTION-TYPE PIC X(8) VALUE 'CREATE'. 01 RESPONSE-CODE PIC S9(8) COMP. PROCEDURE DIVISION. DISPLAY 'Developing ADF application' DISPLAY 'Application: ' APP-NAME DISPLAY 'Component: ' COMPONENT-NAME DISPLAY 'Action: ' ACTION-TYPE EXEC CICS ADF APPLICATION(APP-NAME) COMPONENT(COMPONENT-NAME) ACTION(ACTION-TYPE) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'ADF application developed successfully' ELSE DISPLAY 'ADF application development failed' END-IF EXEC CICS RETURN END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263IDENTIFICATION DIVISION. PROGRAM-ID. ADF02. DATA DIVISION. WORKING-STORAGE SECTION. 01 APP-NAME PIC X(8). 01 COMPONENT-NAME PIC X(8). 01 ACTION-TYPE PIC X(8). 01 RESPONSE-CODE PIC S9(8) COMP. 01 COMPONENT-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-COMPONENTS PIC S9(2) COMP VALUE 4. 01 COMPONENT-STATUS PIC X(1). 01 COMPONENT-LIST. 05 COMPONENT-ITEM OCCURS 4 TIMES. 10 COMPONENT-ID PIC X(8). 10 COMPONENT-TYPE PIC X(8). 10 COMPONENT-ACTION PIC X(8). 10 COMPONENT-STATUS PIC X(1). PROCEDURE DIVISION. PERFORM INITIALIZE-COMPONENTS PERFORM MANAGE-MULTIPLE-COMPONENTS EXEC CICS RETURN END-EXEC. INITIALIZE-COMPONENTS. MOVE 'COMP001' TO COMPONENT-ID(1) MOVE 'CORE' TO COMPONENT-TYPE(1) MOVE 'CREATE' TO COMPONENT-ACTION(1) MOVE 'COMP002' TO COMPONENT-ID(2) MOVE 'UTIL' TO COMPONENT-TYPE(2) MOVE 'UPDATE' TO COMPONENT-ACTION(2) MOVE 'COMP003' TO COMPONENT-ID(3) MOVE 'SERVICE' TO COMPONENT-TYPE(3) MOVE 'DELETE' TO COMPONENT-ACTION(3) MOVE 'COMP004' TO COMPONENT-ID(4) MOVE 'TOOL' TO COMPONENT-TYPE(4) MOVE 'QUERY' TO COMPONENT-ACTION(4). MANAGE-MULTIPLE-COMPONENTS. PERFORM VARYING COMPONENT-COUNT FROM 1 BY 1 UNTIL COMPONENT-COUNT > MAX-COMPONENTS MOVE COMPONENT-ID(COMPONENT-COUNT) TO APP-NAME MOVE COMPONENT-TYPE(COMPONENT-COUNT) TO COMPONENT-NAME MOVE COMPONENT-ACTION(COMPONENT-COUNT) TO ACTION-TYPE PERFORM MANAGE-SINGLE-COMPONENT IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'S' TO COMPONENT-STATUS(COMPONENT-COUNT) DISPLAY 'Component ' COMPONENT-COUNT ' managed successfully' ELSE MOVE 'F' TO COMPONENT-STATUS(COMPONENT-COUNT) DISPLAY 'Component ' COMPONENT-COUNT ' management failed' END-IF END-PERFORM. MANAGE-SINGLE-COMPONENT. EXEC CICS ADF APPLICATION(APP-NAME) COMPONENT(COMPONENT-NAME) ACTION(ACTION-TYPE) RESP(RESPONSE-CODE) END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152IDENTIFICATION DIVISION. PROGRAM-ID. ADF03. DATA DIVISION. WORKING-STORAGE SECTION. 01 APP-NAME PIC X(8) VALUE 'MYAPP01'. 01 COMPONENT-NAME PIC X(8) VALUE 'CORE'. 01 ACTION-TYPE PIC X(8) VALUE 'CREATE'. 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 ADF-OPERATION-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM ADF-OPERATION-WITH-RETRY EXEC CICS RETURN END-EXEC. ADF-OPERATION-WITH-RETRY. PERFORM ADF-OPERATION IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' ADF operation' PERFORM ADF-OPERATION-WITH-RETRY END-IF. ADF-OPERATION. EXEC CICS ADF APPLICATION(APP-NAME) COMPONENT(COMPONENT-NAME) ACTION(ACTION-TYPE) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO ADF-OPERATION-SUCCESSFUL DISPLAY 'ADF operation successful' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to perform ADF operation' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid ADF operation request' WHEN DFHRESP(ADFERR) DISPLAY 'ADF operation error' WHEN DFHRESP(ADFNOTFOUND) DISPLAY 'ADF component not found' WHEN DFHRESP(ADFINUSE) DISPLAY 'ADF component is in use' WHEN OTHER DISPLAY 'Unexpected ADF operation error' END-EVALUATE.
Think of CICS ADF like building with LEGO blocks:
Create a program that develops basic ADF applications.
Write a program that manages multiple ADF framework components.
Implement comprehensive error handling for ADF operation failures.