Previous Topic: GET CommandNext Topic: Processing Notes


Accessing IMS-DL/I Files with Reporting Facility

The Reporting Facility can be executed with a DL/I or DL/I-ENTRY database. A generalized DL/I user-module interface program is provided by CA. If DL/I support was coded during installation, the DL/I interface program is already cataloged in your Core Image Library or Load Library.

The GET command accesses the database files. The return code posted by DL/I as a result of the GET command is contained in a two-byte alphanumeric field within the 80-byte Communications Area for the DL/I file.

The DL/I interface sets up the appropriate DL/I-RETRIEVAL call based on the function code and the optional Segment Search Argument (SSA) passed to the module from the Reporting Facility program definition. The function code and the SSA, if applied, are checked for validity before the call is made to DL/I.

The Reporting Facility also searches the PCB address to ensure that a PCB is available if a database name has been supplied. Any error detected causes the Reporting Facility run to abort and an explanatory message to be issued.

Since the parameters are analyzed and verified prior to each call to DL/I, it is possible to access multiple databases using the same file definition. This can be accomplished by modifying the database name in the communication region.

The entire PSB is searched in an attempt to locate the proper PCB entry.

Successful execution of the DL/I call returns the contents of the requested database segment to the file I/O area in bytes 256 through n. In addition, 80 bytes of PCB information returned by the DL/I call are placed in the Communications Area. Any unsuccessful call to DL/I causes the Reporting Facility run to abort and an explanatory message to be issued.

Restrictions:

When working with a DL/I or DL/I-ENTRY database, these restrictions apply:

Note: In the SSA shown previously, the search argument is the comparative value against which the specified key/sequence field is to be checked and must therefore be the same length and format as the key/sequence field.