Skip to content

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