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:

  • Accepting the Component unchanged;
  • Rejecting the Component; or
  • Accepting the Component with new information (for example, Description).

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

image2021-2-1_16-29-19.png

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)"
"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

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Compuware ISPW 18.02