Package Approve and Reject
This section describes the package approve/reject functional area of the high-level language exits. The 4-character exit name identifier is APRV.
Select option A Approve/Reject from the HLL Exit Definition - Function Selection (CMNHLLMM) panel to define exits for the package approve and reject functions:
CMNHLLMM HLL Exit Definition - Function Selection
Option ===>_________________________________________________________
1 All Full list
2 Build Component checkin, build, recompile, relink, delete
3 Package Create Initial create of a package
4 Package Update Subsequent update of package attributes
5 File Tailoring Define customized ISPF variables for file tailoring
6 Checkout Component Checkout from baseline/promotion
7 Promote/Demote Promotion and demotion of components
8 Audit Audit job submission and audit process
9 Freeze Package freeze and selective unfreeze/refreeze
A Approve/Reject Package approve and reject
R Revert/Backout Package revert and backout
S Specific Package syslib, Standard Language, Query etc.
U Scratch/Rename Utility functions
E ERO ERO functions
M Miscellaneous HLLX procedure name
Z Modify Issue Reload, Detach, or Attach modify commands
CMNHLLMN HLL Exit Definition Row 1 to 10 of 11
Command ===> Scroll ===> CSR
Internal External + Active 1=LE Description +
Name Name 2=REXX Debug Userids +
-------------------------------------------------------------------------------
APRV00XM NO 2 pre service all for approve
Debug: HXRAPRV NO 2 USER12
-------------------------------------------------------------------------------
APRV01XM NO 2 post service call for approve
Debug: HXRAPRV NO 2 USER12
-------------------------------------------------------------------------------
APRV0101 NO 2 list of packages to be approved
Debug: HXRAPRV YES 2 USER12
-------------------------------------------------------------------------------
APRV0102 NO 2 approve/reject option menu
Debug: HXRAPRV YES 2 USER12
-------------------------------------------------------------------------------
APRV0103 NO 2 approver entity list
Debug: APRV0103 YES 2 USER12
-------------------------------------------------------------------------------
APRV0004 NO 2 pre checkoff comments
Debug: HXRAPRV YES 2 USER12 ,USER58
-------------------------------------------------------------------------------
APRV0104 NO 2 post checkoff comments
Debug: HXRAPRV YES 2 USER12 ,USER58
-------------------------------------------------------------------------------
APRV0105 NO 2 reject reasons entity selection
Debug: HXRAPRV YES 2 USER12
-------------------------------------------------------------------------------
APRV0006 NO 2 pre reject reasons text
Debug: HXRAPRV YES 2 USER12 ,USER58
-------------------------------------------------------------------------------
APRV0106 NO 2 post reject reasons text
Debug: HXRAPRV YES 2 USER12 ,USER58
- p=0 is the pre-exit.
- p=1 is the post-exit.
- nn is an alphanumeric identifier relating to the panel for which the exit is taken.
The pre-exit is taken before the panel is displayed. The post-exit is taken after the panel has been displayed.
An internal exit name of APRV0p04, for example, means that both pre- and post-exits exist. That is, the name of the pre-exit is APRV0004 and the name of the post-exit is APRV0104. If it makes no sense to have a pre-exit, the internal name will be given as APRV0101 (post-exit only). If it makes no sense to have a post-exit, the internal exit name is given as APRV0001 (pre-exit only).
Most table displays have only post-exits. That is, we do not want to have a pre-exit that manipulates the lists that ZMF generates. We may want to have a post-exit to validate the selections that the user makes from the lists.
The panels around which the approve/reject exit points are placed are:
Panel ID | Description | Exit Name |
---|---|---|
CMNAPPL1 | Resulting list of packages to be approved (short) | APRV0101 |
CMNAPPL2 | Resulting list of packages to be approved (long) | APRV0101 |
CMNAPPOP | Approve function submenu | APRV0102 |
CMNAPPLS | Approver entity list for action | APRV0103 |
CMNCHKLS | Checkoff comments | APRV0004/APRV0104 |
CMNREJR0 | Reject reason entity selection | APRV0105 |
CMNREJR1 | Reject reason text | APRV0006/APRV0106 |
Pre- and post-XML-service calls for approve are:
XML Service Name | Description | Exit Name |
---|---|---|
package.service.approve | Pre-service call for approve (all actions) | APRV00XM |
package.service.approve | Post-service call for approve | APRV01XM |
Sample exits are provided in the CMNZMF.SAMPLES distribution library. These examples show how to list all the information coming in to the exits. Not all information is available to all exits. The exits that occur early in the dialog will not have as much information as the exits that occur later in the dialog.
The approve exit examples are:
-
HXCAPRV - COBOL example
-
HXPAPRV - PL/I example
-
HXRAPRV - REXX example
-
HXRAPRV3 - REXX example exit to warn the approver if check has found an issue and to give the approver two options:
- Ignore warnings and proceed.
- Cancel approval.
A single data structure is passed to all of these exits.
Data Interface
LE-Language Variable Name | REXX Variable Name | Length | Purpose | Modifiable | Cursor Field No. |
---|---|---|---|---|---|
APRVFUNC | function | 8 | Internal exit name | No | |
APRVDBUG | debugCall | 1 | Debug exit call (Y/N) | No | |
APRVORGN | callOrigin | 3 | ISPF=SPF, XML Service=XML, ZDD=ZDDZMF4,ECL=ECL | No | |
APRVZMFS | zmfSubs | 1 | ZMF subsystemcharacter | No | |
APRVPDB2 | db2Subs | 4 | Default Db2 subsystem for this ZMF | No | |
APRVUSER | userid | 8 | Userid for function calling this exit | No | |
APRVEXTN | externalName | 256 | External routine name defined for this exit | No | |
APRVACTN | approverAction | 1 | (approve/reject/review /checkoff) | Yes | 001 |
APRVPKGN | packageId | 10 | The package being acted on | No | |
APRVPSTA | packageStatus | 1 | See service values | No | |
APRVPINS | packageInstallDate | 8 | Package installation date | No | |
APRVPLVL | packageLevel | 1 | Package level | No | |
APRVPTYP | packageType | 1 | Package type | No | |
APRVDEPT | packageDepartment | 4 | Department | Yes | |
APRVWKRQ | packageWorkRequest | 12 | Work request number | Yes | |
APRVCRTR | packageCreator | 8 | User id of the package creator | No | |
APRVPRST | promotionSite | 8 | Promotion site | No | |
APRVPRNM | promotionName | 8 | Promotion name | No | |
APRVPRLV | promotionLevel | 2 | Promotion level No | ||
APRVPRDT | promotionDate | 8 | Promotion date | No | |
APRVPRTM | promotionTime | 6 | Promotion time | No | |
APRVPRUS | promotionUser | 8 | Promotion userid | No | |
APRVAENT | approvalEntity | 8 | Approval entity | No | |
APRVADSC | approvalDescription | 44 | Approval description | No | |
APRVACDE | approvalCode | 1 | Approval code | No | |
APRVAUSR | approvalUser | 8 | Userid of the approver | No | |
APRVADTE | approvalDate | 8 | Approval date | No | |
APRVATME | approvalTime | 6 | Approval time | No | |
APRVAORD | orderNumber | 2 | Order number | No | |
APRVAFUN | lastFunction | 7 | Last function | No | |
APRVREJR | reasons.n | 72 | Stem variable. 10 reject reasons | Yes | 010-019 |
APRVCKCM | comments.n | 72 | Stem variable 14 checkoff comments | Yes | 031-044 |
APRVGO | proceed | 3 | Set to 'NO' to stop the process | Yes | |
APRVLOKD | dataLocked | 3 | Fields locked? (YES/NO) | Yes | |
APRVSHRT | shortMsg | 24 | Short error message text | Yes | |
APRVLONG | longMsg | 128 | Long error message text | Yes | |
APRVCURS | cursorField | 3 | For ISPF to place the cursor on return to panel display. Field values are shown in this table. | Yes | |
APRVCHNG | dataChanged | 3 | This field must be set to YES to return changed values to ZMF. | Yes |