The Package Syslib Functional Area
This section describes the Package Syslib functional area of the high-level language exits.
The 4-character exit name identifier is SYSL.
-
SYSLOOXM is the exit point for the package.list.syslib service.
-
SYSL00XR is for the refresh service.
-
SYSL00XL and SYSL01XL are additional exit points included in this functional area.
SYSLOOXM
The SYSL00XM exit may be used to alter the default syslib concatenation generated by ZMF, or it may be used to prevent any result being returned to the service caller (a user specified message can be delivered in this case).
Sample exits are provided which show how to list all the information incoming to the exit. The majority of the fields are fixed in nature (see list later in this document). However, there are three variable length lists which are passed to/from the exit. The first is a complete list of library types which are physically allocated to the package for which the service has been invoked.
The second is the list of syslib names (MVS libraries or zFS directories) as generated by the default ZMF logic (i.e. staging libraries, promotion libraries, baseline libraries).
The third list is null when the exit is called and is where the exit may place any altered list of syslib names. Details on how to generate an altered list of syslib names are provided in the sample exits (HXCSYSL - Cobol, HXPSYSL - PL/I, HXRSYSL - REXX). The format of this variable length data is given here.
In COBOL:
***
* VARIABLE LENGTH LISTS FOLLOW, THERE ARE FOUR.
* IF THE LIST IS EMPTY THEN THE RELEVANT POINTER WILL BE NULL.
* ELSE IT WILL POINT TO A REPEATING GROUP IN WHICH EACH ENTRY
* CONSISTS OF A POINTER TO THE NEXT ENTRY FOLLOWED BY THE DATA.
* WHEN THE POINTER IS NULL THEN THERE NO FURTHER ENTRIES IN
* THE BLOCK.
*
* THE FIRST TWO LISTS ARE PROVIDED AS INPUT TO EXIT SYSL00XM
* THE POINTERS WILL BE NULL FOR SYSL00XR
*
* 1) LIBTYPES ALLOCATED TO THE REQUESTED PACKAGE
* 2) THE DEFAULT SYSLIB LIST PROVIDED BY THE ZMF SERVICE
*
...
* THE THIRD LIST, IF REQUIRED, WILL BE CREATED BY YOU IN EXIT
* SYSL00XM (SAMPLE CODE IS PROVIDED IN HXCSYSL).
* IF YOU WISH TO CHANGE THE SET OF NAMES USED IN THIS
* SYSLIB CONCATENATION THEN YOU MUST PROVIDE THE ALTERED
* LIST AS A LINKED LIST WITH THE FORMAT EXACTLY AS REPRESENTED
* IN THIS COPYBOOK.
* THE POINTER TO THE FIRST ITEM ON THE LIST IS PLACED AT
* SYSLLST3-PTR AND THE POINTER TO THE NEXT ENTRY ON THE LIST
* MUST BE NULL TO TERMINATE THE LIST.
* STORAGE FOR THE LIST ENTRIES MUST BE TAKEN FROM LE HEAPID=0
* USING THE CEEGTST FUNCTION.
*
* ON ENTRY TO THE EXIT SYSLLST3-PTR IS NULL. IF YOU DO NOT
* INTEND TO PROVIDE A CHANGED LIST (OR IF YOU ARE EXECUTING
* SYSL00XR) THEN IT IS IMPORTANT THAT YOU LEAVE SYSLLST3-PTR
* AS NULL.
*
*
* THE FOURTH LIST, IF REQUIRED, WILL BE CREATED BY YOU IN EXIT
* SYSL00XR. IF YOU WISH TO ALTER THE SCOPE OF THE REFRESH OF
* THE SYSLIB CACHE THEN YOU MUST PROVIDE A LIST OF VALUES.
* EACH VALUE CAN BE FULLY WILDCARDED (I.E. '* '), OR
* A WILDCARDED APPLICATION (I.E. 'APPL* '), OR A SPECIFIC
* PACKAGE NAME (I.E. 'APPL123456').
*
* FULL WILDCARD: REFRESH ALL CACHED RECORDS IN THE PMAST
* APPL+WILDCARD: REFRESH ALL CACHED RECORDS FOR THIS APPL
* PKG NAME : REFRESH ALL CACHED RECORDS FOR THIS PKG
*
* THE POINTER TO THE FIRST ITEM ON THE LIST IS PLACED AT
* SYSLLST4-PTR AND THE POINTER TO THE NEXT ENTRY ON THE LIST
* MUST BE NULL TO TERMINATE THE LIST.
* STORAGE FOR THE LIST ENTRIES MUST BE TAKEN FROM LE HEAPID=0
* USING THE CEEGTST FUNCTION.
*
* ON ENTRY TO THE EXIT SYSLLST4-PTR IS NULL. IF YOU DO NOT
* INTEND TO PROVIDE A CHANGED LIST (OR IF YOU ARE EXECUTING
* SYSL00XM) THEN IT IS IMPORTANT THAT YOU LEAVE SYSLLST4-PTR
* AS NULL.
*
*
* TO HAVE ZMF TAKE NOTE OF YOUR CHANGED LIST YOU NEED TO SET
* SYSLCHNG TO "YES".
***
03 SYSLLST1-PTR USAGE IS POINTER.
03 SYSLLST2-PTR USAGE IS POINTER.
03 SYSLLST3-PTR USAGE IS POINTER.
03 SYSLLST4-PTR USAGE IS POINTER.
*
***
* VARIABLE LENGTH AREA FOR ALLOCATED STAGING LIBTYPE LIST
***
01 SYSLLST1.
03 PTR-NEXT-SYSLLST1 POINTER.
* POINTER TO NEXT ENTRY
03 SYSLLTPN PIC X(3).
* A SINGLE LIBTYPE ENTRY
***
* VARIABLE LENGTH AREA FOR THE SERVICE GENERATED SYSLIB LIST
***
01 SYSLLST2.
03 PTR-NEXT-SYSLLST2 POINTER.
* POINTER TO NEXT ENTRY
03 SYSLFROM PIC X(1).
* S,P,B - STG,PROMO,BASELINE
03 SYSLATTR PIC X(18).
* FROM ATTRIBUTES
03 SYSLSTGE REDEFINES SYSLATTR.
* STAGING ATTRIBUTES:FROM=S
09 SYSLPKG PIC X(10).
* PACKAGE
09 FILLER PIC X(8).
*
03 SYSLPROM REDEFINES SYSLATTR.
* PROMO ATTRIBUTES: FROM=P
09 SYSLPRST PIC X(8).
* PROMOTION SITE
09 SYSLPRLV PIC X(2).
* PROMOTION LEVEL
09 SYSLPRNM PIC X(8).
* PROMOTION NAME
03 SYSLAPPL PIC X(4).
* APPLICATION
03 SYSLLIBT PIC X(3).
* LIBTYPE
03 SYSLSPEC PIC X(1).
* SPECIAL PROCESS IND.
03 SYSLSUBT PIC X(1).
* SPECIAL PROCESS SUBTYPE
03 SYSLDSNM.
49 SYSLDSNM-LEN PIC S9(4) COMP-5.
* DSNAME LENGTH
49 SYSLDSNM-VALUE PIC X(1024).
* DSNAME VALUE
***
* VARIABLE LENGTH AREA FOR SYSLIB LIST TO BE RETURNED TO ZMF
***
01 SYSLLST3.
03 PTR-NEXT-SYSLLST3 POINTER.
* POINTER TO NEXT ENTRY
03 SYSLIBNM.
49 SYSLIBNM-LEN PIC S9(4) COMP-5.
* DSNAME LENGTH
49 SYSLIBNM-VALUE PIC X(1024).
* DSNAME VALUE
***
* VARIABLE LENGTH AREA FOR REFRESH SCOPE TO BE RETURNED TO ZMF
***
01 SYSLLST4.
03 PTR-NEXT-SYSLLST4 POINTER.
* POINTER TO NEXT ENTRY
03 SYSLREFP PIC X(10).
* REFRESH SCOPE
And here in PL/I …
/*** */
/* VARIABLE LENGTH LISTS FOLLOW, THERE ARE FOUR. */
/* IF THE LIST IS EMPTY THEN THE RELEVANT POINTER WILL BE NULL. */
/* ELSE IT WILL POINT TO A REPEATING GROUP IN WHICH EACH ENTRY */
/* CONSISTS OF A POINTER TO THE NEXT ENTRY FOLLOWED BY THE DATA. */
/* WHEN THE POINTER IS NULL THEN THERE NO FURTHER ENTRIES IN */
/* THE BLOCK. */
/* */
/* THE FIRST TWO LISTS ARE PROVIDED AS INPUT TO EXIT SYSL00XM */
/* THE POINTERS WILL BE NULL FOR SYSL00XR */
/* */
/* 1) LIBTYPES ALLOCATED TO THE REQUESTED PACKAGE */
/* 2) THE DEFAULT SYSLIB LIST PROVIDED BY THE ZMF SERVICE */
/* */
/* THE THIRD LIST, IF REQUIRED, WILL BE CREATED BY YOU IN EXIT */
/* SYSL00XM (SAMPLE CODE IS PROVIDED IN HXCSYSL). */
/* IF YOU WISH TO CHANGE THE SET OF NAMES USED IN THIS */
/* SYSLIB CONCATENATION THEN YOU MUST PROVIDE THE ALTERED */
/* LIST AS A LINKED LIST WITH THE FORMAT EXACTLY AS REPRESENTED */
/* IN THIS COPYBOOK. */
/* THE POINTER TO THE FIRST ITEM ON THE LIST IS PLACED AT */
/* SYSLLST3-PTR AND THE POINTER TO THE NEXT ENTRY ON THE LIST */
/* MUST BE NULL TO TERMINATE THE LIST. */
/* STORAGE FOR THE LIST ENTRIES MUST BE TAKEN FROM LE HEAPID=0 */
/* USING THE CEEGTST FUNCTION. */
/* */
/* ON ENTRY TO THE EXIT SYSLLST3-PTR IS NULL. IF YOU DO NOT */
/* INTEND TO PROVIDE A CHANGED LIST (OR IF YOU ARE EXECUTING */
/* SYSL00XR) THEN IT IS IMPORTANT THAT YOU LEAVE SYSLLST3-PTR */
/* AS NULL. */
/* */
/* */
/* THE FOURTH LIST, IF REQUIRED, WILL BE CREATED BY YOU IN EXIT */
/* SYSL00XR. IF YOU WISH TO ALTER THE SCOPE OF THE REFRESH OF */
/* THE SYSLIB CACHE THEN YOU MUST PROVIDE A LIST OF VALUES. */
/* EACH VALUE CAN BE FULLY WILDCARDED (I.E. '* '), OR */
/* A WILDCARDED APPLICATION (I.E. 'APPL* '), OR A SPECIFIC */
/* PACKAGE NAME (I.E. 'APPL123456'). */
/* */
/* FULL WILDCARD: REFRESH ALL CACHED RECORDS IN THE PMAST */
/* APPL+WILDCARD: REFRESH ALL CACHED RECORDS FOR THIS APPL */
/* PKG NAME : REFRESH ALL CACHED RECORDS FOR THIS PKG */
/* */
/* THE POINTER TO THE FIRST ITEM ON THE LIST IS PLACED AT */
/* SYSLLST4-PTR AND THE POINTER TO THE NEXT ENTRY ON THE LIST */
/* MUST BE NULL TO TERMINATE THE LIST. */
/* STORAGE FOR THE LIST ENTRIES MUST BE TAKEN FROM LE HEAPID=0 */
/* USING THE CEEGTST FUNCTION. */
/* */
/* ON ENTRY TO THE EXIT SYSLLST4-PTR IS NULL. IF YOU DO NOT */
/* INTEND TO PROVIDE A CHANGED LIST (OR IF YOU ARE EXECUTING */
/* SYSL00XM) THEN IT IS IMPORTANT THAT YOU LEAVE SYSLLST4-PTR */
/* AS NULL. */
/* */
/* */
/* TO HAVE ZMF TAKE NOTE OF YOUR CHANGED LIST YOU NEED TO SET */
/* SYSLCHNG TO "YES". */
/*** */
2 SYSLLST1_PTR PTR,
2 SYSLLST2_PTR PTR,
2 SYSLLST3_PTR PTR,
2 SYSLLST4_PTR PTR;
/*** */
/* VARIABLE LENGTH AREA FOR ALLOCATED STAGING LIBTYPE LIST */
/*** */
DCL 1 SYSLLST1 BASED(WORKPTR1),
2 PTR_NEXT_SYSLLST1 PTR, /*POINTER TO NEXT ENTRY */
2 SYSLLTPN CHAR(3); /*LIBTYPE */
/*** */
/* VARIABLE LENGTH AREA FOR THE SERVICE GENERATED SYSLIB LIST */
/* NOTE: 3 DIFFERENT STRUCTURES DEFINED HERE FOR THE MINOR */
/* DIFFERENCES BETWEEN STAGING, PROMOTION, AND BASELINE */
/* DERIVED ENTRIES */
/*** */
/*** */
/* LIST 2 ENTRY DERIVED FROM STAGING */
/*** */
DCL 1 SYSLLST2_S BASED(WORKPTR2),
2 PTR_NEXT_SYSLLST2_S PTR, /*POINTER TO NEXT ENTRY */
2 SYSLFROM_S CHAR(1), /*=S FOR STAGING ENTRY */
2 SYSLATTR_PKG_S CHAR(10), /*PKG FOR THIS STG LIB */
2 SYSLATTR_FILLER_S CHAR(8),
2 SYSLAPPL_S CHAR(4), /*APPLICATION */
2 SYSLLIBT_S CHAR(3), /*LIBRARY TYPE */
2 SYSLSPEC_S CHAR(1), /*SPECIAL PROCESS IND */
2 SYSLSUBT_S CHAR(1), /*SPECIAL PROC SUBTYPE */
2 SYSLDSNM_S CHAR(1024) VARYING;
/*VARCHAR DSNAME */
/*** */
/* LIST 2 ENTRY DERIVED FROM PROMOTION */
/*** */
DCL 1 SYSLLST2_P BASED(WORKPTR2),
2 PTR_NEXT_SYSLLST2_P PTR, /*POINTER TO NEXT ENTRY */
2 SYSLFROM_P CHAR(1), /*=P FOR PROMOTION ENTRY */
2 SYSLATTR_SITE_P CHAR(8), /*PROMOTION SITE */
2 SYSLATTR_LEVEL_P CHAR(2), /*PROMOTION LEVEL */
2 SYSLATTR_NAME_P CHAR(8), /*PROMOTION NAME */
2 SYSLAPPL_P CHAR(4), /*APPLICATION */
2 SYSLLIBT_P CHAR(3), /*LIBRARY TYPE */
2 SYSLSPEC_P CHAR(1), /*SPECIAL PROCESS IND */
2 SYSLSUBT_P CHAR(1), /*SPECIAL PROC SUBTYPE */
2 SYSLDSNM_P CHAR(1024) VARYING;
/*VARCHAR DSNAME */
/*** */
/* LIST 2 ENTRY DERIVED FROM BASELINE */
/*** */
DCL 1 SYSLLST2_B BASED(WORKPTR2),
2 PTR_NEXT_SYSLLST2_B PTR, /*POINTER TO NEXT ENTRY */
2 SYSLFROM_B CHAR(1), /*=B FOR PROMOTION ENTRY */
2 SYSLATTR_FILLER_B CHAR(18),
2 SYSLAPPL_B CHAR(4), /*APPLICATION */
2 SYSLLIBT_B CHAR(3), /*LIBRARY TYPE */
2 SYSLSPEC_B CHAR(1), /*SPECIAL PROCESS IND */
2 SYSLSUBT_B CHAR(1), /*SPECIAL PROC SUBTYPE */
2 SYSLDSNM_B CHAR(1024) VARYING;
/*VARCHAR DSNAME */
/*** */
/* VARIABLE LENGTH AREA IN WHICH TO RETURN AN ALTERED LIST */
/* SEE SAMPLE EXIT HXPSYSL FOR DETAILS ON HOW TO DO THIS. */
/*** */
DCL 1 SYSLLST3 BASED(WORKPTR3),
2 PTR_NEXT_SYSLLST3 PTR, /*POINTER TO NEXT ENTRY */
2 SYSLIBNM CHAR(1024) VARYING;
/*VARCHAR DSNAME */
/*** */
/* VARIABLE LENGTH AREA FOR REFRESH SCOPE TO BE RETURNED TO ZMF */
/*** */
DCL 1 SYSLLST4 BASED(WORKPTR4),
2 PTR_NEXT_SYSLLST4 PTR, /*POINTER TO NEXT ENTRY */
2 SYSLREFP CHAR(10);
/*REFRESH SCOPE */
The method for traversing this variable length list is the same as that used in other functions. The 'anchor' pointer points to the first in the chain of entries (null if no chain exists). Each entry contains a pointer to the next entry (null at end of chain).
To return a modified syslib list you must generate a linked list, anchored at SYSLLST3-PTR, with the storage required for each list entry allocated from the LE heap with heaped=0. This is assumed by the ZMF function responsible for tidying up the list after it has been passed back.
In REXX we just make use of stem variables as is usual with a variable number of similar data items.
Sample exits are provided in the CMNZMF.SAMPLES distribution library. These examples show how to list all the information coming in to the exit.
The package syslib exit examples are:
CMNZMF.SAMPLES Library Member | Description |
---|---|
HXCSYSL | COBOL example |
HXPSYSL | PL/I example |
HXRSYSL | REXX example |
Select option S Specific from the HLL Exit Definition - Function Selection (CMNHLLMM) panel to define exits for the package syslib 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 1 of 1
Command ===> Scroll ===> CSR
Internal External + Active 1=LE Description +
Name Name 2=REXX Debug Userids +
------------------------------------------------------------------------------
SYSL00XM ______ NO 2 service call for package.list.syslib
Debug:_______ NO 2 ______________________________________
******************************* Bottom of data *******************************
LE-Language Variable Name | REXX Variable Name | Length | Purpose | Modifiable (Yes/No) |
---|---|---|---|---|
SYSLFUNC | function | 8 | Internal exit name | No |
SYSLDBUG | debugCall | 1 | Debug exit call (Y/N) | No |
SYSLORGN | callOrigin | 3 | ISPF = SPF XML Service = XML ZDD = ZDD ZMF4ECL = ECL |
No |
SYSLZMFS | zmfSubs | 1 | ZMF subsystem character | No |
SYSLPDB2 | db2Subs | 4 | Default Db2 subsystem for this ZMF | No |
SYSLUSER | userid | 8 | Userid for function calling this exit | No |
SYSLEXTN | externalName | 256 | External routine name defined for this exit | No |
SYSLPKGN | packageId | 10 | The package being acted on | No |
SYSLLTYP | componentType | 3 | Library type of component for which the syslib is being generated | No |
SYSLPROC | buildProc | 8 | Procedure to be used to build the component | No |
SYSLLANG | language | 8 | Language for the component | No |
SYSLPPSM | processPpkgAsSimple | 1 | If the component package is participating then treat it as simple (cf. audit option) | No |
SYSLPPID | processPpkgByInstallDate | 1 | Process participating packages by install date (cf. audit option) | No |
SYSLPPDP | processPpkgByDepartment | 1 | Process participating packages by department (cf. audit option) | No |
SYSLPLVL | packageLevel | 1 | 1 – simple 2 – complex 3 – super 4 – participating |
No |
SYSLPTYP | packageType | 1 | 1 – planned permanent 2 – planned temporary 3 – unplanned permanent 4 – unplanned temporary |
No |
SYSLCXPK | complexSuperPackage | 10 | If the component package is participating then this is its complex package | No |
SYSLPSTA | packageStatus | 3 | Package status (DEV, FRZ, etc) | No |
SYSLPINS | packageInsDate | 8 | Pkg Install Date yyyymmdd | No |
SYSLCRDT | packageCreateDate | 8 | Date pkg was created yyyymmdd | No |
SYSLCRTI | packageCreator | 8 | Userid under which pkg was created | No |
SYSLDEPT | packageDepartment | 4 | Pkg department | No |
SYSLWRQN | packageWorkRequest | 12 | Pkg work request number | No |
SYSLRQNM | requestorName | 25 | Pkg requestors name | No |
SYSLRQPH | requestorPhone | 15 | Pkg requestors phone | No |
SYSLLPST | lastPromoSite | 8 | Last promotion site | No |
SYSLLPLV | lastPromoLevel | 2 | Last promotion level | No |
SYSLLPNM | lastPromoName | 8 | Last promotion name | No |
SYSLLPDT | lastPromoDate | 8 | Last promotion date yyyymmdd | No |
SYSLLPID | lastPromoUserid | 8 | Last promotion userid | No |
SYSLPAC | lastPromoAction | 2 | FP – Full Promotion FD – Full Demotion SP – Selective Promotion SD – Selective Demotion |
No |
Repeated Group (Variable Length) | ||||
SYSLLTPN | pkgAllocLibType | 3 | Library type which is physically allocated to the components package | No |
Repeated Group (Variable Length) | ||||
SYSLFROM | pkgSyslib.whereFrom | 1 | S – staging P – Promotion B - Baseline |
No |
SYSLPKG or SYSLATTR_PKG_S | pkgSyslib.stagingPkg | 10 | If SYSLFROM=S then this is the package to which the staging library belongs | No |
SYSLPRST or SYSLATTR_SITE_P | pkgSyslib.promoSite | 8 | If SYSLFROM=P then this is the promotion site to which this promotion library belongs | No |
SYSLPRLV or SYSLATTR_LEVEL_P | pkgSyslib.promoLevel | 2 | If SYSLFROM=P then this is the promotion level (01-99) to which this promotion library belongs | No |
SYSLPRNM or SYSLATTR_NAME_P | pkgSyslib.promoName | 8 | If SYSLFROM=P then this is the promotion name (nickname) to which this promotion library belongs | No |
SYSLAPPL | pkgSyslib.appl | 4 | Application for this library | No |
SYSLLIBT | pkgSyslib.libType | 3 | Library type for this library | No |
SYSLSPEC | pkgSyslib.specialProcessInd | 1 | Special processing indicator for this libtype (e.g. D – Db2 and I – IMS) | No |
SYSLSUBT | pkgSyslib.specialSubType | 1 | Special processing subtype | No |
SYSLDSNM | pkgSyslib.name | Varchar | The syslib library or directory name | No |
Returned by Exit | ||||
SYSLGO | proceed | 3 | Set to ‘NO’ to stop the file tailoring process | Yes |
SYSLLONG | longMsg | 128 | Long error message text | Yes |
SYSLCHNG | dataChanged | 3 | This field must be set to YES if you wish to return changed values to ZMF. | Yes |
Repeated Group (Variable Length) | ||||
SYSLIBNM | adjustedSyslib | Varchar | Changed syslib library or directory name | Yes |
SYSL00XR
The SYSL00XR exit point is for the refresh service.
The data interface is much simpler than for SYSL00XM. Apart from common fields, we only pass the package id to SYSL00XR. This package id can contain one of the following:
This option | Specifies to Delete |
---|---|
All cached records. | |
appl | Cached records for this appl. |
applpkgnum | Only cached records for this package. The exit can pass back only common fields plus, optionally, a revised list of refresh criteria. |
The HLL exit definition panel (CMNHLLMN) for this function now has two entries:
CMNHLLMN HLL Exit Definition Row 1 to 2 of 2
Command ===> Scroll ===> CSR
Internal External + Active 1=LE Description +
Name Name 2=REXX Debug Userids +
----------------------------------------------------------------------
SYSL00XM ________ NO 2 service call for package list syslib
Debug: ________ NO 2 ____________________________________
-------------------------------------------------------------------------------
SYSL00XR _______ NO 2 service call->package.refresh.syslib
Debug: _______ NO 2 ____________________________________
*************************** Bottom of data *****************************
Only the fields up to (and including) SYSLPKGN are populated for the call to SYSL00XR.
The only data passed back from the exit (apart from the usual fields i.e. SYSLGO, SYSLCHNG, SYSLLONG) is the new repeating group.
LE field REXX var name Length Purpose Modifiable
SYSLREFP adjustedRefresh 10 Changed refresh criterion Yes
Any number of entries can be passed back from the exit. This allows you to query your own package ‘grouping’ data (i.e. if you are using a grouping paradigm outside of the usual complex/participating structures, which are already catered for by the package.syslib.refresh code). You can also add further packages to requests for a package syslib refresh. For example, if the PKG1 is passed to the exit and the grouping data suggests that PKG2 and 3 should also be refreshed, the exit can pass back the list PKG1, PKG2, PKG3.
Note
All packages for which the pkg syslib cache needs to be refreshed (i.e. deleted) need to be present in the list (including the original pkg).
SYSL00XL and SYSL01XL
There are two exits available for the Component Standard Language Extraction process. (Although this is not directly related to the package syslib process, the exits have been defined here to avoid a proliferation of functional areas.) On input, these exits take the following variables (REXX):
LE-Language Variable Name | REXX Variable Name | Length | Purpose | Modifiable (Yes/No) |
---|---|---|---|---|
STDLFUNC | function | 8 | Internal exit name | No |
STDLEXTN | externalName | 256 | External routine name defined for this exit | No |
STDLDBUG | debugCall | 1 | Debug exit call (Y/N) | No |
STDLORGN | callOrigin | 3 | ISPF = SPF XML Service = XML ZDD = ZDD ZMF4ECL = ECL |
No |
STDLZMFS | zmfSubs | 1 | ZMF subsystem character | No |
STDLPDB2 | db2Subs | 4 | Default Db2 subsystem for this ZMF | No |
STDLUSER | userid | 8 | Userid for function calling this exit | No |
STDLCOMP | component | 256 | Component name | No |
STDLLTYP | componentType | 3 | Component library type | No |
STDLAPPL | application | 4 | Component application | No |
STDLPROC | buildProc | 8 | Component build procedure | No |
STDLLANG | language | 8 | Component language | Yes |
STDLGO | proceed | 3 | Set to 'NO' to stop the process | Yes |
STDLSHRT | shortMsg | 24 | Short error message text | Yes |
STDLLONG | longMsg | 128 | Long error message text | Yes |
STDLCHNG | dataChanged | 3 | This field must be set to YES if you wish to return changed values to ZMF. | Yes |
Note the following:
-
buildProc will only be populated for SYSL01XL and only for like-SRC components.
-
language will only be populated for SYSL00XL if CMNEX038 has already set it.
-
The only variable that can be passed back to the service is language.
Sample exits are provided which show how to display the data items passed to SYSL00XL and SYSL01XL. They also show how to set a standard language based on certain selection criteria (appl and libtype in this case). The exits are:
-
HXCSTDL - COBOL
-
HXPSTDL - PL/I
-
HXRSTDL - REXX