Caller to Exit Cross Reference
HLL exits are called either by client code or by service code.
The service exits all have X in the seventh position of the exit point name, for example, BULD00XC, and are called regardless of where the original request for the service came from.
There are four categories of "caller" which are identified to each exit in the callOrigin field:
-
SPF - the exit has been called by an ISPF client function. That function can take all client exits defined for its functional path and the service exits for whichever service the function eventually drives. The list of exits driven will differ from one function to the next.
-
ZDD - the exit has been called by a ZDD client function. Note that there is no one-toone correlation between ISPF client processing and any other client processing. There could be (and usually is) a completely different way of presenting the function to the user in each client. In some areas the correlation is close, in others it is not. Please refer to the table that follows for a list of which client exits are called by ZDD. Note that any services driven by the ZDD client will also take the relevant service defined HLL exit points.
-
ECL - the exit has been called by a ZMF4ECL (ZMF for Eclipse) client function. The same comments as made for ZDD apply to ZMF4ECL.
-
XML - anything else that drives a ZMF XML service (so, for example, direct service invocation from custom REXX execs or REST API calls). ChangeMan ZMF has no control over client code in these cases and so only the service-oriented exits will be taken.| |Y| | |ou may implement whatever business logic| |Y| | |ou want in the service exits and know that it will be driven regardless of which client invoked the service.
The client exits allow| |Y| | |ou to modify the information gathered from, and actions precipitated by, the normal flow of the three clients. To re-emphasize, there is no one-to-one correlation between the three clients function flows.
To apply business logic across the board (regardless of which client is being used) then the relevant service exit can be used.
However, the service is usually only invoked at the end of a functional process and if custom validation throws out the service request it may be frustrating for a client user to be told this only after progressing through many panels/windows of data gathering.
Thus, the client exits are there to allow "real time" validation (etc.) to be performed.
The service exits are informed which of the recognized categories have invoked this service (i.e. callOrigin will be one of "SPF", "ZDD", "ECL", "XML") so that, if| |Y| | |ou have implemented client exits to do certain validation (etc.) then| |Y| | |ou needn't repeat this processing again in the service exit.| |Y| | |ou can implement logic so that the same validation is only performed if the origin of the service request is identified as "XML" (for example).
The following table lists all the currently available HLL exits along with check columns to show who takes them.
Internal Exit Name | Short Description | Service Exit | ISPF | ZDD | ZMF4ECL |
---|---|---|---|---|---|
APRV00XM | pre service call for approve | Y | n/a | n/a | n/a |
APRV01XM | post service call for approve | Y | n/a | n/a | n/a |
APRV0101 | list of packages to be approved | Y | |||
APRV0102 | approve/reject option menu | Y | |||
APRV0103 | approver entity list | Y | Y | Y | |
APRV0004 | pre checkoff comments | Y | Y | Y | |
APRV0104 | post checkoff comments | Y | Y | Y | |
APRV0105 | reject reasons entity selection | Y | |||
APRV0006 | pre reject reasons text | Y | Y | Y | |
APRV0106 | post reject reasons text | Y | Y | Y | |
AUDT00AR | pre autoresolve job submission | Y | |||
AUDT01JB | post all audit job processing | Y | |||
AUDT00RC | pre audit job setting of package RC | Y | |||
AUDT00UV | pre user variables | Y | Y | Y | |
AUDT01UV | post user variables | Y | Y | Y | |
AUDT00XM | pre audit job submission service | Y | n/a | n/a | n/a |
AUDT01XM | post audit job submission service | Y | n/a | n/a | n/a |
AUDT0001 | pre audit submission panel | Y | Y | Y | |
AUDT0101 | post audit submission panel | Y | Y | Y | |
AUDT0002 | pre application in scope panel | Y | Y | Y | |
AUDT0102 | post application in scope panel | Y | Y | Y | |
BULD01DL | post cmpnt delete selection | Y | Y | ||
BULD01LO | post relink output library selection | Y | Y | ||
BULD01LR | post relink library selection | Y | Y | ||
BULD01LT | post relink member list | Y | |||
BULD00L0 | pre initial relink (rebind) panel | Y | Y | ||
BULD01L0 | post initial relink (rebind) panel | Y | Y | ||
BULD00L1 | pre relink job submission | Y | Y | Y | |
BULD01L1 | post relink job submission | Y | Y | Y | |
BULD01RC | post recompile confirmation | Y | |||
BULD01RL | post recompile library selection | Y | |||
BULD01RP | post promotion library selection | Y | |||
BULD01RR | post release library selection | Y | |||
BULD00R0 | pre initial recompile panel | Y | |||
BULD01R0 | post initial recompile panel | Y | |||
BULD00R1 | pre standard recompile submission | Y | Y | Y | |
BULD01R1 | post standard recompile submission | Y | Y | Y | |
BULD01R2 | post recompile component list | Y | |||
BULD00R3 | pre mass/batch recompile submission | Y | Y | Y | |
BULD01R3 | post mass/batch recompile submission | Y | Y | Y | |
BULD00US | pre component user variables | Y | Y | Y | |
BULD01US | post component user variables | Y | Y | Y | |
BULD00UV | pre user variables | Y | Y | Y | |
BULD01UV | post user variables | Y | Y | Y | |
BULD00XB | pre BUILD xml service | Y | n/a | n/a | n/a |
BULD01XB | post BUILD xml service | Y | n/a | n/a | n/a |
BULD00XC | pre CHECKIN xml service | Y | n/a | n/a | n/a |
BULD01XC | post CHECKIN xml service | Y | n/a | n/a | n/a |
BULD00XD | pre DELETE xml service | Y | n/a | n/a | n/a |
BULD01XD | post DELETE xml service | Y | n/a | n/a | n/a |
BULD00XL | pre RELINK xml service | Y | n/a | n/a | n/a |
BULD01XL | post RELINK xml service | Y | n/a | n/a | n/a |
BULD00XR | pre RECOMPILE xml service | Y | n/a | n/a | n/a |
BULD01XR | post RECOMPILE xml service | Y | n/a | n/a | n/a |
BULD0101 | post package component list | Y | Y | ||
BULD0002 | pre stage from dev initial panel | Y | Y | Y | |
BULD0102 | post stage from dev initial panel | Y | Y | Y | |
BULD0103 | post stage from dev member selection | Y | Y | Y | |
BULD0004 | pre standard stage job submission | Y | Y | Y | |
BULD0104 | post standard stage job submission | Y | Y | Y | |
BULD0005 | pre mass stage job submission | Y | Y | Y | |
BULD0105 | post mass stage job submission | Y | Y | Y | |
BULD0106 | post procedure selection | Y | |||
BULD0107 | post language selection | Y | |||
BULD0108 | post library type selection | Y | |||
BULD0009 | pre Like-O std stage job submission | Y | Y | Y | |
BULD0109 | post Like-O std stage job submission | Y | Y | Y | |
BULD0010 | pre Like-O mass stg job submission | Y | Y | ||
BULD0110 | post Like-O mass stg job submission | Y | Y | ||
BULD0111 | post recfm=U dev stage mbr selection | Y | |||
BULD0012 | pre component selection parameters | Y | |||
BULD0112 | post component selection parameters | Y | |||
BULD0015 | pre component general description | Y | |||
BULD0115 | post component general description | Y | |||
BULD0117 | post valid staging line commands | Y | |||
BULD0118 | post DB2 subsystem selection | Y | |||
BULD0019 | pre batch stage jobcard definition | Y | |||
BULD0119 | post batch stage jobcard definition | Y | |||
BULD0123 | post dev stg hfs file selection | Y | Y | ||
BULD0025 | pre extract SP from DB2 panel | Y | Y | ||
BULD0125 | post extract SP from DB2 panel | Y | Y | ||
BULD0026 | pre mass rebuild job submission | Y | |||
BULD0126 | post mass rebuild job submission | Y | |||
CKOT01CK | post checkout entry panel | Y | |||
CKOT01CL | post component list for pkg ckot | Y | |||
CKOT01DL | post component delete | Y | |||
CKOT01LB | post library list | Y | |||
CKOT01LT | post libtype display | Y | |||
CKOT01MS | post member selection list | Y | Y | Y | |
CKOT01PL | post promotion library list | Y | |||
CKOT00UV | pre user variables | Y | Y | Y | |
CKOT01UV | post user variables | Y | Y | Y | |
CKOT00XM | pre service call | Y | n/a | n/a | n/a |
CKOT01XM | post service call | Y | n/a | n/a | n/a |
CKOT0001 | pre checkout selection criteria | Y | Y | Y | |
CKOT0101 | post checkout selection criteria | Y | Y | Y | |
CKOT0002 | pre batch checkout panel | Y | Y | ||
CKOT0102 | post batch checkout panel | Y | Y | ||
CKOT0003 | pre checkout from package entry | Y | |||
CKOT0103 | post checkout from package entry | Y | |||
FREZ00UF | pre package freeze/unfreeze panel | Y | |||
FREZ01UF | post package freeze/unfreeze panel | Y | Y | ||
FREZ00UV | pre user variables | Y | Y | ||
FREZ01UV | post user variables | Y | Y | Y | |
FREZ01U1 | selective component freeze/unfreeze | Y | Y | Y | |
FREZ01U2 | selective utility freeze/unfreeze | Y | |||
FREZ00XM | pre package freeze service | Y | n/a | n/a | n/a |
FREZ01XM | post package freeze service | Y | n/a | n/a | n/a |
FREZ00XR | pre selective refreeze service | Y | n/a | n/a | n/a |
FREZ01XR | post selective refreeze service | Y | n/a | n/a | n/a |
FREZ00XU | pre selective unfreeze service | Y | n/a | n/a | n/a |
FREZ01XU | post selective unfreeze service | Y | n/a | n/a | n/a |
FREZ0101 | package freeze submenu | Y | Y | Y | |
FREZ0002 | pre batch freeze submit panel | Y | Y | Y | |
FREZ0102 | post batch freeze submit panel | Y | Y | Y | |
FTLR00BA | install/baseline file tailoring | Y | |||
FTLR00BL | build job file tailoring | Y | |||
FTLR00BP | base ZMF promotion file tailoring | Y | |||
FTLR00EB | ERO autoresolve file tailoring | Y | |||
FTLR00EP | ERO promotion file tailoring | Y | |||
PCRE00PU | pre package user options | Y | Y | Y | |
PCRE01PU | post package user options | Y | Y | Y | |
PCRE00XM | pre package create xml service | Y | n/a | n/a | n/a |
PCRE01XM | post package create xml service | Y | n/a | n/a | n/a |
PCRE0001 | pre initial pkg create panel | Y | Y | Y | |
PCRE0101 | post initial pkg create panel | Y | Y | Y | |
PCRE0002 | pre package description | Y | Y | Y | |
PCRE0102 | post package description | Y | Y | Y | |
PCRE0003 | pre installation instructions | Y | Y | Y | |
PCRE0103 | post installation instructions | Y | Y | Y | |
PCRE0004 | pre scheduling dependencies | Y | Y | Y | |
PCRE0104 | post scheduling dependencies | Y | Y | Y | |
PCRE0005 | pre affected applications | Y | Y | Y | |
PCRE0105 | post affected applications | Y | Y | Y | |
PCRE0006 | pre install information (ALL site) | Y | Y | Y | |
PCRE0106 | post install information (ALL site) | Y | Y | Y | |
PCRE0007 | pre install site list (DP site) | Y | Y | Y | |
PCRE0107 | post install site list (DP site) | Y | Y | Y | |
PCRE0008 | pre complex/super information | Y | Y | Y | |
PCRE0108 | post complex/super information | Y | Y | Y | |
PRDM00UV | pre user variables | Y | Y | Y | |
PRDM01UV | post user variables | Y | Y | Y | |
PRDM00XD | pre demotion service | Y | n/a | n/a | n/a |
PRDM01XD | post demotion service | Y | n/a | n/a | n/a |
PRDM00XP | pre promotion service | Y | n/a | n/a | n/a |
PRDM01XP | post promotion service | Y | n/a | n/a | n/a |
PRDM0100 | post promote/demote main menu | Y | Y | ||
PRDM0101 | post site selection | Y | |||
PRDM0003 | pre promote options | Y | Y | Y | |
PRDM0103 | post promote options | Y | Y | Y | |
PRDM0004 | pre demote options | Y | Y | Y | |
PRDM0104 | post demote options | Y | Y | Y | |
PRDM0105 | post selective promote/demote | Y | Y | Y | |
PRDM0107 | post promotion level selection | Y | |||
PUPD00D2 | pre DB2 option special libtypes | Y | |||
PUPD01D2 | post DB2 option special libtypes | Y | |||
PUPD00ER | pre ERO information | Y | |||
PUPD01ER | post ERO information | Y | |||
PUPD00IA | pre IMS option ACB definitions | Y | |||
PUPD01IA | post IMS option ACB definitions | Y | |||
PUPD00ID | pre IMS option DBD definitions | Y | |||
PUPD01ID | post IMS option DBD definitions | Y | |||
PUPD00IP | pre IMS option PSB definitions | Y | |||
PUPD01IP | post IMS option PSB definitions | Y | |||
PUPD00IS | pre IMS option physical systems | Y | |||
PUPD01IS | post IMS option physical systems | Y | |||
PUPD01M6 | post monitor pkg change insdate(ALL) | Y | |||
PUPD01M7 | post monitor pkg change insdate (DP) | Y | |||
PUPD00PU | pre package user options | Y | Y | Y | |
PUPD01PU | post package user options | Y | Y | Y | |
PUPD0001 | pre control information | Y | Y | Y | |
PUPD0101 | post control information | Y | Y | Y | |
PUPD0002 | pre package description | Y | Y | Y | |
PUPD0102 | post package description | Y | Y | Y | |
PUPD0003 | pre installation instructions | Y | Y | Y | |
PUPD0103 | post installation instructions | Y | Y | Y | |
PUPD0004 | pre scheduling dependencies | Y | Y | Y | |
PUPD0104 | post scheduling dependencies | Y | Y | Y | |
PUPD0005 | pre affected applications | Y | Y | Y | |
PUPD0105 | post affected applications | Y | Y | Y | |
PUPD0006 | pre install information (ALL site) | Y | Y | Y | |
PUPD0106 | post install information (ALL site) | Y | Y | Y | |
PUPD0007 | pre install site list (DP site) | Y | Y | Y | |
PUPD0107 | post install site list (DP site) | Y | Y | Y | |
PUPD0008 | pre complex/super information | Y | Y | Y | |
PUPD0108 | post complex/super information | Y | Y | Y | |
RCKI01AR | post-CI line cmd for area checkin | Y | |||
RCKI01CI | post-action call for ERO checkin | Y | |||
RCKI01PK | post-CI line cmd for pkg checkin | Y | |||
RCKI00XM | pre-service call for ERO checkin | Y | n/a | n/a | n/a |
RCKI01XM | post-service call for ERO checkin | Y | n/a | n/a | n/a |
RCKI0000 | pre-pkg checkin options | Y | Y | ||
RCKI0100 | post-pkg checkin options | Y | Y | ||
RCKI0001 | pre-pkg checkin selection parms | Y | |||
RCKI0101 | post-pkg checkin selection parms | Y | |||
RCKI0102 | post-pkg eligible components list | Y | Y | ||
RCKI0103 | post-pkg duplicate components list | Y | Y | ||
RCKI0107 | post-summary of pkg checkin | Y | Y | ||
RCKI0020 | pre-component description checkin | Y | |||
RCKI0120 | post-component description checkin | Y | |||
RCKI0050 | pre-area checkin options | Y | Y | ||
RCKI0150 | post-area checkin options | Y | Y | ||
RCKI0051 | pre-area checkin selection parms | Y | |||
RCKI0151 | post-area checkin selection parms | Y | |||
RCKI0152 | post-area eligible components list | Y | Y | ||
RCKI0153 | post-area duplicate components list | Y | Y | ||
RCKI0157 | post-summary of area checkin | Y | Y | ||
RCKI0070 | pre-batch checkin job submission | Y | |||
RCKI0170 | post-batch checkin job submission | Y | |||
RVRT01B1 | package backout selection panel | Y | Y | ||
RVRT00B2 | pre backout reason entry panel | Y | Y | ||
RVRT01B2 | post backout reason entry panel | Y | Y | ||
RVRT01B3 | backout site selection | Y | Y | ||
RVRT00B4 | pre backout remote submission | Y | Y | ||
RVRT01B4 | post backout remote submission | Y | Y | ||
RVRT00XB | pre service call for backout | Y | n/a | n/a | n/a |
RVRT01XB | post service call for backout | Y | n/a | n/a | n/a |
RVRT00XM | pre service call for revert | Y | n/a | n/a | n/a |
RVRT01XM | post service call for revert | Y | n/a | n/a | n/a |
RVRT0101 | package revert selection panel | Y | Y | Y | |
RVRT0002 | pre revert reason entry panel | Y | Y | Y | |
RVRT0102 | post revert reason entry panel | Y | Y | Y | |
RVRT0103 | revert site selection | Y | Y | Y | |
RVRT0004 | pre revert remote submission | Y | Y | Y | |
RVRT0104 | post revert remote submission | Y | Y | Y | |
SCRN00XM | pre service call for pkg_util | Y | n/a | n/a | n/a |
SCRN01XM | post service call for pkg_util | Y | n/a | n/a | n/a |
SCRN0101 | post package selection | Y | Y | ||
SCRN0002 | pre baseline selection | Y | Y | ||
SCRN0102 | post baseline selection | Y | Y | Y | |
SCRN0103 | post baseline member list | Y | |||
SCRN0104 | post package member list | Y | Y | ||
SCRN0105 | post libtype selection list | Y | Y | ||
SYSL00XL | pre srvc cmponent.listlang.history | Y | n/a | n/a | n/a |
SYSL01XL | post srvc cmponent.listlang.history | Y | n/a | n/a | n/a |
SYSL00XM | service call for package.list.syslib | Y | n/a | n/a | n/a |
SYSL00XR | service call->package.refresh.syslib | Y | n/a | n/a | n/a |
ISPF or TSO in HLL Exits is Unsupported
The starting of an ISPF environment or the use of ISPF services from within an HLL exit is not supported. If you try to do this you will run into unpredictable results. Similarly a TSO environment is not supported. An example of when you might want to use TSO is to submit a batch job (one way is to use BPXWDYN for dynamic allocations, and use the internal reader - you could use REXX to build up a stem variable, and EXECIO).