Checkout
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
- 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 |