DL/I Calls

The adapter operates in two phases:

The adapter retrieves data from the IMS database with a sequence of GET UNIQUE and GET NEXT calls that follow the database structure in top-to-bottom, left-to-right order. These calls do not require a PCB that maintains multiple positions in the database. The adapter does not issue path calls (calls that retrieve a hierarchical path, not just one segment) because those might retrieve unwanted segments, burdening IMS with unnecessary I/O. Therefore, the adapter can use any PCB.

The DL/I calls that the adapter issues retrieve the smallest connected subtree, starting at the root, that contains all explicitly referenced fields plus the root. For example:

If the request explicitly references only fields in segments B, C and D, the adapter retrieves all the segments in the boxed area, top-to-bottom, left-to-right.

Descendants of rejected segments do not participate in the retrieval. When FOCUS applies screening conditions that were not translated into SSAs, it communicates to the adapter the status of the previously retrieved segment, accepted or rejected. If the segment was rejected, the next DL/I call is for either another instance of the rejected segment (TWIN), a sibling segment, or a parent segment, not a child of the rejected segment.

The adapter accesses a segment, even when the request does not reference it, if the request references any of its descendants. For example:

TABLE FILE PEOPLE
COUNT C AND E
IF B CONTAINS 'ABC'
IF EKEY IS 1 OR 2
END

The request references fields in segments B and E, so the adapter also retrieves segment D. It retrieves segment A for efficient positioning. It cannot translate the condition on B to an SSA. It translates the condition on the key field, E, to two SSAs, (EKEY EQ 1) and (EKEY EQ 2).


Information Builders