FABGEXPF data set (Flat File)

The FABGEXPF data set contains flat records that are generated by the Export Utility. This data set is referred to as a flat file.

This data set is required when TYPE=EXPORT is specified on the PROC statement in the HISTIN data set.

This data set is a sequential data set. The record is a variable length and the maximum length is 32,752 bytes.

There are two kinds of flat records:

  • Predefined flat records
  • User-defined flat records

Each of the records is described in the following subsections. Restrictions and considerations are also described in the subsections.

Predefined flat records

If DUMMY is specified for the FABGRECI DD statement, or if the FABGRECI DD statement is not specified for the Export Utility FABGXEXP JCL, the flat records are generated in the predefined formats. These records are referred to as a predefined flat record.

The formats summarized in the following table are prepared by the Export Utility.

Table 1. Predefined flat records
Member name Record type Record ID Contents
FABPR001 DB A1 DBD information
FABPR002 DSG A2 Data set group information -1
FABPR003 DSG A3 Data set group information -2
FABPR004 SEGMENT A4 Segment information -1
FABPR005 SEGMENT A5 Segment information -2
FABPR006 RAP A6 RAP information
FABPR007 POINTER A7 Pointer information

To create the predefined flat record, specify the name to the MEMBER= on the PROC statement of the HISTIN data set. For an example of the HISTIN data set, see Example 5: Creating predefined flat records.

The contents of the predefined members are stored in a sample library. They are described in the same syntax rules as the flat file record definitions. The syntax rule is described in FABGRECI data set.

The predefined formats cannot be changed. If you want to change the format, see User-defined flat records.

User-defined flat records

When the FABGRECI data set is specified in the Export Utility FABGXEXP JCL, the flat records are generated in the user-defined formats. This record is referred to as a user-defined flat record.

For how to define the format, see FABGRECI data set.

Restrictions

The following restrictions are common to the predefined flat record and the user-defined flat record.

The following items are not supported by the Export Utility.

  • Database
    • A primary index of HIDAM or PHIDAM database
    • A secondary index database
    • A partitioned secondary index (PSINDEX) of HALDB
    • An indirect list data set (ILDS) of HALDB
  • Segment Type
    • A virtual logical child segment
  • Pointer Type
    • Symbolic pointer
    • Index pointer
    • HISAM direct-address pointer
    • Counter field
    Note: The supported pointer types are follows:
    • Hierarchical Forward pointer (HF)
    • Hierarchical Backward pointer (HB)
    • Physical Twin Forward pointer (PTF)
    • Physical Twin Backward pointer (PTB)
    • Physical Parent pointer (PP)
    • Logical Twin Forward pointer (LTF)
    • Logical Twin Backward pointer (LTB)
    • Logical Parent pointer (LP)
    • Logical Child First pointer (LCF)
    • Logical Child Last pointer (LCL)
    • Physical Child First pointer (PCF)
    • Physical Child Last pointer (PCL)
    • Pointer to a data part of Variable Length Split segment (VLS)
    • RBA pointer to logical parent in an extended pointer set of HALDB (ELP)
    • RBA pointer to paired logical child for bidirectional logical relationships of HALDB (ELC)

Considerations

The following considerations are common to the predefined flat record and the user-defined flat record.

The sequence of flat records stored in the flat file has the following rules:

  • The flat records will be sorted in the order of the database names in EBCDIC order. If there are multiple records of the same database name, the records will be in ascending order of the date.
  • Within the same date, flat records will be in the order that they were specified for MEMBER= in the HISTIN control statement.
  • If multiple flat records are generated from the same MEMBER, the order of the records will differ as follows according to the record type.
    • If TYPE=PART, in EBCDIC order of partition name
    • If TYPE=DSG, in ascending order of data set group
    • If TYPE=SEGMENT, in ascending order of segment code
    • If TYPE=POINTER, in the order that the pointers are within the segment prefix
  • By using the OPTION IMSID parameter of the HISTIN control statement, you can create flat records of a specific IMSID. Note that, however, flat records cannot be sorted in the order of IMSID. They will be in the order they were stored in the History record entries, that is the order HD Pointer Checker created the entries.

Example 1: Case of a Non-HALDB

The following figure shows an example of the specification, for a non-HALDB, to generate a flat file.

Figure 1. Example specification for a non-HALDB to generate a flat file
//HISTIN  DD    *
PROC TYPE=EXPORT,
 MEMBER=(MEMDB,,MEMDSG,MEMSEG,MEMPTR),DBORG=HDAM
