Skip to content

Package Update

This section describes the package-update functional area of the high-level language exits. The 4-character exit name identifier is PUPD.

Select option 3 Package Update from the HLL Exit Definition - Function Selection (CMNHLLMM) panel to define customized ISPF variables for the package-update 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.

The panels around which exit points will be placed are listed below. The internal exit name (also known as function code) is PUPD0pnn, 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 (usually to provide model parameters displayed on the panel) and the post-exit is taken after the panel has been displayed (for example, for input validation or enforcement).

Package-update exits are only taken when panels are displayed in input mode.

For package update the package already exists and each update function is updating a specific set of package information. The data format consists of a fixed core of fields, which is provided on every exit call, followed by a single variable length set of information pertaining to the specific update being applied. The map to be used will depend on the exit function code (internal exit name).

Package Update:

Panel ID Description Associated Package-Create Panel ID Exit Name
CMNPGNL1 Updates control information CMNUPD01 PUPD0p01
CMNPGNL2 Updates package description CMNUPD02 PUPD0p02
CMNPGNL3 Updates installation instructions CMNUPD03 PUPD0p03
CMNPGNL4 Updates scheduling dependencies CMNUPD04 PUPD0p04
CMNPGNL5 Updates affected applications CMNUPD05 PUPD0p05
CMNONSTE Updates install information CMNUPD06 PUPD0p06
CMNPRSTI Updates site install information CMNUPD07 PUPD0p07
CMNPGNL6 Updates complex/super package information CMNUPD08 PUPD0p08
CMNDPUP1/CMNDPUP2 Updates package user options PUPD0pPU
CMNRMBRO Updates ERO information PUPD0pER
CMNDB2UP Updates Db2 option special libtypes PUPD0pD2
CMNIMSYS Updates IMS option physical system information PUPD0pIS
CMNIMACB Updates IMS options ACB definitions PUPD0pIA
CMNIMDBD Updates IMS option DBD definitions PUPD0pID
CMNIMPSB Updates IMS option PSB definitions PUPD0pIP
CMNQRYL2 Monitor Limbo / All PUPD01M6 / M7

Note

The PUPD01M6 (Monitor ALL site) and PUPD01M7 (Monitor DP site) exits cannot change any data values. They can be used to validate the proposed change of install date and, if necessary, reject the update with a message.

In order to allow the cursor to be positioned at specific panel fields, a number relating to the panel field in question will be passed back in the XPUPOCURS field. These numbers are documented in the supplied copybook for the function (and, eventually, in the lists of REXX field names). You must make sure that your exit returns a field number that is valid for the panel about to be (re)displayed. If the field number is not valid, a dialog error results.

Each package-update exit call, if it requires variable blocked information, only contains a single block as relevant to the call.

Note

This is different from package create, which contains them all if they are available, null if not).

***
* VARIABLE BLOCK POINTERS
* EACH POINTS TO A DIFFERENT VARIABLE LENGTH SECTION OF DATA.
* THEY APPLY TO EACH SPECIFIC TYPE OF PACKAGE UPDATE.
* THEY REDEFINE THE SAME AREA OF STORAGE AND ARE MUTUALLY
* EXCLUSIVE. PLEASE REFER TO THE VALUE IN PUPDFUNC FOR WHICH
* WHICH MAP TO USE.
*
* EACH ENTRY IN A VARIABLE LENGTH BLOCK CONSISTS OF THE DATA
* FOLLOWED BY A POINTER TO THE NEXT ENTRY. WHEN THAT POINTER
* IS NULL THEN THERE ARE NO FURTHER ENTRIES IN THE BLOCK.
***
    03 PUPDVARB-PTR     USAGE IS POINTER.
***
* PUPDFUNC = 'PUPD0002' OR 'PUPD0102'
*
* PACKAGE DESCRIPTION - UP TO 46 LINES OF 72 BYTES
***
01 PUPDVB1.
    03 PUPDPDSC             PIC X(72).
*                                      LINE OF DESCRIPTION (087)
    03 PTR-NEXT-PUPDVB1     POINTER.
