Multi-Format Logical Files

Multi-format logical files are an accumulation of different record formats, each one from a separate physical file. Multi-format logical files enable placement of multiple physical files in one logical (hierarchical) file structure. Each of the physical files should have common keys.


Top of page

Example: Associating a Logical File With Three Physical Files

The following are IBM i Data Description Specifications (DDSs) for three physical files and the logical file that associates them:

EMPLOYEE Physical File DDS
 
0001.00      A                                      UNIQUE
0002.00      A          R EMPINFOR
0003.00      A            EMP_ID         9A
0004.00      A            LAST_NAME     10A
0005.00      A            FIRST_NAME    10A
0006.00      A            ADDRESS       40A
0007.00      A          K EMP_ID
PENSION Physical File DDS
 
0001.00      A                                      UNIQUE
0002.00      A          R PENSPATH
0003.00      A            EMP_ID         9A
0004.00      A            PLAN_NAME     10A
0005.00      A            VESTED         1A
0006.00      A            AMT_CNTRB      6P 2
0007.00      A          K EMP_ID
VACATION Physical File DDS
 
0001.00      A                                      UNIQUE
0002.00      A          R VACPATH
0003.00      A            EMP_ID         9A
0004.00      A            DAYS_EARND     2P 1
0005.00      A            DAYS_TAKEN     2P 1
0006.00      A          K EMP_ID
EMP Multi-Format Logical DDS
 
0001.00      A          R EMPINFOR                   PFILE(EMPLOYEE)
0002.00      A          K EMP_ID
0003.00      A          R PENSPATH                   PFILE(PENSION)
0004.00      A          K EMP_ID
0005.00      A          R VACPATH                    PFILE(VACATION)
0006.00      A          K EMP_ID

When you create a synonym for the EMP Multi-format logical file, the following metadata is generated.

FILENAME=EMP_MFL, SUFFIX=DBFILE  ,
 DATASET=QSYS:SHIPPING/EMP, $
  SEGMENT=EMPINFOR, SEGTYPE=S0, $
    FIELDNAME=EMP_ID, ALIAS=EMP_ID, USAGE=A9, ACTUAL=A9,
      TITLE='EMP_ID', $
    FIELDNAME=LAST_NAME, ALIAS=LAST_NAME, USAGE=A10, ACTUAL=A10,
      TITLE='LAST_NAME', $
    FIELDNAME=FIRST_NAME, ALIAS=FIRST_NAME, USAGE=A10, ACTUAL=A10,
      TITLE='FIRST_NAME', $
    FIELDNAME=ADDRESS, ALIAS=ADDRESS, USAGE=A40, ACTUAL=A40,
      TITLE='ADDRESS', $
    FIELDNAME=RECFORM, ALIAS=EMPINFOR, USAGE=A10, ACTUAL=A10, $
  SEGMENT=PENSPATH, SEGTYPE=S0, PARENT=EMPINFOR, $
    FIELDNAME=EMP_ID, ALIAS=EMP_ID, USAGE=A9, ACTUAL=A9,
      TITLE='EMP_ID', $
    FIELDNAME=PLAN_NAME, ALIAS=PLAN_NAME, USAGE=A10, ACTUAL=A10,
      TITLE='PLAN_NAME', $
    FIELDNAME=VESTED, ALIAS=VESTED, USAGE=A1, ACTUAL=A1,
      TITLE='VESTED', $
    FIELDNAME=AMT_CNTRB, ALIAS=AMT_CNTRB, USAGE=P8.2, ACTUAL=P4,
      TITLE='AMT_CNTRB', $
    FIELDNAME=RECFORM, ALIAS=PENSPATH, USAGE=A10, ACTUAL=A10, $
  SEGMENT=VACPATH, SEGTYPE=S0, PARENT=PENSPATH, $
    FIELDNAME=EMP_ID, ALIAS=EMP_ID, USAGE=A9, ACTUAL=A9,
      TITLE='EMP_ID', $
    FIELDNAME=DAYS_EARND, ALIAS=DAYS_EARND, USAGE=P4.1, ACTUAL=P2,
      TITLE='DAYS_EARND', $
    FIELDNAME=DAYS_TAKEN, ALIAS=DAYS_TAKEN, USAGE=P4.1, ACTUAL=P2,
      TITLE='DAYS_TAKEN', $
    FIELDNAME=RECFORM, ALIAS=VACPATH, USAGE=A10, ACTUAL=A10, $

The internal field, RECFORM, is needed to reference a particular record format. (This is done automatically when you create the synonym.)

The RECFORM ALIAS is required, even for single format files, and must always have a value of the name of the record format.


iWay Software