OPTION FROM=01012021,TO=12312021
DATABASE DB=HDAMDBA
DATABASE DB=HDAMDBB
/*

FABGRECI contains the following members:
MEMDB: RECORD TYPE=DB
MEMDSG: RECORD TYPE=DSG
MEMSEG: RECORD TYPE=SEGMENT
MEMPTR: RECORD TYPE=POINTER

With this specification, flat records will be generated in the following order in a flat file:

Figure 2. Flat file generated for a non-HALDB
HDAMDBA,01/01/2021 flat record generated from MEMDB
HDAMDBA,01/01/2021 DSG A flat record generated from MEMDSG  
HDAMDBA,01/01/2021 DSG B flat record generated from MEMDSG  
HDAMDBA,01/01/2021 Segment Code=01 segment flat record generated from MEMSEG  
HDAMDBA,01/01/2021 Segment Code=02 segment flat record generated from MEMSEG  
HDAMDBA,01/01/2021 Segment Code=03 segment flat record generated from MEMSEG  
HDAMDBA,01/01/2021 PTF pointer flat record generated from MEMPTR  
HDAMDBA,01/01/2021 PTB pointer flat record generated from MEMPTR   
HDAMDBA,01/01/2021 PCF pointer flat record generated from MEMSEG  
HDAMDBA,01/01/2021 PCL pointer flat record generated from MEMSEG  

HDAMDBA,01/02/2021 flat record generated from MEMDB  
           :
           :
HDAMDBB,01/01/2021 flat record generated from MEMDB   
            :
HDAMDBB,01/02/2021 flat record generated from MEMDB 
            :

Example 2: Case of a HALDB

The following figure shows an example of the specification, for a HALDB, to generate a flat file.

For HALDB, the records of DSG, SEGMENT, and POINTER types will be sorted by the partition ID, and sorted by each order.

Figure 3. Example specification for a HALDB to generate a flat file
//HISTIN  DD    *
PROC TYPE=EXPORT,
 MEMBER=(MEMDB,MEMPART,MEMDSG,MEMSEG,MEMPTR),DBORG=PHDAM
OPTION FROM=01012021,TO=12312021
DATABASE DB=PHDAMA
DATABASE DB=PHDAMB
/*

FABGRECI contains the following members:
MEMDB: RECORD TYPE=DB
MEMPART: RECORD TYPE=PART
MEMDSG: RECORD TYPE=DSG
MEMSEG: RECORD TYPE=SEGMENT
MEMPTR: RECORD TYPE=POINTER

With this specification, flat records will be generated in the following order in a flat file:

Figure 4. Flat file generated for a HALDB
PHDAMDBA,01/01/2021 flat record generated from MEMDB  
PHDAMDBA,01/01/2021 partition id A flat record generated from MEMPART
PHDAMDBA,01/01/2021 partition id B flat record generated from MEMPART  
PHDAMDBA,01/01/2021 partition id A DSG A flat record generated from MEMDSG  
PHDAMDBA,01/01/2021 partition id A DSG B flat record generated from MEMDSG  
PHDAMDBA,01/01/2021 partition id B DSG A flat record generated from MEMDSG   
PHDAMDBA,01/01/2021 partition id B DSG B flat record generated from MEMDSG   
PHDAMDBA,01/01/2021 partition id A Segment Code=01 segment flat record generated from MEMSEG
PHDAMDBA,01/01/2021 partition id A Segment Code=02 segment flat record generated from MEMSEG
PHDAMDBA,01/01/2021 partition id A Segment Code=03 segment flat record generated from MEMSEG
PHDAMDBA,01/01/2021 partition id B Segment Code=01 segment flat record generated from MEMSEG
PHDAMDBA,01/01/2021 partition id B Segment Code=02 segment flat record generated from MEMSEG
PHDAMDBA,01/01/2021 partition id B Segment Code=03 segment flat record generated from MEMSEG
PHDAMDBA,01/01/2021 partition id A PTF pointer flat record generated from MEMPTR   
PHDAMDBA,01/01/2021 partition id A PTB pointer flat record generated from MEMPTR 
PHDAMDBA,01/01/2021 partition id A PCF pointer flat record generated from MEMSEG  
PHDAMDBA,01/01/2021 partition id A PCL pointer flat record generated from MEMSEG  
PHDAMDBA,01/01/2021 partition id B PTF pointer flat record generated from MEMPTR  
PHDAMDBA,01/01/2021 partition id B PTB pointer flat record generated from MEMPTR  
PHDAMDBA,01/01/2021 partition id B PCF pointer flat record generated from MEMSEG  
PHDAMDBA,01/01/2021 partition id B PCL pointer flat record generated from MEMSEG  
PHDAMDBA,01/02/2021 flat record generated from MEMDB  
            :
            :
PHDAMDBB,01/01/2021 flat record generated from MEMDB  
            :
PHDAMDBB,01/02/2021 flat record generated from MEMDB  
            :