IDENTIFICATION DIVISION. PROGRAM-ID. CLIENT1. WORKING-STORAGE SECTION. COPY INQINTC * copybook INQINTC * Channel name * 01 INQUIRY-CHANNEL PIC X(16) VALUE 'inqcustrec'. * Container names * 01 CUSTOMER-NO PIC X(16) VALUE 'custno'. * 01 BRANCH-NO PIC X(16) VALUE 'branchno'. * 01 CUSTOMER-RECORD PIC X(16) VALUE 'custrec'. * Define the data fields used by the program * 01 CUSTNO PIC X(8). * 01 BRANCHNO PIC X(5). * 01 CREC. * 02 CUSTNAME PIC X(80). * 02 CUSTADDR1 PIC X(80). * 02 CUSTADDR2 PIC X(80). * 02 CUSTADDR3 PIC X(80). PROCEDURE DIVISION. MAIN-PROCESSING SECTION. * * INITIALISE CUSTOMER RECORD * ... CREATE CUSTNO and BRANCHNO * * GET CUSTOMER RECORD * EXEC CICS PUT CONTAINER(CUSTOMER-NO) CHANNEL(INQUIRY-CHANNEL) FROM(CUSTNO) FLENGTH(LENGTH OF CUSTNO) END-EXEC EXEC CICS PUT CONTAINER(BRANCH-NO) CHANNEL(INQUIRY-CHANNEL) FROM(BRANCHNO) FLENGTH(LENGTH OF BRANCHNO) END-EXEC EXEC CICS LINK PROGRAM('SERVER1') CHANNEL(INQUIRY-CHANNEL) END-EXEC EXEC CICS GET CONTAINER(CUSTOMER-RECORD) CHANNEL(INQUIRY-CHANNEL) INTO(CREC) END-EXEC * * PROCESS CUSTOMER RECORD * ... FURTHER PROCESSING USING CUSTNAME and CUSTADDR1 etc... EXEC CICS RETURN END-EXEC EXIT.
Figure 2 shows the SERVER1 program linked to by CLIENT1. SERVER1 retrieves the data from the custno and branchno containers it has been passed, and uses it to locate the full customer record in its database. It then creates a new container, custrec, on the same channel, and returns the customer record in it.
IDENTIFICATION DIVISION. PROGRAM-ID. SERVER1. WORKING-STORAGE SECTION. COPY INQINTC * copybook INQINTC * Channel name * 01 INQUIRY-CHANNEL PIC X(16) VALUE 'inqcustrec'. * Container names * 01 CUSTOMER-NO PIC X(16) VALUE 'custno'. * 01 BRANCH-NO PIC X(16) VALUE 'branchno'. * 01 CUSTOMER-RECORD PIC X(16) VALUE 'custrec'. * Define the data fields used by the program * 01 CUSTNO PIC X(8). * 01 BRANCHNO PIC X(5). * 01 CREC. * 02 CUSTNAME PIC X(80). * 02 CUSTADDR1 PIC X(80). * 02 CUSTADDR2 PIC X(80). * 02 CUSTADDR3 PIC X(80). PROCEDURE DIVISION. MAIN-PROCESSING SECTION. EXEC CICS GET CONTAINER(CUSTOMER-NO) INTO(CUSTNO) END-EXEC EXEC CICS GET CONTAINER(BRANCH-NO) INTO(BRANCHNO) END-EXEC ... USE CUSTNO AND BRANCHNO TO FIND CREC IN A DATABASE EXEC CICS PUT CONTAINER(CUSTOMER-RECORD) FROM(CREC) FLENGTH(LENGTH OF CREC) END-EXEC EXEC CICS RETURN END-EXEC EXIT.