Step 3: Exits and Special Customizations
The purpose of this step is to review the Exits and Special Customizations that are provided and change them as required.
Available Exits
The REXX exits listed in the following table are available.
Available REXX Exits
Exit | Description |
|---|---|
WZUALO | This exit is used to load the “Override” table from a sequential dataset. The Override table can be used as input to both WZUALX and WZUALG. |
WZUALX | This is invoked for each Component to be loaded for the purposes of:
|
WZUALG | This is invoked for each component to accurately set the ISPW Generate parameters for that component. |
These exits are described in the following sections.
Override Capability
The Override facility is a way to include organization-specific knowledge into the Application Load and Generate Parameters processes. A flat file can be created to include information about components that may be used in a variety of ways, including:
- Limiting the components to be loaded
- Setting the correct Component Type for a component
- Including description data for the Task Load process
- Providing the correct Generate parameters for a component.
A flat file is created with information to be included in the process, which is converted to an ISPF table that is then available to the Task Load and Generate Parameters processes.
WZUALO – Override Exit
This User Exit can be tailored to load the Override table from the Sequential Override Dataset specified on the M.AL panel. The Override table can make extra variables available to the conversion process. Component Descriptions or special Compile Options could be loaded using this table.
When WZUALO is Called
This User Exit is called when Process Option “O” is requested.
Required Changes
If the Override feature is used, this exit will need to be changed to match the Override file that is created. The section of code requiring change is shown in the following figure.
Changing the Override Exit

The above example depicts the situation where the Override file is used to include a component description and a flag that indicates whether SQL is used in the program.
Use of Override Information in Other Exits
Once the Override table is created, the other exits can simply do a TBGET for the current member name and type to refresh the ISPF variables with the Override information.
WZUALX – Load Exit
This exit extends the Application Load process beyond just the inspection of what components are in the Application Datasets.
When WZUALX is Called
This exit is called during the Task Report (option R) and Task Load (option T) processes.
Exit Functioning
Upon entry to this exit, the details for a component and the associated parts are made available on the REXX stack. This has been gathered during the scanning of the Application datasets. The exit reads details from the stack, and it can accept the Task Load unchanged, Reject the Task Load, or replace the Task Load with new details which it writes back to the Stack.
In addition, a simple TBGET for the Override table <APPL>ALGX will make available all variables that were defined for a Component using the Override process (option O).
Stack Variables
There are two Stack variables:
- Task – string containing details about the main component
- Part.n – an array containing a string for each of the parts associated with the task.
Task
The format of the Task variable is shown in the following table.
Task Variable Format
Field | Position | Size |
|---|---|---|
Member Type | 1 | 4 |
Member Name | 6 | 8 |
Target Env. | 24 | 4 |
Source DSN | 29 | 44 |
Application | 74 | 4 |
Stream | 79 | 8 |
Level | 88 | 4 |
Part.n
The format of the Part.n variable is shown in the following table.
Part.n Variable Format
Field | Position | Size |
|---|---|---|
Part Type | 1 | 4 |
Part Name | 6 | 8 |
Association | 15 | 4 |
Sequence | 21 | 1 |
Target Env. | 24 | 4 |
Part DSN | 29 | 44 |
The number of Part records for the task is stored in the variable “partcnt”.
Return Codes
The return code from the exit (Return Codes) determines the subsequent processing for the Task Load.
Return Codes
Return Code | Explanation |
|---|---|
0 | Accept the component details unchanged |
2 | Update the component details with the updated variables |
4 | Reject the component for loading |
WZUALG – Generate Parameters Exit
This REXX is a User Exit that can be tailored to define the Compile Parameters for a component.
ISPW uses saved parameters against each component to determine its generate processing. These are called Compile Parameters and are used to tailor the generate process at generate run time. This exit is used to populate the ISPW Generate Parameters according to the installation requirements.
When WZUALG is Called
This User Exit is called for each Component that is defined to ISPW as a Generated Type, when Process Option “G” is requested.
Interface Variables
Upon entry to this exit, there are two groups of ISPF variables that are retrieved using the following ISPF VGET Service calls:
"VGET ("WZXVARS WZUVARS")"
In addition, a TBGET for the Override table <APPL>ALGX will make available all variables that were defined for a Component using process Option O (if this is used).
WZUVARS
The variables in this group become the Compile Table variables for the component. The group is derived from the site model Compile Table $ZZCPRM. Upon entry to this REXX, the variables are set to NULL, with the exception of:
- GMT1NAME
- GMT2NAME
- GMT3NAME
- GMT1LNAM
- GMT2LNAM
- GMT3LNAM
- LOADNAME
which are initialized with the component name if there is a corresponding association for it in M.AD. The variables MEMBER and MEMBTYPE are also initialized with the Component Name and Component Type.
The User Exit should examine the contents of variables defined by WZXVARS, as well as initialize variables defined by WZUVARS and save them in the shared pool, as needed.
WZXVARS
WZXVARS provides a list of variables that are available to the conversion process. These variables (WZXVARS) can be used to help decide how the Compile Table variables should be initialized.
WZXVARS
Variable | Description |
|---|---|
MTYPE | ISPW Member Type |
MNAME | ISPW Member Name |
WTENV | ISPW Target Environment |
WAPPL | ISPW Application |
WSTREAM | ISPW Stream |
GMT1TYPE | Generate Type (for example, DBRM, LIST, OBJ, etc.) defined for the association. |
GMT2TYPE | |
GMT3TYPE | |
GMT1LTYP | |
GMT2LTYP | |
GMT3LTYP |