*                                      POINTER TO NEXT LINE
***
* PUPDFUNC = 'PUPD0003' OR 'PUPD0103'
*
* PKG IMPLEMENTATION INSTRUCTIONS - UP TO 46 LINES OF 72 BYTES
***
01 PUPDVB2 REDEFINES PUPDVB1.
    03 PUPDPIMI             PIC X(72).
*                                      PKG IMPL INSTRUCTION(088)
03 PTR-NEXT-PUPDVB2         POINTER.
*                                      POINTER TO NEXT LINE

The user exit should follow the pointer chains for the single repeating group until the pointer is null.

If PUPDLOKD is set to |yes|, data fields on the related panel will be set to output only. The list of panels for which this applies is:

Panel ID Description Associated Package-Create Panel ID Exit Name
CMNPGNL1 Updates control information CMNUPD01 PUPD0001
CMNPGNL2 Updates package description CMNUPD02 PUPD0002
CMNPGNL3 Updates installation instructions CMNUPD03 PUPD0003
CMNPGNL4 Updates scheduling dependencies CMNUPD04 PUPD0004
CMNPGNL5 Updates affected applications CMNUPD05 PUPD0005
CMNONSTE Updates install information CMNUPD06 PUPD0006
CMNPRSTI Updates site install information CMNUPD07 PUPD0007
CMNPGNL6 Updates complex/super package information CMNUPD08 PUPD0008
CMNDB2UP Updates Db2 option special libtypes PUPD00D2
CMNIMSYS Updates IMS option physical system information PUPD00IS
CMNIMACB Updates IMS options ACB definitions PUPD00IA
CMNIMDBD Updates IMS option DBD definitions PUPD00ID
CMNIMPSB Updates IMS option PSB definitions PUPD00IP

PUPDSHRT and PUPDLONG are used to set a message on the next panel/window to be displayed.

If PUPDGO is set to NO, the fields PUPDSHRT, PUPDLONG, and PUPDCURS will be used to set an error message and the associated panel will be (re)displayed by the client.

If the user exit wishes to change any of the data fields, it does that in place and sets PUPDCHNG to |yes|. If PUPDCHNG is not set to |yes|, any data changes are ignored by the client. Note that while the full exit data structure is passed to the exits driven around the package user variable panels (CMNDPUP1/2) only package user variables may be updated by these exits.

A single data structure is passed to all of these exits.

Data Interface for the Package-Update Exits

LE-Language Variable Name REXX Variable Name Length Purpose Modifiable Cursor Field No.
PUPDFUNC function 8 Function code No
PUPDDBUG debugCall 1 Debug exit call (Y/N) No
PUPDORGN callOrigin 3 ISPF=SPF XML Service=XML ZDD=ZDD ZMF4ECL=ECL No
PUPDZMFS zmfSubs 1 ZMF subsystem Id No
PUPDPDB2 db2Subs 4 Primary Db2 subsystem No
PUPDUSER userid 8 User Id No
PUPDEXTN externalName 256 External name for exit No
PUPDAPPL applName 4 Application No
PUPDLOKD dataLocked 3 Fields locked? (yes/NO) yes
PUPDGO proceed 3 Proceed? (yes/NO) yes
PUPDSHRT shortMsg 24 Short message yes
PUPDLONG longMsg 128 Long message yes
PUPDCURS cursorField 3 Cursor tag yes
PUPDCHNG dataChanged 3 Data changed? (yes/NO) yes
PUPDPKGN packageName 10 Package name No
PUPDCTSI packageCreator 8 User id of package creator No
PUPDPLVL packageLevel 1 Package level yes 001
PUPDPTYP packageType 1 Package type yes 002
PUPDPSTT packageStatus 1 package status No
PUPDCSPK complexSuperPackageStatus 1 complex package status No
PUPDRSCD reasonCode 3 Reason code yes 004
PUPDCSPK complexSuperPackage 10 Complex package yes 003
PUPDDEPT packageDepartment 4 department yes 005
PUPDNAME requestorName 25 Requester name yes 006
PUPDPHON requestorPhone 15 Requester phone yes 007
PUPDPCAC problemActionCode 1 Contingency action code yes 008
PUPDOPCA otherProblemAction 44 Other contingency action yes 009
PUPDSCHD schedulerType 1 Scheduler yes 010
PUPDTCDU tempChangeDuration 3 Temporary change duration yes 011
PUPDWRQN packageWorkRequest 12 Work request number yes 012
PUPDTITL packageTitle 255 Package title yes 013
PUPDUPAN userPanel 8 Package user variable panel yes
PUPDNTUS notifyUser 8 Notify user Yes 161
PUPDOPRF optsProfile 8 Used to select the ZDDOPTS profile for the display of user options for the ZMF Client Pack yes

