Skip to content


This section describes the checkout functional area of the high-level language exits. The 4-character exit name identified is CKOT.

Select option 6 Checkout from the HLL Exit Definition - Function Selection (CMNHLLMM) panel to define exits for component checkout from baseline/promotion:

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 12 of 13
Command ===>________________________________________________________ Scroll ===> CSR

Internal   External   + Active 1=LE       Description     +
    Name    Name              2=REXX    Debug Userids       +
CKOT01CK                NO      2       post checkout entry panel
    Debug: CKOTALL      YES     2       USERA1 ,USERA2
CKOT01CL                NO      2       post component list for pkg ckot
    Debug: CKOTALL      YES     2       USERA1 ,USERA2
CKOT01DL                NO      2       post component delete
    Debug: CKOTALL      YES     2       USERA1 ,USERA2
CKOT01LB                NO      2       post library list where comp found
    Debug: CKOTALL      YES     2       USERA1 ,USERA2
CKOT01LT                NO      2       post libtype display
    Debug: CKOTALL      YES     2       USERA1 ,USERA2
CKOT01MS                NO      2       post member selection list
    Debug: CKOTALL      YES     2       USERA1 ,USERA2
CKOT01PL                NO      2       post promotion library list
    Debug: HXPCKOT      YES     1       USERA1 ,USERA2
CKOT00XM                NO      2       pre service call
    Debug: CKOTALL      NO      2       USERA1 ,USERA2
CKOT01XM                NO      2       post service call
    Debug: CKOTALL      YES     2       USERA1 ,USERA2
CKOT0001                NO      2       pre checkout selection criteria
    Debug: HXCCKOT      NO      1       USERA1 ,USERA2
CKOT0101                NO      2       post checkout selection criteria
    Debug: HXCCKOT      YES     1       USERA1 ,USERA2
CKOT0002                NO      2       pre batch checkout panel
    Debug: CKOJOBCD     YES     2       USERA1 ,USERA2
CKOT0102                NO      2       post batch checkout panel
    Debug: CKOJOBCD     YES     2       USERA1 ,USERA2
The panels around which exit points will be placed are listed below. The internal exit name (also known as function code) is CKOT0pnn, 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.

An internal exit name of CKOT0p01, for example, means that both pre- and post-exits exist. That is, the name of the pre-exit is CKOT0001 and the name of the post-exit is CKOT0101. If it makes no sense to have a pre-exit, the internal exit name is given as CKOT0101 (post-exit only). If it makes no sense to have a post-exit, the internal exit name is given as CKOT0001 (pre-exit only).

The pre-exit is taken before the panel is displayed and the post-exit is taken after the panel has been displayed.Most table displays have only post-exits. That is, we do not want to have a pre-exit that manipulates the lists that ZMF generates. We may want to have a post-exit to validate the selections that the user makes from the lists.

The panels around which the checkout exit points are placed are:

Panel ID Description Exit Name
CMNMCKOT/R Checkout entry panel from the build function CKOT01CK
CMNCKOT1 Checkout selection criteria CKOT0001/CKOT0101
CMNCKOT2 Batch checkout panel CKOT0002/CKOT0102
CMNCLTS L Libtype table display CKOT01LT
CMNCCMSL/2 Member list baseline/promotion CKOT01MS
CMNCMLSL Member locate library list CKOT01LB
CMNCPLSL Promotion library list CKOT01PL
CMNCKOTS/L/X Member list - package checkout CKOT01CL
CMNSTG20 Confirm delete request CKOT01DL

Pre- and post-XML-service calls for checkout are:

XML Service Name Description Exit Name
cmponent.service.checkout Component Checkout CKOT00XM/CKOT01XM

Sample Exits

Sample exits are provided in the CMNZMF.SAMPLES distribution library. These examples show how to list all the information coming in to the exits. Not all information is available to all exits. The exits that occur early in the dialog will not have as much information as the exits that occur later in the dialog.

The checkout exit examples are:

  • HXCCKOT - COBOL example

  • HXPCKOT - PL/I example

  • HXRCKOT - REXX example

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

Data Interface

