In this section:
Internal functions are built in and do not require additional work to access. External functions are stored in load libraries from which they must be retrieved. The way these external functions are accessed is determined by your platform. These techniques may not have to be used every time a function is accessed. Access to a load library may be set only once at the time of installation.
You can also access private user-written subroutines. If you have a private collection of subroutines (that is, you created your own or use customized subroutines), do not store them in the function library. Store them separately to avoid overwriting them whenever your site installs a new release. For more information on creating a subroutine, see Creating a Subroutine.
On z/OS, load libraries are partitioned data sets containing link-edited modules. These libraries are stored as EDALIB.LOAD or FUSELIB.LOAD. In addition, your site may have private subroutine collections stored in separate load libraries. If so, you must allocate those libraries.
To use a function stored as a load library, allocate the load library to ddname USERLIB in your JCL or CLIST.
The search order is USERLIB, STEPLIB, JOBLIB, link pack area, and linklist.
The Server also adds the TASKLIB keyword to the search for non-APF authorized libraries. For more information, see the Server Installation, Configuration and Operations for MVS manual.
//USERLIB DD DISP=SHR,DSN=BIGLIB.LOAD
DYNAM ALLOC FILE USERLIB DA lib SHR
Is the ddname to which you allocate a load library.
Are the names of the load libraries, concatenated to ddname USERLIB.
DYNAM ALLOC FILE USERLIB DA MVS.FUSELIB.LOAD SHR
Suppose a report request calls two functions: BENEFIT stored in library SUBLIB.LOAD, and EXCHANGE stored in library BIGLIB.LOAD. To concatenate the BIGLIB and SUBLIB load libraries in the allocation for ddname USERLIB, issue the following commands:
DYNAM ALLOC FILE USERLIB DA SUBLIB.LOAD SHR DYNAM ALLOC FILE BIGLIB DA BIGLIB.LOAD SHR DYNAM CONCAT FILE USERLIB BIGLIB
The load libraries are searched in the order in which they are specified in the ALLOCATE command.
Concatenate the load library to the ddname STEPLIB in your JCL:
//FOCUS EXEC PGM=FOCUS //STEPLIB DD DSN=FOCUS.FOCLIB.LOAD,DISP=SHR // DD DSN=FOCUS.FUSELIB.LOAD,DISP=SHR . . .
In Developer Studio, external functions are not built into WebFOCUS and are stored in files known as dynamic link libraries. To use them, identify the location of your dynamic link functions library file with the IBICPG environment variable, or store the library in the \CONF\USER directory and WebFOCUS will find it automatically.