Package User Information
Package User Information is an optional facility that stores data in 71 fields of various lengths on the package master. You enter Package User Information on panels that are displayed when you create a package and when you update package information. The information stored in Package User Information fields is available for processing by several exits, and it is available in file tailoring for installation JCL.
The Package User Information facility is designed to be flexible so that you can customize it to meet your needs for package level user data. You can customize up to two data entry panels, selecting the fields you want to display, labeling the input fields with names you choose, and coding edit rules and other panel processing to satisfy your requirements. You can use Package User Information data in program logic in certain ChangeMan ZMF exit programs. You can choose your own names for the variables that are made available to file tailoring for install JCL.
Package user information is available in all remote file tailoring and ISPF driven stage, recompile and relink package functions, and all exit calls which are package driven.
Package User Information Field Names
Package User Information fields have different names on input panels, in copybook CMNEXITS that represents how they are stored on the package master, and in file tailoring for install JCL. The field names follow a convention that relates the name representing the data stored on the package master to the other names that refer to the same data. This naming convention also tells you how long the data field is.
The following example shows the names that identify a 3-byte Package User Information field in various ChangeMan ZMF functions. In the field naming convention:
-
ll represents the length of the field in bytes.
-
nn is a field identifier that is unique among fields of the same length.
Where Name is Used | Name | Modifiable? | Example |
---|---|---|---|
Input Panels | USRllnn | No | USR0301 |
Copybook CMNEXITS | IXP$llnn | No | IXP$0301 |
File Tailoring | USRllnn | Yes | USR0301 |
...
There are a total of 71 Package User Information fields. They vary in length from 1 byte to 72 bytes. This table shows how many fields of each length are stored on the package master:
Field Length | Count | Field Names on ISPF Panels | CMNEXITS Field Names (Package Master) | Default File Tailoring Variable Names | ZDDOPTS Variable Names |
---|---|---|---|---|---|
1 | 15 | USR0101 to USR0115 | IXP$0101 to IXP$0115 | USR0101 to USR0115 | UserVarLen101 - UserVarLen115 |
2 | 11 | USR0201 to USR0211 | IXP$0201 to IXP$0211 | USR0201 to USR0211 | UserVarLen201 - UserVarLen211 |
3 | 10 | USR0301 to USR0310 | IXP$0301 to IXP$0310 | USR0301 to USR0310 | UserVarLen301 - UserVarLen310 |
4 | 10 | USR0401 to USR0410 | IXP$0401 to IXP$0410 | USR0401 to USR0410 | UserVarLen401 - UserVarLen410 |
8 | 10 | USR0801 USR0810 | IXP$0801 to IXP$0810 | USR0801 to USR0810 | UserVarLen801 - UserVarLen810 |
16 | 5 | USR1601 to USR1605 | IXP$1601 to IXP$1605 | USR1601 to USR1605 | UserVarLen1601 - UserVarLen1605 |
44 | 5 | USR4401 to USR4405 | IXP$4401 to IXP$4405 | USR4401 to USR4405 | UserVarLen4401 - UserVarLen4405 |
72 | 5 | USR7201 to USR7205 | IXP$7201 to IXP$7205 | USR7201 to USR7205 | UserVarLen7201 - UserVarLen7205 |
...
The last column of the table show the default names for variables made available to file tailoring for install JCL. You can change the default variable names to names that are meaningful to you.
Package User Information Input Panels
Your ChangeMan ZMF global administrator activates the Package User Information feature by selecting the following option on the Global Parameters - Part 5 of 8 (CMNGGP05) panel:
_ Enable package user variables
If the Package User Information feature is activated, two sample ISPF input panels are displayed when you create a change package or update package information.
You can customize these panels to display and process the Package User Information fields that you want to use to store information on the package master.
The first Package User Information panel displayed is the Create - Sample Package User Panel 1 (CMNDPUP1).
CMNDPUP1 CREATE - Sample Package User Panel 1
Command ===>
Enter "yes" or "no" to indicate value of variable
Field 1 . . . . . . . NO
Field 2 . . . . . . . NO
Field 3 . . . . . . . NO
Field 4 . . . . . . . NO
Field 5 . . . . . . . NO
Field 6 . . . . . . . NO
Enter "/" to select option
/ Next panel
...
If you select the Next panel option on the Create - Sample Package User Panel 1, the Create - Sample Package User Panel 2 (CMNDPUP2) is displayed.
CMNDPUP2 CREATE - Sample Package User Panel 2
Command ===>
Enter "yes" or "no" to indicate value of variable:
Test Value1 . . . . . NO
Test Value2 . . . . . NO
Test Value3 . . . . . NO
Test Value4 . . . . . NO
...
Package User Information and Exits
Package User Information fields are included in copybook CMNEXITS and are available in every package related exit program. These exits are for ChangeMan ZMF basic package functions:
CMNEX001, CMNEX002, CMNEX003, CMNEX007, CMNEX008, CMNEX009, CMNEX010, CMNEX014, CMNEX019, CMNEX023, CMNEX024, CMNEX025, CMNEX026, CMNEX027, CMNEX028, CMNEX029, CMNEX030, CMNEX033, CMNEX036, CMNEX037, CMNEX038,
CMNEX041, CMNEX043
For package audit, package user information is available in exits CMNEX020, CMNEX021, and CMNEX031.
For ERO, package user information is available in exit CMNEX210.
Implementing the Package User Information Facility
Follow the steps in this section to modify Package User Information components delivered in ChangeMan ZMF libraries so that they satisfy your needs for package level user data.
Choose Package User Information Fields
-
List the kind of data you want to store for a change package and map your list to the 71 fields available in the Package User Information facility.
-
Choose the shortest fields that will accommodate the data that you will store. See Package User Information Field Names for a description of the 71 available fields.
Modify Sample Package User Information Panels
-
Copy sample Package User Information panels CMNDPUP1 and CMNDPUP2 to your custom panels library from the CMNZMF PANELS library unloaded from the ZMF installer.
-
Modify the )BODY section of the panels to change the title displayed on the panels, and to display field tags that identify the data users should enter.
-
Modify the )INIT section to initialize blank fields. Modify the ZVARS statement to associate panel fields with the appropriate Package User Information field name.
-
Modify the )PROC section to validate information entered by the user and to perform cross-field edits, if required.
Note
Panel field name USR0199 is reserved for the Next Panel field on panel CMNDPUP1 to determine whether the second Package User Information panel CMNDPUP2 will be displayed. Even if you do not use panel CMNDPUP2, and alter the panel so that you do not display field USR0199 on CMNDPUP1, you must still set a value for this field.
-
Copy sample help panels CMN12350 and CMN12355 to your custom panels library from the CMNZMF PANELS library unloaded from the ZMF installer.
-
Modify the panels to describe the fields on your custom CMNDPUP1 and CMNDPUP2 panels respectively.
Modify Exits
Package User Information fields in copybook CMNEXITS are populated with your data stored on the package master when the exit is called.
-
Copy the exit program source you want to modify to your custom source library from the CMNZMF ASMSRC library delivered in the ChangeMan ZMF installer.
-
Modify exit program logic to use the Package User Information fields in copybook CMNEXITS.
See the User Exits chapter for general instructions for enabling and coding ChangeMan ZMF exit programs. Coding for exit program CMNEX023 is described in the next topic.
Modify Exit 23 For Install JCL File Tailoring
If you want to use Package User Information in file tailoring for install JCL, you must enable exit program CMNEX023. This exit defines ISPF variables for Package User Information in the ISPF session used by file tailoring.
You can use CMNEX023 to change the names of the ISPF variables that are defined in the ISPF session for install JCL file tailoring. You can also use CMNEX023 to populate variables with other information available to the exit.
The sample code delivered in CMNEX023 shows modifications to accomplish both of these objectives. For example, the default file tailoring variable USR0115 is renamed to X23PTYP, and whatever data was stored on the package master for that field is overlaid with the Package Type that is in CMNEXITS field IXP$PTYP.
Note
When you enable exit program CMNEX023 as it is delivered in the ZMF installer, some Package User Information variables defined to file tailoring for install JCL will be modified by the sample code in the exit. Check the program comments, the variable names in #SPFVARS, and the procedure code at label EXT$0000 to ensure that the sample code will not interfere with what you want to do in file tailoring for install JCL. You may need to change the sample code to restore the default Package User Information ISPF variable names and field contents.
Modify Install Skeletons
-
Copy install skeletons to your custom skeleton library from the CMNZMF SKELS library unloaded from the ZMF installer.
-
Modify those skeletons to use the ISPF variables you defined in exit program CMNEX023.
Enable Package User Information
In Global Administration Parameters (=A.G.1), select the Enable package user variables field on the Global Parameters - Part 5 of 8 panel (CMNGGP05):
CMNGGP05 Global Parameters - Part 5 of 8
Command ===>
Audit package lock . . . . OPTIONAL (Always/Never/Optional)
Enter "/" to select option
_ Job name increment override
_ Use zprefix in batch jobs
_ Suppress msgs in dis/ins/bas jobs
_ Create component work records
_ Force audit of unplanned packages
_ Allow link packages
_ Memo delete empty packages only
/ Enable package user variables
_ Enable component user variables
_ Add user variables to package list table
_ Allow component in multiple applications
_ Auto scratch load member with source
_ Run health checks
Approval Restrictions
_ Package creator cannot approve
_ Package worker cannot approve
_ Only 1 approval per user
...