Package User Variables

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPD01 userVarLen101-userVarLen115 1 * 15 Set of fifteen 1-byte package user variables yes 014-028
PUPD0199 userVarLen199 1 (Reserved) yes
PUPD02 userVarLen201 - userVarLen211 2 * 11 Set of eleven 2-byte package user variables yes 029-039
PUPD03 userVarLen301-310 3 * 10 Set of ten 3-byte package user variables yes 040-049
PUPD04 userVarLen401-410 4 * 10 Set of ten 4-byte package user variables yes 050-059
PUPD08 userVarLen801-810 8 * 10 Set of ten 8-byte package user variables yes 060-069
PUPD16 userVarLen1601-1605 16 * 5 Set of five 16-byte package user variables yes
PUPD44 userVarLen4401-4405 44 * 5 Set of five 44-byte package user variables yes 075-079
PUPD72 userVarLen7201-7205 72 * 5 Set of five 72-byte package user variables yes 080-084

Release and Release Area

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDRLSM release 8 Release yes
PUPDRARE releaseArea 8 Release area yes 086

Package Description

LE-Language Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDPDSC packageDesc.n 72 * 46 Up to forty-six 72-byte lines of description yes 087

Implementation Instructions

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDPIMI packageImplInst.n 72 * 46 Up to forty-six 72-byte lines of implementation instructions yes 088

Scheduling Information

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDSSSJ schedulingInfo.successorJobName.n 8 Successor job name yes 089
PUPDSSPJ schedulingInfo.predecessorJobName.n 8 Predecessor job name yes 090

Participating Packages

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDPPAP

PUPDPPNM
partPackageName.n(10) 4

6
Set of n 4 byte and 6 byte participating package appl/numbers (LE), n 10 byte participating package names (REXX) yes 091

Affected Applications

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDAAPP affectedApplName.n 4 Set of n 4-byte application names(n is limited only by storage constraints) yes 092

Install Site Information

