Scratch/Rename
This section describes the scratch/rename functional area of the high-level language exits. The 4-character exit name identifier is SCRN.
Select option U Scratch/Rename from the HLL Exit Definition - Function Selection (CMNHLLMM) panel to define exits for the scratch rename function:
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
In response, the HLL Exit Definition (CMNHLLMN) panel is displayed. Here is how a sample panel might look:
CMNHLLMN                HLL Exit Definition                     Row 1 to 8 of 8
Command ===>__________________________________________________ Scroll ===> CSR
Internal External   + Active            1=LE            Description +
    Name Name                           2=REXX          Debug Userids   +
------------------------------------------------------------------------------
SCRN00XM              NO                2               pre service call for pkg_util
    Debug:            NO                2
------------------------------------------------------------------------------
SCRN01XM              NO                2               post service call for pkg_util
    Debug:            NO                2
------------------------------------------------------------------------------
SCRN0101              NO                2               post package selection
    Debug:            NO                2
------------------------------------------------------------------------------
SCRN0002              NO                2               pre baseline selection
    Debug:            NO                2
------------------------------------------------------------------------------
SCRN0102              NO                2               post baseline selection
    Debug:            NO                2
------------------------------------------------------------------------------
SCRN0103              NO                2               post baseline member list
    Debug:            NO                2
------------------------------------------------------------------------------
SCRN0104              NO                2               post package member list
    Debug:            NO                2
------------------------------------------------------------------------------
SCRN0105              NO                2               post libtype selection list
    Debug:            NO                2
******************************* Bottom of data *******************************
The panels around which exit points will be placed are listed below. The internal exit name (also known as function code) is SYSL0pnn, where:
- 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 SCRN0p02, for example, means that both pre- and post-exits exist. That is, the name of the pre-exit is SCRN0002 and the name of the post-exit is SCRN0102. If it makes no sense to have a pre-exit, the internal name is given as SCRN0101 (post-exit only). If it makes no sense to have a post-exit, the internal name is given as SCRN0001 (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.
Sample exits are provided which show how to list all the information incoming to these exits. Note that not all information is available to all exit points. Those early in the dialog will not have as much information as back-end exit points.
The samples provided are:
| CMNZMF.SAMPLES Library Member | Description | 
|---|---|
| HXCSCRN | COBOL example | 
| HXPSCRN | PL/I example | 
| HXRSCRN | REXX example | 
Data Interface
There is a single data structure passed to all of these exits.
...
| LE-Language Variable Name | REXX Variable Name | Length | Purpose | Modifiable | Cursor Field No. | 
|---|---|---|---|---|---|
| SCRNFUNC | function | 8 | Internal exit name | No | |
| SCRNDBUG | debugCall | 1 | Debug exit call (Y/N) | No | |
| SCRNORGN | callOrigin | 3 | ISPF=SPF XML Service=XML ZDD=ZDDZMF4 ECL=ECL | No | |
| SCRNZMFS | zmfSubs | 1 | ZMF subsystem character | No | |
| SCRNPDB2 | db2Subs | 4 | Default Db2 subsystem for this ZM | FNo | |
| SCRNUSER | userid | 8 | Userid for function calling this exit | No | |
| SCRNEXTN | externalName | 256 | External routine namedefined for this exi | tNo | |
| SCRNPKGN | packageId | 10 | The package being acted on | No | |
| SCRNPSTA | packageStatus | 3 | Package status (DEV, FRZ,etc) | No | |
| SCRNPINS | packageInsDate | 8 | Pkg Install Date yyyymmdd | No | |
| SCRNWRQN | packageWorkRequest | 12 | Package Work Request | No | |
| SCRNDEPT | packageDepartment | 4 | Package Department | No | |
| SCRNOPTN | optionRequested | 1 | 1=baseline, 2=package | Yes | 001 | 
| SCRNRQST | requestType | 1 | s=scratch, r=rename,d=delete | Yes | 013 | 
| SCRNCOMP | componentName | 256 | Component name | Yes | 010 | 
| SCRNLTYP | componentType | 3 | Component library type | Yes | 011 | 
| SCRNNWNM | componentNewName | 256 | Component New Name(rename) | Yes | 012 | 
| SCRNVVMM | verModLevel | 5 | Version.mod level | No | |
| SCRNCRDT | createDate | 8 | Member create date | No | |
| SCRNCHDT | changeDate | 8 | Member change date | No | |
| SCRNCHGT | changeTime | 6 | Member change time | No | |
| SCRNCSZE | memberSize | 5 | Member change size | No | |
| SCRNUSRN | Username | 8 | User name | No | |
| SCRNLSZE | loadSize | 6 | Load member size | No | |
| SCRNLTTR | loadTtr | 6 | Load member TTR | No | |
| CKOTALAS | loadAlias | 8 | Load member alias | No | |
| SCRNAC | loadAuthCode | 2 | Authorisation code | No | |
| SCRNRM | loadRmode | 3 | Load Residency mode | No | |
| SCRNAM | loadAmode | 3 | Load Addressing mode | No | |
| SCRNATTR | loadAttributes | 8 | Load attributes | No | |
| SCRNGO | proceed | 3 | Set to 'NO' to stop the process | Yes | |
| SCRNLOKD | dataLocked | 3 | Fields locked? (YES/NO) | Yes | |
| SCRNSHRT | shortMsg | 24 | Short error message text | Yes | |
| SCRNLONG | longMsg | 128 | Long error message text | Yes | |
| SCRNCURS | cursorField | 3 | For ISPF where cursor is placed on return to panel display.Field values are shown here. | Yes | |
| SCRNCHNG | dataChanged | 3 | This field must be set toYES if you wish to returnchanged values to ZMF. | Yes |