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.
------------------- 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 ********************************
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) .
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 ;