Set of n sets of installation site information (n is limited only by storage constraints

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDSITE siteInfo.siteName.n 8 Site name yes 093
PUPDINDT siteInfo.installDate.n 8 Install date yes 094
PUPDFINT siteInfo.fromInstallTime.n 6 Install from time yes 095
PUPDTINT siteInfo.toInstallTime.n 6 Install to time yes 096
PUPDOANM siteInfo.contactName.n 25 Originating analyst yes 097
PUPDOAPH siteInfo.contactPhone.n 15 Analyst phone number yes 098
PUPDAANM siteInfo.alternateContactName.n 25 Alternative analyst yes 099
PUPDAAPH.n siteInfo.alternateContactPhone.n 15 Alternative analyst phone number yes 100

Db2 Libtype Information

Set of n sets of Db2 libtype information (n is limited only by storage constraints

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDDLTP db2Info.libType.n 3 Db2 Libtype yes 101
PUPDDSUB db2Info.subType.n 1 Db2 Sub type yes 102
PUPDEOSC db2SqlTerminationChar.n 1 SQL end of sentence yes 103

IMS System Information

Set of n sets of IMS system information (n is limited only by storage constraints

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDISID imsSysInfo.imsControl Region.n 4 IMS system Id yes 104
PUPDISRS imsSysInfo.imsSiteName.n 8 ZMF remote site yes 105
PUPDISLN imsSysInfo.imsLogicalSite.n 8 IMS logical site name yes 106
PUPDISOP imsSysInfo.isImsGlobalActivationEnabled.n 1 IMS option activated yes 107
PUPDISDV imsSysInfo.imsDevCharSuffix.n 1 IMS device character yes 108
PUPDISMF imsSysInfo.isMfsAlwaysGenerated.n 1 Process MFS (Y/N)? yes 109
PUPDISPS imsSysInfo.isPsbAlwaysGenerated.n 1 Process PSB (Y/N)? yes 110
PUPDISDB imsSysInfo.isDbdAlwaysGenerated.n 1 Process DBD (Y/N)? yes 111
PUPDISAC imsSysInfo.isAcbAlwaysCreatedForPcbs.n 1 Process ACB (Y/N)? yes 112
PUPDISBU imsSysInfo.imsBackupModelLib.n 25 IMS back-up model data set name yes 113
PUPDISS1 imsSysInfo.imsGenMacroComponent.n 8 Stage 1 gen member name yes 114
PUPDISRL imsSysInfo.imsResLib.n 44 IMS RESLIB yes 115
PUPDISML imsSysInfo.imsMacLib.n 44 IMS MACLIB yes 116
PUPDISMS imsSysInfo.imsModStatLib.n 44 IMS MODSTAT yes 117
PUPDISGM imsSysInfo.imsGenMacroStageLib.n 44 IMS sysgen MACLIB yes 118
PUPDISPL imsSysInfo.imsPsbLib.n 44 IMS PSBLIB yes 119
PUPDISDL imsSysInfo.imsDbdLib.n 44 IMS DBDLIB yes 120
PUPDISAL imsSysInfo.imsAcbLib.n 44 IMS ACBLIB yes 121
PUPDISFL imsSysInfo.imsFormatLib.n 44 IMS FMTLIB yes 122
PUPDISRF imsSysInfo.imsRefLib.n 44 IMS referal yes 123

IMS ACB Information

Set of n sets of IMS system information (n is limited only by storage constraints)

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDIAID imsAcbInfo.imsControlRegion.n 4 IMS system Id yes 124
PUPDIARS imsAcbInfo.imsSiteName.n 8 ZMF remote site yes 125
PUPDIALN imsAcbInfo.imsLogicalSite.n 8 IMS logical site name yes 126
PUPDIATY imsAcbInfo.acbStatementType.n 3 IMS ACB type yes 127
PUPDIACT imsAcbInfo.acbGenStatementType.n 8 ACB control word yes 128
PUPDIASR imsAcbInfo.component.n 8 ACB source name yes 129
PUPDIATG imsAcbInfo.targetComponentType.n 8 ACB target name yes 130
PUPDIALT imsAcbInfo.componentType.n 3 ACB libtype yes 131
PUPDIATL imsAcbInfo.targetComponentType.n 3 ACB target libtype yes 132

IMS PSB/DBD Information

Set of n sets of IMS system information (n is limited only by storage constraints)

LE-Lang Var Name REXX Var Name Length Purpose Modifiable Cursor Field No.
PUPDIPID imsDbdPsbInfo.imsControlRegion.n 4 IMS system Id Yes 133
PUPDIPRS imsDbdPsbInfo.imsSiteName.n 8 ZMF remote site Yes 134
PUPDIPLN imsDbdPsbInfo.imsLogicalSite.n 8 IMS logical site name Yes 135
PUPDIPCT imsDbdPsbInfo.controlStatement.n 8 Control word Yes 136
PUPDIPSR imsDbdPsbInfo.component.n 8 Source name Yes 137
PUPDIPLT imsDbdPsbInfo.componentType.n 3 Libtype Yes 138
PUPDIPOV imsDbdPsbInfo.overrideStatement.n 64 Override statement Yes 139
PUPDIPOR imsDbdPsbInfo.originalStatement.n 64 Original statement Yes 14