Topics: |
How to: |
FOCSAM is the underlying logic for accessing keyed and sequential data sources within Information Builders products using a variety of low-level physical retrieval modules. FOCSAM contains a user exit that can be invoked as an alternative to the standard low-level retrieval routines that are part of FOCSAM. The exit makes it possible to combine user-written code (as a DLL) devoid of any dependence on the internal structures used within IBI products with the logical retrieval functions of FOCSAM, such as record selection logic, treatment of missing records in multi-record files, JOINS between various types of files, etc.
An Access File with a MODNAME= value determines the specific physical DLL loadable library to be used for a given table. The DLL itself must have a matching entry point by the same name as dictated by IBI standards for user written subroutines. The DLL must be physically in the EDACONF user directory, or the IBICPG environment variable must be set to indicate an alternate (directory) location. Any additional entry points within the same module may also be accessed, however, if other modules with additional entry points are needed the Private User Exit module must include "loader" logic to make the entry points available. (Note that these are the same rules used for all customers writing loadable DLL subroutines, as described in the Store Procedures Reference, which you can consult for the finer points of physically building a proper DLL.)
This is an overview of the steps for using the Dynamic Private User Exit:
The general features of the exit are:
Note: Since the exposed parts of the API are stable, the need for application code changes, re-compilation, or re-linking is unlikely between major releases. However, IBI reserves the right to make such changes and customers using the exits should safeguard their source code so that it will be available should such changes be required or should the application need to move to a new platform.
Functionally, the exit is a substitute for retrieval calls typically used against key-sequenced VSAM data sources or any data source that can be represented as such a file. The exit need not deal with intra-record structures represented by OCCURS phrases, nor with the translation of FOCUS IF/WHERE conditions into lower-level criteria. Both of these functions are performed by the driving logic within FOCSAM.
The user-written code must conform to the following rules:
WebFOCUS | |
Feedback |