CICS VSAM Transparency for z/OS, Version 1.2


Definition of solution

A VSAM file that is migrated to more than one DB2® table normally requires a combination of an IRD and FBE exit. A file containing a control record can be migrated to two DB2 tables with just an FBE.

The FBE accesses the control table and the DDM accesses the main table.

The main record in the file is mapped to DB2, using either mapping method. Fields in these records can be reengineered using CICS® VT or user FBEs.

To illustrate the solution, consider a file called ITEMFL, which contains a control record. The mapping is shown in Figure 1.

Figure 1. Mapping for a VSAM file with a control record
 ------------------- CICS VT: List of fields for ITEMFL      Row 1 to 10 of 10 
Command ===> ________________________________________________ Scroll ===> CSR  
                                                                               
VSAM file type : KSDS     Creator   : CICSVT                                 + 
Data set length: 00080    Table name: HLL_ITEM                               + 
                                                                               
Actions: S Display, U Update, I Insert, D Delete                               
                                                                               
A Field    Bytes Start Type DB2 column name                  Exit     Pic Par  
- -------- ----- ----- ---- ------------------------------   -------- --- ---  
_ F01      00006 00001   C  ITEM_NUMBER                    + CTLRECF           
_ F02      00012 00007   C  ITEM_NAME                      +                   
_ F03      00006 00019   C  ITEM_COLOUR                    +                   
_ F04      00004 00025   C  ITEM_WEIGHT                    +                   
_ F05      00004 00029   P  ITEM_COST                      + NUMVALF                   
_ F06      00003 00033   C  ITEM_REORDER_NO                +                   
_ F07      00003 00036   C  ITEM_SUPP_CODE                 +                   
_ F08      00005 00039   P  ITEM_DATE_FSHIP                +           Y       
_ F09      00002 00044   C  ITEM_SHELF_LIFE                +                   
_ F10      00035 00046   C  ITEM_DESCRIPTION               +                   
******************************* Bottom of data ********************************
The FBE to manage the control record is called CTLRECF, as shown in Figure 1. The COBOL copybook for the file is:
   01 ITEM-FILE-RECORD                                     .
      02 ITEM-FILE-KEY                                     .
         03 ITEM-FILE-NUM               PIC 9(6)           .
      02 ITEM-FILE-DATA                                    .
         03 ITEM-FILE-NAME              PIC X(12)          .
         03 ITEM-FILE-CLR               PIC X(6)           .
         03 ITEM-FILE-WT                PIC X(4)           .
         03 ITEM-FILE-COST              PIC S9(5)V99 COMP-3.
         03 ITEM-FILE-REORDER-NUM       PIC 9(3)           .
         03 ITEM-FILE-SUPPLIER-CD       PIC X(3)           .
YYYYMMDD 03 ITEM-FILE-FSHIP-DT          PIC S9(9) COMP-3   .
         03 ITEM-FILE-SHELFLIFE         PIC X(2)           .
         03 ITEM-FILE-DESC              PIC X(35)          .
      02 ITEM-FILE-CONTROL-RECORD
         REDEFINES ITEM-FILE-DATA                          .
         03 ITEM-UPDATE-IN-PROGRESS     PIC X              .
            88 COMPLETE             VALUE '0'              .
            88 INCOMPLETE           VALUE '1'              .
        03 ITEM-FILE-UPDATE-PROG        PIC X(8)           .
        03 ITEM-FILE-UPDATE-JOB-NM      PIC X(8)           .
YYYYDDD 03 ITEM-FILE-LAST-UPDATE-DT     PIC S9(7) COMP-3   .
HHMMSS  03 ITEM-FILE-LAST-UPDATE-TM     PIC S9(7) COMP-3   .
        03 ITEM-FILE-RECORDS-DELETED    PIC S9(7) COMP-3   .
        03 ITEM-FILE-RECORDS-INSERTD    PIC S9(7) COMP-3   .
        03 ITEM-FILE-RECORDS-UPDATED    PIC S9(7) COMP-3   .
        03 ITEM-FILE-CONTROL-REMARKS    PIC X(37)          .
The DDL for the two tables is:
CREATE TABLE CICSVT.HLL_ITEM
  (ITEM_NUMBER        CHARACTER(6)   NOT NULL,
   ITEM_NAME          CHARACTER(12)  NOT NULL,
   ITEM_COLOUR        CHARACTER(6)   NOT NULL,
   ITEM_WEIGHT        CHARACTER(4)   NOT NULL,
   ITEM_COST          DECIMAL(7,2)   NOT NULL,
   ITEM_REORDER_NO    SMALLINT       NOT NULL,
   ITEM_SUPP_CODE     CHARACTER(3)   NOT NULL,
   ITEM_DATE_FSHIP    DATE           NOT NULL,
   ITEM_SHELF_LIFE    CHARACTER(2)   NOT NULL,
   ITEM_DESCRIPTION   CHARACTER(35)  NOT NULL,
   PRIMARY KEY (ITEM_NUMBER))
   IN CVTDB.ITEMFIL1   ;

CREATE TABLE CICSVT.HLL_ITEM_CONTROL
  (ITEMUP_NUMBER      CHARACTER(6)   NOT NULL,
   ITEMUP_COMPLETE    CHARACTER(3)   NOT NULL,
   ITEMUP_PROGRAM     CHARACTER(8)   NOT NULL,
   ITEMUP_JOBNAME     CHARACTER(8)   NOT NULL,
   ITEMUP_LAST_DATE   DATE           NOT NULL,
   ITEMUP_LAST_TIME   TIME           NOT NULL,
   ITEMUP_REC_DELETES INTEGER        NOT NULL,
   ITEMUP_REC_INSERTS INTEGER        NOT NULL,
   ITEMUP_REC_UPDATES INTEGER        NOT NULL,
   ITEMUP_REMARKS     CHARACTER(37)  NOT NULL,
   PRIMARY KEY (ITEMUP_NUMBER))
   IN VS2DB.ITEMFIL2   ;


Concept topic


Last updated: February 8, 2013 20:44:0