LE-Language Variable Name REXX Variable Name Length Purpose Modifiable Cursor Field No.
CKOTORGN callOrigin 3 ISPF = SPF, XML Service = XML, ZDD = ZDD, ZMF4ECL = ECL No
CKOTZMFS zmfSubs 1 ZMF subsystem character No
CKOTPDB2 db2Subs 4 Default Db2 subsystem for this ZMF No
CKOTUSER userid 8 Userid for function calling this exit No
CKOTEXTN externalName 256 External routine name defined for this exit No
CKOTPKGN packageId 10 The package being acted on No
CKOTPSTA packageStatus 3 Package status (DEV, FRZ, and so on) No
CKOTPINS packageInsDate 8 Package Install Date yyyymmdd No
CKOTCOMP componentName 256 Component Name Yes 001
CKOTLTYP componentType 3 Component library type Yes 002
CKOTBSLB chkOutSourceLocation 1 Source Location Yes
CKOTMODE chkOutMode 1 Online or Batch Yes 008
CKOTBLVL basePromoLibLevel 3 Baseline/Promotion level Yes 003
CKOTPSIT promotionSiteName 8 Promotion Site Yes 013
CKOTPNAM promotionName 8 Promotion Name Yes 014
CKOTRLSN release 8 Release Name Yes
CKOTAREA releaseArea 8 Release Area Yes
CKOTCKTO chkOutTargetLocation 1 Target Location (dev/stage) Yes 004
CKOTCKDS personalLibStorageMeans 1 Personal lib dsorg Yes 006
CKOTPDSN personalLib 1026 Personal library name Yes 005
CKOTLOCK lockComponent 3 Lock Component (Yes/No) Yes 009
CKOTUCUO useCompUsrOpts 3 Use component user options (Yes/No) Yes 018
CKOTSPSV savePriorVersion 3 Save staging versions (Yes/No) Yes
CKOTSUPN suppressNotify 3 Suppress batch messages (Yes/No) Yes 024
CKOTMIXC mixedCase 1 Name has mixed case? Yes 037
CKOTJOB1 jobCard01 72 Job card line #1 Yes 020
CKOTJOB2 jobCard02 72 Job card line #2 Yes 021
CKOTJOB3 jobCard03 72 Job card line #3 Yes 022
CKOTJOB4 jobCard04 72 Job card line #4 Yes 023
CKOTUVPN userVarPanel 8 User variable panel name Yes
CKOTUV01 - 05 userVariable01-05 8*5 Set of five 8-byte package user variables 027-031
CKOTUV06 - 10 userVariable06-10 72*5 Set of five 72-byte package user variables 032-036
CKOTSLTP selLibraryType 3 Selected library type No
CKOTVVMM verModLevel 5 Version.mod level No
CKOTCRDT createDate 10 Member create date No
CKOTCHGD changeDate 10 Member change date No
CKOTCHGT changeTime 5 Member change time No
CKOTCSZE memberSize 5 Member change size No
CKOTUSRN username 8 User name No
CKOTLSZE loadSize 6 Load member size No
CKOTLTTR loadTtr 6 Load member TTR No
CKOTALAS loadAlias 8 Load member alias No
CKOTSSSI loadSetssi 8 Load member setssi No
CKOTATTR loadAttr 8 Load member attributes No
CKOTGO proceed 3 Set to 'NO' to stop the process Yes
CKOTLOKD dataLocked 3 Fields locked?(YES/NO) Yes
CKOTSHRT shortMsg 24 Short error message text Yes
CKOTLONG longMsg 128 Long error message text Yes
CKOTOPTN optionRequested 1 Option used in ISPF, either from the primary entry panel for checkout or the digit in the C1, C2, C3, C4 checkout line commands available from the package list No
CKOTCURS cursorField 3 For ISPF where you wish the cursor to be placed on return to the panel display. The values relating to each field are shown in this table. Yes
CKOTCHNG dataChanged 3 This field must be set to YES to return changed values to ZMF. Yes
CKOTCOVL confirmOverlay 3 This field must be set to YES to confirm overlay. Yes 019
CKOTUVAR userVariables 1 Display User variable panel (Y/N) Yes 026
CKOTSPKG sourcePackage 10 Checkout from this package Yes 025
CKOTOPRF optsProfile 8 To select the ZDDOPTS profile to display user options for the ZMF Client Pack Yes