Package Lifecycle Tasks
Serena XML supports the following package lifecycle tasks for general use:
Create a Package - PACKAGE SERVICE CREATE | Demote a Package with Cleanup - PACKAGE CLEANUP DEMOTE |
Delete a Package - PACKAGE SERVICE DELETE | Approve a Package - PACKAGE SERVICE APPROVE |
Freeze a Package - PACKAGE SERVICE FREEZE | List Package Installation Schedule - SCHEDULE SERVICE LIST |
Submit a Package for JCL Build - PACKAGE SERVICE SUBMIT | Hold Package Install Job - SCHEDULE SERVICE HOLD |
Check a Package for Promotion Readiness - PACKAGE CHECK PROMOTE | Release Package Install Job - SCHEDULE SERVICE RELEASE |
Promote a Package - PACKAGE SERVICE PROMOTE | Back Out a Package - PACKAGE SERVICE BACKOUT |
Lock Promotion Site for Package - PACKAGE PROMOTE LOCK | Revert a Package - PACKAGE SERVICE REVERT |
Demote a Package - PACKAGE SERVICE DEMOTE |
Create a Package - PACKAGE SERVICE CREATE
The package create message in Serena XML creates an empty change package in the staging area. A parent application must already exist to provide default settings for the new package.
The Serena XML service/scope/message tags and attributes for a package creation message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="CREATE">
These tags appear in both requests and replies.
PACKAGE SERVICE CREATE Requests
The Serena XML syntax for a package creation request varies with the creation method you select. Three creation methods exist:
-
Short Method — Supplies only the minimum information required by the package master database. Complete information is supplied later via package updates using the ChangeMan ZMF ISPF interface. (Serena XML does not support updates to package master records for general use.)
-
Copy Forward (or Clone) Method — Copies values from a preexisting model package into the new package master entry. Changes are made later via package updates using the ChangeMan ZMF ISPF interface. (Serena XML does not support updates to package master records for general use.)
-
Long Method — Supplies all package master information in a single step. No subsequent updates are required. If you want to set the values of any user-defined variables for a package, you must use this method of package creation.
Choose a creation method using the <createMethod> subtag of the <request> message.
Example XML — PACKAGE SERVICE CREATE Request.
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="CREATE">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<applName>ACTP</applName>
<createMethod>0</createMethod>
<packageLevel>1</packageLevel>
<packageType>1</packageType>
<reasonCode>000</reasonCode>
<requestorDept>IDD</requestorDept>
<requestorName>USER24</requestorName>
<requestorPhone>555 5555</requestorPhone>
<packageTitle> TEST XML PACKAGE SERVICE CREATE</packageTitle>
<packageDesc>TEST XML PACKAGE SERVICE CREATE</packageDesc>
<packageImplInst>TEST XML PACKAGE SERVICE CREATE</packageImplInst>
<siteInfo>
<siteName>SERT8</siteName>
<installDate>20091231</installDate>
<fromInstallTime>0100</fromInstallTime>
<toInstallTime>0200</toInstallTime>
<contactName>USER24</contactName>
<contactPhone>555 5555</contactPhone>
<alternateContactName>USER24</alternateContactName>
<alternateContactPhone>555 5555</alternateContactPhone>
</siteInfo>
</request>
</message>
</scope>
</service>
...
The foregoing example requests the creation of a simple, planned, permanent package using the “short" method. The package is part of the “ACTP" application. Installation is scheduled for one production sites.
As the example illustrates, the <siteInfo> tag represents a complex data element A complex data element consists of other XML tags, rather than simple data. Such markup syntax, which potentially nests tags within tags within tags to any depth, is how XML implements its hierarchical tree data structure in a text data stream.
In addition, <siteInfo> is a repeatable tag. A repeatable tag allows a variable number of consecutive repetitions to accommodate multiple instances of similarly structured information. For example, <siteInfo> can be repeated for each site where the newly created package will be installed. Repeatable tags enhance scalability in XML data structures.
Note that the XML data structures for package request and reply messages do not specify any particular order for the occurrence of tags. You must rely on tag name rather than tag ordinal position in a sequence to convey information to ChangeMan ZMF. Sequence within a data structure is not preserved.
For example, a package may be installed across multiple sites in any order. This is not necessarily the order you list your <siteInfo> data elements. Similarly, if you schedule multiple predecessor jobs to occur before package install, they may execute in any order so long as they precede package installation. You cannot assume that predecessor jobs will execute in the order you list them in your XML request.
Caution
Tag sequence is not preserved in package request and reply messages using Serena XML. Use tag names rather than tag ordinal position in a sequence to convey information to ChangeMan ZMF.
Data structure specifications for the package creation <request> tag appear in Exhibit 4-1
Exhibit 4-1. PACKAGE SERVICE CREATE <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<affectedApplName> | Optional | 0 - ∞ | String (4), variable | Name of application affected by one or more participating packages in this complex/super package. Repeatable for multiple applications. NOTE: Valid only for complex or super packages. NOTE: If <partPackageName> used, at least one instance of this tag is required. |
<applName> | Required | 1 | String (4), variable | Parent application name for new change package. |
<complexSuperPackage> | Optional | 0 - 1 | String (10), variable | Name of complex/super package to which a participating package belongs. NOTE: Valid only when creating a participating package. NOTE: Required if <packageLevel> value is 4. |
<complexSuperPackageAppl> | Optional | 0 -1 | String (4), variable | Application name of model package. Same as <complexSuperPackage> tag’s first 4 bytes. |
<complexSuperPackage- Number> | Optional | 0 -1 | Integer(6) | Package ID of model package. Same as <complexSuperPackage> tag’s last 6 bytes. |
<createMethod> | Required | 1 | Integer (1) | Package creation method code. Values: 0 = Short creation method 1 = Copy forward (clone) method 2 = Long creation method NOTE: If <createMethod> value is 0, the following additional tags are required: <packageTitle>, <packageLevel>, <packageType>, <schedulerType>, <requestorPhone>,<requestorName>, <problemActionCode>, <siteInfo> NOTE: If <createMethod> value is 1, you must name the package to copy from in <packageModel>. NOTE: If <createMethod> value is 2, you must supply all the tags needed when <createMethod> is 0, plus the following: <packageDesc>, <packageImplInst>, <problemActionCode>. |
<otherProblemAction> | Optional | 0 -1 | String (44), variable | Text of “Other" instructions if installation problem occurs. NOTE: Required when value of <problemActionCode> = 3. |
<packageApplModel> | Optional | 0 -1 | String (4), variable | Application name of model package. Same as first 4 bytes of <packageModel>. |
<packageDesc> | Optional | 0 - 46 | String (72), variable | Description of package contents. Multiple entries of 72 bytes each. |
<packageImplInst> | Optional | 0 - 46 | String (72), variable | Package install & implementation instructions. Multiple tags of 72 bytes each. NOTE: Order of repeated tags is not preserved. Add sequence numbers to text if steps must be performed in order. |
<packageLevel> | Optional | 0 -1 | Integer (1) | Code for package complexity or level in hierarchy. Values: 1 = Simple package 2 = Complex package 3 = Super package 4 = Participating package NOTE: If value = 2 or 3, the names of participating packages are required in the <partPackageName> tag. NOTE: If value = 4, you must supply name of complex/super package in tag <complexSuperPackage>. |
<packageModel> | Optional | 0 -1 | String (10), variable | Name of source package from which entries are copied forward (“cloned") to new package. NOTE: This tag is required if value in <createMethod> = 1. |
<packageNumberModel> | Optional | 0 -1 | Integer(6) | Package ID of model package. Same as last 6 bytes of <packageModel>. |
<packageTitle> | Optional | 0 -1 | String (255), variable | Working title for package. Appears on most listings & reports. |
<partPackageName> | Optional | 0 - ∞ | String (10), variable | Name of a participating package pointed to by this complex/super package record. Repeatable for multiple participating packages. NOTE: Valid only when creating a complex or super package. NOTE: Required if <packageLevel> value is 2 or 3. NOTE: Tag <affectedApplName> is also required if this tag is used. |
<problemActionCode> | Optional | 1 | Integer (1) | Code for action to take if problem occurs in package install. Values: 1 = Hold production & contact developer for instructions 2 = Back out change, then proceed with production 3 = Other instructions NOTE: If value = 3, you must supply instructions in <otherProblemAction>. |
<reasonCode> | Optional | 0 - 1 | String (3), variable | Customer-defined reason code for unplanned package installation. NOTE: Required if <packageType> value is 3 or 4. NOTE: Reason codes defined separately by ZMF administrator. |
<release> | Optional, for ERO | 0 -1 | String (8) | Name of ERO release with which package is associated. |
<releaseArea> | Optional, for ERO | 0 -1 | String (8) | Name of starting release area for ERO release package check-in. |
<requestorDept> | Optional | 0 -1 | String (4), variable | Workgroup or department code for package creator. |
<requestorName> | Optional | 1 | String (25), variable | Name of developer or contact person responsible for package. |
<requestorPhone> | Optional | 1 | String (15), variable | Phone of developer or contact person responsible for package. |
<schedulerType> | Optional | 1 | Integer (1) | Code for type of installation scheduler used with package. Values: 1 = ChangeMan scheduler 2 = Manual install 3 = Other automated scheduler |
<schedulingInfo> | Optional | 0 - ∞ | Complex | See <schedulingInfo> subtag. |
<siteInfo> | Optional | 0 - ∞ | Complex | See <siteInfo> subtag. |
<tempChangeDuration> | Optional | 0 - 1 | Integer (3) | Number of days for temporary package to stay installed before automatic backout. NOTE: Required if <packageType> value is 2 or 4. |
<userVarLen101> . . . <userVarLen115> | Optional | 0 -1 each | String (1) | User-defined variables in ZMF. Total of 15 individually named, 1-byte tags supported. NOTE: See topic “Package User Information" in the ChangeMan ZMF Customization Guide. |
<userVarLen201> . . . <userVarLen211> | Optional | 0 -1 each | String (2), variable | User-defined variables in ZMF. Total of 11 individually named, 2-byte tags supported. |
<userVarLen301> . . . <userVarLen310> | Optional | 0 -1 each | String (3), variable | User-defined variables in ZMF. Total of 10 individually named, 3-byte tags supported. |
<userVarLen401> . . . <userVarLen410> | Optional | 0 -1 each | String (4), variable | User-defined variables in ZMF. Total of 10 individually named, 4-byte tags supported. |
<userVarLen801> . . . <userVarLen810> | Optional | 0 -1 each | String (8), variable | User-defined variables in ZMF. Total of 10 individually named, 8-byte tags supported. |
<userVarLen1601> . . . <userVarLen1605> | Optional | 0 -1 each | String (16), variable | User-defined variables in ZMF. Total of 5 individually named, 16-byte tags supported. |
<userVarLen4401> . . . <userVarLen4405> | Optional | 0 -1 each | String (44), variable | User-defined variables in ZMF. Total of 5 individually named, 44-byte tags supported. |
<userVarLen7201> . . . <userVarLen7205> | Options | 0 -1 each | String (72), variable | User-defined variables in ZMF. Total of 5 individually named, 72-byte tags supported. |
<workChangeRequest> | Optional | 0 -1 | String (12), variable | Work order ID or change request number for package. |
Tip
Tags: <userVarLen101> to <userVarLen7205>. See topic “Package User Information" in the ChangeMan ZMF Customization Guide.
The <schedulingInfo> and <siteInfo> tags both represent complex data elements — that is, they contain tags within tags. Their subordinate data structures are described below.
<schedulingInfo> Subtag
The <schedulingInfo> tag captures installation scheduling dependencies for a package. Each instance of the tag names a predecessor job and/or a successor job to run before and/ or after the installation of the newly created package. The <schedulingInfo> tag may be repeated as many times as needed to ensure that all installation prerequisites and follow-up tasks occur. Data structure details for the <schedulingInfo> tag appear in the following exhibit.
Exhibit 4-2. <schedulingInfo> Subtag Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<successorJobName> | Optional | 0 - 1 | String (8), variable | Must be valid job name for system where install takes place. |
<predecessorJobName> | Optional | 0 - 1 | String (8), variable | Must be valid job name for system where install takes place. |
<siteInfo> Subtag
The <siteInfo> tag provides the site name, contact information, and scheduled package installation date for a remote production site. The tag may be repeated as many times as needed to cover all sites where the newly created package will be installed. At least one instance of the tag is required in a package creation request that uses either the “short" or “long" create method. Data structure details for the <siteInfo> tag appear in the following exhibit:
Exhibit 4-3. <siteInfo> Subtag Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<siteName> | Optional | 0 - 1 | String (8), variable | Name of site where package will be installed. |
<installDate> | Optional | 0 - 1 | Date, yyyymmdd | Planned site install date for package. No punctuation. |
<fromInstallTime> | Optional | 0 - 1 | Time, hhmmss | Start time for period during which site installation of package is planned. 24-hour format, no punctuation. |
<toInstallTime> | Optional | 0 - 1 | Time, hhmmss | End time for period during which site installation of package is planned. 24-hour format, no punctuation. |
<contactName> | Optional | 0 - 1 | String (25), variable | Name of contact person at remote site to assist with install. |
<contactPhone> | Optional | 0 - 1 | String (15), variable | Phone of contact person at remote site to assist with install. |
<alternateContactName> | Optional | 0 - 1 | String (25), variable | Name of alternate contact person at remote site to assist with install. |
<alternateContactPhone> | Optional | 0 - 1 | String (15), variable | Phone of alternate contact person at remote site to assist with install. |
PACKAGE SERVICE CREATE Replies
The Serena XML reply message returns, at most, one <result> data structure, which reports basic information about the newly created package. Most importantly, the <result> supplies a unique package name assigned to the package by ChangeMan ZMF.
Following the <result> data structure is the standard <response> data structure, which indicates the success or failure of the XML request and provides a status message. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
An example Serena XML package creation reply for a simple, planned, permanent package follows. Tags in bold always occur in a reply. Repeatable tags appear twice for illustration. Data structure details for the package creation <result> tag appear in Exhibit 4-4
Example XML — PACKAGE SERVICE CREATE Reply
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="CREATE">
<result>
<package>ACTP000012</package>
<applName>ACTP</applName>
<packageId>000012</packageId>
<packageLevel>1</packageLevel>
<packageType>1</packageType>
<packageStatus>6</packageStatus>
<installDate>20091231</installDate>
</result>
<response>
<statusMessage>CMN2100I - ACTP000012 change package has been created.</statusMessage>
<statusReturnCode>00</statusReturnCode>
<statusReasonCode>2100</statusReasonCode>
</response>
</message>
<scope>
</service>
...
Exhibit 4-4. PACKAGE SERVICE CREATE <result> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. |
<installDate> | Optional | 0 - 1 | Date, yyyymmdd | Planned install date for package, or start date of range. |
<package> | Optional | 0 - 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), variable | New package ID number generated by ZMF. Same as last 6 bytes of package name. |
<packageLevel> | Optional | 0 - 1 | Integer (1) | Code for package complexity level. Values: 1 = Simple package 2 = Complex package 3 = Super package 4 = Participating package |
<packageStatus> | Optional | 0 - 1 | String (1) | Code for status of package in lifecycle. Values: 1 = Approved 2 = Backed out 3 = Baselined 4 = Complex/super pkg closed 5 = Deleted (memo delete) 6 = Development 7 = Distributed 8 = Frozen 9 = Installed A = Complex/super pkg open B = Rejected C = Temporary change cycle completed NOTE: Only values 6 or A should be returned for package create. |
<packageType> | Optional | 0 - 1 | String (1) | Package install type code. Values: 1 = Planned permanent 2 = Planned temporary 3 = Unplanned permanent 4 = Unplanned temporary |
...
Delete a Package - PACKAGE SERVICE DELETE
The package deletion function in Serena XML flags or unflags an entire package for deletion. Deletion (or undeletion) is logical rather than physical. Physical deletion of flagged packages occurs at a later time under ChangeMan ZMF control.
The Serena XML service/scope/message tags for a package deletion message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="DELETE">
These tags appear in both requests and replies.
PACKAGE SERVICE DELETE Requests
Serena XML supports two kinds of delete requests against a package:
-
Logical (“Memo") Delete — Flags a package for physical deletion at a future time. Package must be in development status prior to memo deletion. To choose this option, enter “1" in the <processingOption> tag.
-
Logical Undelete — Removes deletion flag from a memo-deleted package. Assumes the package has not been aged past the scheduled, physical delete date and time. To choose this option, enter “2" in the <processingOption> tag.
The following example shows how you might code a logical delete request in Serena XML. Data structure details for the package deletion <request> tag appear in Exhibit 4-5
Example XML — PACKAGE SERVICE DELETE Request
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="DELETE">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<processingOption>1</processingOption>
<package>ACTP000015</package>
</request>
</message>
</scope>
</service>
...
Exhibit 4-5. PACKAGE SERVICE DELETE <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), variable | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<processingOption> | Required | 1 | Integer (1), fixed | = Logical delete = Logical undelete |
PACKAGE SERVICE DELETE Replies
No <result> data structure is returned in the package deletion reply message. However, the standard <response> data structure is returned to indicate the success or failure of the package deletion request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Freeze a Package - PACKAGE SERVICE FREEZE
On ChangeMan ZMF servers, a Serena XML package freeze request does two things:
-
It freezes the package against changes.
-
It builds the “.X node" staging library containing file-tailored JCL installation code.
For a freeze request to execute successfully, all of the following conditions must be met:
-
The package is in development status.
-
All components are active and are at the same promotion level.
-
Any online forms in the package have been approved.
In addition, ChangeMan ZMF normally requires that a package pass the audit process before a freeze request can execute successfully.
The Serena XML service/scope/message tags for a package freeze message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="FREEZE">
These tags appear in both requests and replies.
PACKAGE SERVICE FREEZE Requests
Serena XML allows you to freeze a package with or without prior validation of the staging library. Unless you are completely certain that all components in the package are ready to be frozen, you should validate the staging library as part of your package freeze request.
Tip
To validate the staging library as part of a package freeze request, enter “1” in the <validationParm>
tag.
The example below shows how you might code a package freeze request in Serena XML. Data structure details for the package freeze <request> tag follow in Exhibit 4-6
Example XML — PACKAGE SERVICE FREEZE Request
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="FREEZE">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>ACTP000012</package>
</request>
</message>
</scope>
</service>
...
Exhibit 4-6. PACKAGE SERVICE FREEZE <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), variable | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
userVariable01 | Optional | 0 - 8 | String (8), variable | User variable 01 |
userVariable02 | Optional | 0 - 8 | String (8), variable | User variable 02 |
userVariable03 | Optional | 0 - 8 | String (8), variable | User variable 03 |
userVariable04 | Optional | 0 - 8 | String (8), variable | User variable 04 |
userVariable05 | Optional | 0 - 8 | String (8), variable | User variable 05 |
userVariable06 | Optional | 0 - 72 | String (72), variable | User variable 06 |
userVariable07 | Optional | 0 - 72 | String (72), variable | User variable 07 |
userVariable08 | Optional | 0 - 72 | String (72), variable | User variable 08 |
userVariable09 | Optional | 0 - 72 | String (72), variable | User variable 09 |
userVariable10 | Optional | 0 - 72 | String (72), variable | User variable 10 |
<validationParm> | Optional | 0 -1 | Integer (1) | 1 = Validate package readiness prior to freeze operation |
Tip
Tags: <userVariable01> to <userVariable10>: See topic “Custom V01-V10 Variables" in the ChangeMan ZMF Customization Guide.
PACKAGE SERVICE FREEZE Replies
No <result> data structure is returned in the reply message for a package freeze request. However, the standard <response> data structure is returned to indicate the success or failure of the request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Occasionally, a package may freeze successfully but the subsequent file tailoring and JCL build step may not complete. If this occurs, Serena XML provides a way of finishing the file tailoring step on its own.
Tip
Use Serena XML to submit a package for JCL build if the package freeze step is successful, but the subsequent file tailoring and JCL build step does not complete. (See Submit a Package for JCL Build - PACKAGE SERVICE SUBMIT.)
Submit a Package for JCL Build - PACKAGE SERVICE SUBMIT
The package service submit request submits a previously frozen package for stage file tailoring — that is, it builds (or rebuilds) the “.X node" staging library containing file-tailored JCL installation and backout code. It performs this task at the package level rather than the component level.
The Serena XML service/scope/message tags for a package submit message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="SUBMIT">
These tags appear in both requests and replies.
When successful, this service submits a JOB with output similar to the following:
SDSF OUTPUT DISPLAY CMN8ADSP S0786765 DSID 4 LINE 71 CO
COMMAND INPUT ===> SCR
IEF285I ZMFA.CMN8ADSP.S0786765.D0000106.? SYSOUT
IEF285I ZMFA.CMN8ADSP.S0786765.D0000107.? SYSOUT
IEF373I STEP/ /START 2009065.0630
IEF374I STEP/ /STOP 2009065.0630 CPU 0MIN 00.47SEC SRB
IEF375I JOB/CMN8ADSP/START 2009065.0630
IEF376I J OB/CMN8ADSP/STOP 2009065.0630 CPU 0MIN 00.47SEC SRB
PROG=CMNASPFT,PARMS=PGMCMNVPIJB
0032ACTP0000138USER35 Y
READY
END
ChangeMan(R) CMNVPIJB - 6.1.0 File Tailoring
Function : Package install JCL build
Subsystem: 8
Userid : USER24
Package : ACTP000013
Schedule : Y
Date/Time: 2009/03/06 06:30:10
CMN8700I - ACTP000013 Installation JCL Build service completed
...
PACKAGE SERVICE SUBMIT Request
The following example shows how you might code a package service submit request using Serena XML. Data structure details for the packageservice submit
Example XML — PACKAGE SERVICE SUBMIT Request
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="SUBMIT">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>ACTP000013</package>
<cmnSubSystemId>8</cmnSubSystemId>
<requestor>USER24</requestor>
<addSchedulerOption>Y</addSchedulerOption>
</request>
</message>
</scope>
</service>
...
Exhibit 4-7. PACKAGE SERVICE SUBMIT <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<addSchedulerOption> | Optional | 0 - 1 | String (1) | Code to add installation scheduler record for automated scheduling system. Values: Y = Yes, add scheduler record N = No, don’t add record C = Conditional, add scheduler record only if build succeeds. |
<applName> | Optional | 0 - 1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<cmnSubSystemId> | Optional | 1 | String (1) | ZMF subsystem ID where package resides (for batch execution). |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), variable | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<requestor> | Optional | 1 | String (8), variable | Must be valid TSO user ID on mainframe LPAR where ZMF subsystem resides. |
PACKAGE SERVICE SUBMIT Replies
No <result> data structure is returned in the reply message to a package submit request. However, the standard <response> data structure is returned to indicate the success or failure of the request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Check a Package for Promotion Readiness - PACKAGE CHECK PROMOTE
The promotion check function determines whether a promote request is valid without performing the actual promotion. It ensures that the components to be promoted are active, the requested promotion library is a valid one for the requestor, and the package complies with administrator-defined promotion business rules.
The Serena XML service/scope/message tags for a promotion check message are:
<service name="PACKAGE">
<scope name="CHECK">
<message name="PROMOTE">
These tags appear in both requests and replies.
PACKAGE CHECK PROMOTE Requests
The syntax of a promotion check message is similar to that of the PACKAGE SERVICE PROMOTE request, with the following exceptions:
-
the name attribute in the <scope> tag has a value of “CHECK"
-
the <applName>, <packageId>, <scheduledate>, and <scheduletime> tags are not used
A code example appears in this chapter under Promote a Package - PACKAGE SERVICE PROMOTE. Data structure details for the promotion check <request> tag are discussed in Exhibit 4-8.
PACKAGE CHECK PROMOTE Replies
No <result> data structure is returned in the reply message to a promotion check request. However, the standard <response> data structure is returned to indicate the success or failure of the request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Promote a Package - PACKAGE SERVICE PROMOTE
Package promotion applies the changes in a package to libraries used for testing and other purposes. All components to be promoted must be active, and business rules for promotion level transitions, promotion to remote sites, and package freeze must also be met.
The Serena XML service/scope/message tags for a package promotion message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="PROMOTE">
These tags appear in both requests and replies.
The package promote function validates the promotion readiness of a package prior to executing the promote. It necessarily file-tailors the package for application to the target promotion library, as well — a step that can take some time.
Tip
To check the promotion readiness of a package in Serena XML without file tailoring for promotion or actually executing the promote, use package/check/ promote. (See Check a Package for Promotion Readiness - PACKAGE CHECK PROMOTE.)
PACKAGE SERVICE PROMOTE Request
Serena XML supports all three types of promotion: full promote, selective promote, and “first" promote. No special XML attribute or tag is required to choose a promotion type. ChangeMan ZMF determines the appropriate promotion type based on whether or not you supply an explicit component name (which indicates a selective promote), and on the business rules defined for promotion by your administrator (which may or may not allow a “first" promote).
The example below shows how you might code a selective promotion request in Serena XML. Data structure details for the packageservice promote <request> tag appear in Exhibit 4-8.
Example XML — PACKAGE SERVICE PROMOTE Request
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="PROMOTE">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>ACTP000012</package>
<promotionSiteName>SERT8</promotionSiteName>
<promotionLevel>10</promotionLevel>
<promotionName>C001AUT</promotionName>
<jobCards01>//XMLX130 JOB (AMW,000),'DEFINE UCAT',MSGCLASS=Y,</jobCards01>
<jobCards02>// TIME=(,10),NOTIFY=USER24</jobCards02>
</request>
</message>
</scope>
</service>
...
Exhibit 4-8. PACKAGE SERVICE PROMOTE <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<component> | Optional | 0 - 800 | Complex | See Exhibit 4-9. NOTE: Required for selective promote. If used, <listCount> tag is also required. |
<jobCards01> | Required | 1 | String (72), fixed length | First of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards02> | Optional | 0 - 1 | String (72), fixed length | Second of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards03> | Optional | 0 - 1 | String (72), fixed length | Third of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards04> | Optional | 0 - 1 | String (72), fixed length | Fourth of up to 4 JCL statements needed to execute the promote in batch mode. |
<listCount> | Optional | 0 - 1 | Integer (3), variable | Number of components to selectively promote. Must match number of <component> tags. Value range: 1 - 800 NOTE: Required for selective promote. If used, <component> tag is also required. |
<overlayTargetComponents> | Optional | 0 - 1 | String (1) | Option to automatically overlay package components already in target library. Values: Y = Yes, overlay components N = No, don’t overlay |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package |
<packageId> | Optional | 0 - 1 | Integer (6), fixed | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<promotionLevel> | Required | 1 | Integer (2), variable | Sequence number of target promotion library in promotion hierarchy. |
<promotionName> | Required | 1 | String (8), variable | Promotion/demotion nickname. |
<promotionSiteName> | Required | 1 | String (8), variable | Name of site where target promotion library resides. |
<scheduledate> | Optional | 0 - 1 | String (8) | A date with no time (yyyyMMdd) |
<scheduletime> | Optional | 0 - 1 | String (4) | A time (HHmm) |
<suppressNotify> | Optional | 0 - 1 | String (1) | Y = Yes, suppress notify N = No, don’t suppress |
<userVariable01> . . . <userVariable05> | Optional | 0 - 1 each | String (8), variable | Up to five user-defined variables of 8 bytes each, used to pass parameters to JCL interpreter. |
<userVariable06> . . . <userVariable10> | Optional | 0 - 1 each | String (72), variable | Up to five user-defined variables of 72 bytes each, used to pass parameters to JCL interpreter. |
...
Tip
Tags: <userVariable01> to <userVariable10>: See topic “Custom V01-V10 Variables" in the ChangeMan ZMF Customization Guide.
<component> Subtag
In a selective or a “first" package promotion request, you explicitly name each component to promote. The <component> subtag serves this purpose. It delimits a complex data structure containing the name and library type of each component to be promoted, and is repeatable as many times as needed to accommodate the components selected for promotion.
This <component> tag does not stand alone. When used, it requires a <listCount> tag to precede the first instance of the <component> tag in the message. The <listCount> tag contains a count of components to be promoted. That number must match the actual number of <component> tags that immediately follow.
Data structure details for the complex <component> subtag appear in Exhibit 4-9
Exhibit 4-9. <component> Subtag Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<componentName> | Required | 1 | String (256), variable | If PDS member, the member name (max 8 bytes, no qualifiers). If HFS file, the Unix-style long file name, optionally prefixed by path from installation root. |
<componentType> | Required | 1 | String (3), fixed | Library type of component in <componentName>. |
Package Service Promote Reply
No <result> data structure is returned in package promotion reply message. However, the standard <response> data structure is returned to indicate the success or failure of the promotion request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Lock Promotion Site for Package - PACKAGE PROMOTE LOCK
The Package Promote Lock service locks the promotion site for a requested package.
The Serena XML service/scope/message tags for a promotion site lock message are:
<service name="PACKAGE">
<scope name="PROMOTE">
<message name="LOCK">
These tags appear in both requests and replies.
PACKAGE PROMOTE LOCK Request
The example below shows how you might code a Package Promote Lock request in Serena XML. Data structure details for the <request> tag appear in Exhibit 4-10.
Example XML — PACKAGE PROMOTE LOCK Request
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="PROMOTE">
<message name="LOCK">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>ACTP000012</package>
<promotionSiteName>SERT8</promotionSiteName>
</request>
</message>
</scope>
</service>
...
Exhibit 4-10. PACKAGE PROMOTE LOCK <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), fixed | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<promotionSiteName> | Required | 1 | String (8), variable | Name of site where target promotion library resides. |
Package Promote Lock Reply
No <result> data structure is returned in a Package Promote Lock reply message. However, the standard <response> data structure is returned to indicate the success or failure of the request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Demote a Package - PACKAGE SERVICE DEMOTE
The standard package demotion function resets the desired components previously promoted to a specific promotion site and level to promotion level 00 in the staging library. In a full demote, it also resets the package master to development status. Copies of previously promoted components are deleted.
The Serena XML service/scope/message tags for a message to demote a package:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="DEMOTE">
These tags appear in both requests and replies.
PACKAGE SERVICE DEMOTE Request
Serena XML supports both full demotion and selective demotion. No special XML attribute or tag is required to choose a demotion type. ChangeMan ZMF determines the appropriate demotion type based on whether or not you supply an explicit component name (which indicates a selective demote).
Except for the name attribute in the <scope> tag, the syntax of a request to demote a package is identical to that of a promotion request. A code example appears in this chapter under Promote a Package - PACKAGE SERVICE PROMOTE. Data structure details for the promotion check <request> tag are discussed in Exhibit 4-8 also in Promote a Package - PACKAGE SERVICE PROMOTE.
PACKAGE SERVICE DEMOTE Reply
Serena XML reply messages for a package demotion request do not return a <result> data structure. They do, however, return a standard <response> data structure to indicate the success or failure of the demotion request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Demote a Package with Cleanup - PACKAGE CLEANUP DEMOTE
The package cleanup demote function performs a full package demotion for all package components previously promoted to any promotion level at a named site. The promotion libraries that were last promoted to are cleaned up. It then resets the package master to development status.
The Serena XML service/scope/message tags for a message to demote a package with cleanup are:
<service name="PACKAGE">
<scope name="CLEANUP">
<message name="DEMOTE">
These tags appear in both requests and replies.
PACKAGE CLEANUP DEMOTE Requests
The example below shows how you might code a request for demotion with cleanup in Serena XML. Data structure details for the <request> tag appear in Exhibit 4-11.
Example XML — PACKAGE CLEANUP DEMOTE Request
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="CLEANUP">
<message name="DEMOTE">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>TES5000004</package>
<promotionSiteName>SERT8</promotionSiteName>
</request>
</message>
</scope>
</service>
...
Exhibit 4-11. PACKAGE CLEANUP DEMOTE <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), fixed | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<promotionSiteName> | Required | 1 | String (8), variable | Name of site where promotion library resides. |
<suppressNotify> | Optional | 0 - 1 | String (1), | Suppress batch messages,Y or N. |
<userVariable01> . . . <userVariable05> | Optional | 0 - 1 each | String (8), variable | Up to five user-defined variables of 8 bytes each, used to pass parameters to JCL interpreter. |
<userVariable06> . . . <userVariable10> | Optional | 0 - 1 each | String (72), variable | Up to five user-defined variables of 72 bytes each, used to pass parameters to JCL interpreter. |
Tip
Tags: <userVariable01> to <userVariable10>: See topic “Custom V01-V10 Variables" in the ChangeMan ZMF Customization Guide.
PACKAGE CLEANUP DEMOTE Replies
Serena XML reply messages for a package demotion with cleanup do not return a <result> data structure. They do, however, return a standard <response> data structure to indicate the success or failure of the demotion request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Example XML — PACKAGE CLEANUP DEMOTE Reply
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="CLEANUP">
<message name="DEMOTE">
<response>
<statusMessage>CMN3261I - request submitted for demotion from SERT8,C001AUT.</statusMessage>
<statusReturnCode>00</statusReturnCode>
<statusReasonCode>3261</statusReasonCode>
</response>
</message>
</scope>
</service>
...
A successful PACKAGE CLEANUP DEMOTE request will generate a JOB with output similar to the following:
-STEPNAME PROCSTEP RC EXCP CONN TCB SRB
-DEL1CPY 00 37 18 .00 .00
-SUCCESS 00 572 303 .00 .00
-CHKCOND 00 15 6 .00 .00
-FAILURE FLUSH 0 0 .00 .00
-PRINT 00 64 24 .00 .00
-CLNLCL 00 30 64 .00 .00
-SERT8 ENDED. NAME-ACTP TOTAL TCB
$HASP395 SERT8 ENDED
DELETE ACPCPY00
ACPCPY00 WAS DELETED FROM TARGET DATA SET
*****************************************************************
* DDNAME: SUCCESS.SYSPRINT
*****************************************************************
ChangeMan(R) CMNBATCH - 6.1.0 2009/02/17 11:55:22
ATTEMPTING TO INITIATE DIALOG WITH CHANGE MAN SUBTASK
SESSION ESTABLISHED WITH CHANGE MAN SUBTASK
SYSIN: TES5000004 85 FUN=DEMOTE,NOD=SERT8
SYSIN: TES5000004 85 LVL=10,LNM=C001AUT,CID=USER24
SYSIN: TES5000004 85 SUP=YES,SSI=5C6A9D1F
SYSIN: TES5000004 85 TYP=CPY
SYSIN: TES5000004 85 CMP=ACPCPY00 Component History has been updated.
Component Promotion History has been updated
Demotion logged TES5000004
SYSIN: TES5000004 85 FUN=END
Package Promotion history has been updated
Package TES5000004 DEMOTE
Package General record has been updated.
END OF DATA ON SYSIN - TERMINATING
SESSION TERMINATED WITH CHANGE MAN STARTED TASK
<SIZE: RECS=25 BYTES=967>
...
Approve a Package - PACKAGE SERVICE APPROVE
The package approval function logs package approval actions such “approve" and “reject" and issues appropriate notifications. Approval entities may also override their previously defined notification addresses (e.g., to substitute a TCP/IP email address for a TSO “Send" message). Authorized approvers must be defined by approver list maintenance before they can approve a package.
Note
Approver list maintenance is a function of the approver maintenance service, not the package management service. This task is normally performed via ISPF.
The Serena XML service/scope/message tags for a package approval message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="APPROVE">
These tags appear in both requests and replies.
PACKAGE SERVICE APPROVE Requests
The following example shows how you might code a package approval request using Serena XML. Data structure details for the package approval <request> tag appear in Exhibit 4-12.
Example XML — PACKAGE SERVICE APPROVE Request
<?xml version="1.0"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="APPROVE">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<approverAction>1</approverAction>
<package>ACTP000009</package>
<approverEntity>ACTPLEAD</approverEntity>
<reasons>PACKAGE SERVICE APPROVE TEST</reasons>
</request>
</message>
</scope>
</service>
...
Exhibit 4-12. PACKAGE SERVICE APPROVE <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<approverAction> | Required | 1 | Integer (1), fixed | = Approve package = Checkoff = Approval decision pending = Reject package = Under review = Final approval for linked packages NOTE: If value is 2 or 4, <reasons> tag required. |
<approverEntity> | Required | 1 | String (8), variable | Security system entity ID of authorized application approver. |
<notifierAgentIpAddress> | Optional | 0 - 1 | String (32), variable | Network IP address for E-mail notifications. Overrides user record. NOTE: If used, also requires <notifierAgentPortid> tag. |
<notifierAgentPortid> | Optional | 0 - 1 | Integer (5), variable | Network port ID of E-mail server for notifications. Overrides user record. NOTE: Required with tag <notifierAgentIpAddress>. |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), fixed | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<reasons> | Optional | 0 - 14 | String (72), variable | Reject (or checkoff) reasons. May be repeated for multiple comments. NOTE: If <approverAction> value = 2 or 4, this tag is required. |
PACKAGE SERVICE APPROVE Replies
Serena XML reply messages to a package approval request do not return a <result> data structure. They do, however, return a standard <response> data structure to indicate the success or failure of the approval action. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
List Package Installation Schedule - SCHEDULE SERVICE LIST
This function lists installation scheduler records defined for a named package. Information returned includes planned installation dates, install job status if held or released, install job participation in a multi-package release, temporary change duration, and package backout status. If no installation information has been defined, no results are returned.
The Serena XML service/scope/message tags and attributes for messages that list installation schedule information for a package are:
<service name="SCHEDULE">
<scope name="SERVICE">
<message name="LIST">
These tags appear in both requests and replies.
SCHEDULE SERVICE LIST — Requests
Request messages for this function require only a package name. A date range may also be supplied.
Example XML — SCHEDULE SERVICE LIST Request
<?xml version="1.0"?>
<service name="SCHEDULE">
<scope name="SERVICE">
<message name="LIST">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>ACTP000009</package>
</request>
</message>
</scope>
</service>
...
Data structure details for the <request> tag appear in Exhibit 4-13.
Exhibit 4-13. SCHEDULE SERVICE LIST<request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 - 1 | String (4), variable | ZMF application name. Same as first 4 bytes of <package>. NOTE: Not recommended. Use <package> instead of separately specifying <applName> and <packageId>. NOTE: OK to omit trailing blanks. |
<backoutJobSubmitted> | Optional | 1 | String (1) | Y = Yes, backout job submitted N = Backout job not submitted |
<installDate> | Optional | 0 - 1 | Date, yyyymmdd | Planned install date for package, or start date of range. |
<installJobHeld> | Optional | 1 | String (1) | Y = Yes, install job held N = No, install job not held |
<installJobSubmitted> | Optional | 1 | String (1) | Y = Yes, install job submitted N = No, install job not submitted |
<isReasonsInserted> | Optional | 1 | String (1) | Y = Yes, reason codes present N = No, reason codes absent |
<package> | Required | 1 | String (10), variable | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), fixed | ZMF package ID. Same as last 6 bytes of <package>. NOTE: Not recommended. Use <package> instead of separately specifying <applName> and <packageId>. NOTE: Leading zeroes required. |
<releaseInstallation> | Optional | 1 | String (1) | Y = Yes, install with release N = No, not a release install |
<toInstallDate> | Optional | 0 - 1 | Date, yyyymmdd | End date of planned installed date range. |
<type> | Optional | 0 - 1 | 1 | Type of job scheduled, I = Install, P = Promote |
SCHEDULE SERVICE LIST — Replies
The Serena XML reply message for this function returns one <result> tag, which contains installation scheduler information for a named package. It is followed by the standard <response> data element, which indicates the success or failure of the request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Example XML — SCHEDULE SERVICE LIST Reply
<?xml version="1.0"?>
<service name="SCHEDULE">
<scope name="SERVICE">
<message name="LIST">
<result>
<package>ACTP000009</package>
<applName>ACTP</applName>
<packageId>000009</packageId>
<type>I</type>
<installDate>20091231</installDate>
<installTime>0100</installTime>
<installJobSubmitted>Y</installJobSubmitted>
<installJobHeld>Y</installJobHeld>
<isReasonsInserted>Y</isReasonsInserted>
<backoutJobSubmitted>Y</backoutJobSubmitted>
<releaseInstallation>Y</releaseInstallation>
<tempChangeDuration>000</tempChangeDuration>
<updateToken>5C7529CB</updateToken>
</result>
<response>
<statusMessage>CMN8700I - LIST service completed</statusMessage>
<statusReturnCode>00</statusReturnCode>
<statusReasonCode>8700</statusReasonCode>
</response>
</message>
</scope>
</service>
...
Data structure details for the <result> tag appear in Exhibit 4-14.
Exhibit 4-14. SCHEDULE SERVICE LIST <result> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 - 1 | String (4), variable | ZMF application name. Same as first 4 bytes of <package>. |
<backoutJobSubmitted> | Optional | 1 | String (1) | Y = Yes, backout job submitted N = Backout job not submitted |
<installDate> | Optional | 0 - 1 | Date, yyyymmdd | Planned installation date, or first date in range of install dates. |
<installJobHeld> | Optional | 1 | String (1) | Y = Yes, install job held N = No, install job not held |
<installJobSubmitted> | Optional | 1 | String (1) | Y = Yes, install job submitted N = No, install job not submitted |
<installTime> | Optional | 0 - 1 | Time, hhmmss | Planned install time in 24-hour format. |
<isReasonsInserted> | Optional | 1 | String (1) | Y = Yes, reason codes present N = No, reason codes absent |
<package> | Optional | 1 | String (10), variable | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), fixed | ZMF package ID. Same as last 6 bytes of <package>. |
<reasonCode> | Optional | 0 - 1 | String (3), variable | Reject reason code if package rejected or backed out. |
<releaseInstallation> | Optional | 1 | String (1) | Y = Yes, install with release N = No, not a release install |
<tempChangeDuration> | Optional | 0 - 1 | String (3), variable | Life of temporary change package before automatic backout. |
<type> | Optional | 0 - 1 | 1 | Type of job scheduled, I = Install, P = Promote |
<updateToken> | Optional | 0 - 1 | String (8), variable | Binary hash token for updated package. |
...
Hold Package Install Job - SCHEDULE SERVICE HOLD
This function holds a package installation job in the scheduling queue until it is explicitly released. The Serena XML service/scope/message tags and attributes for messages to hold a package install job are:
<service name="SCHEDULE">
<scope name="SERVICE">
<message name="HOLD">
These tags appear in both requests and replies.
SCHEDULE SERVICE HOLD — Requests
The request message for this function requires a package name. No filtering options are supported. Data structure details for the <request> tag appear in Exhibit 4-15.
Exhibit 4-15. SCHEDULE SERVICE HOLD <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 - 1 | String (4), variable | ZMF application name. Same as first 4 bytes of <package>. NOTE: Not recommended. Use <package> instead of separately specifying <applName> and <packageId>. NOTE: OK to omit trailing blanks. |
<package> | Required | 1 | String (10), variable | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), fixed | ZMF package ID. Same as last 6 bytes of <package>. NOTE: Not recommended. Use <package> instead of separately specifying <applName> and <packageId>. NOTE: Leading zeroes required. |
<type> | Optional | 0 - 1 | 1 | Type of job scheduled, I = Install, P = Promote |
SCHEDULE SERVICE HOLD — Replies
No <result> tag is returned in the Serena XML reply message for a package install job hold request. However, the reply message does return a standard <response> data element to indicate the success or failure of the request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Release Package Install Job - SCHEDULE SERVICE RELEASE
This function releases a previously held package installation job in the scheduling queue. The Serena XML service/scope/message tags and attributes for messages to release a package install job are:
<service name="SCHEDULE">
<scope name="SERVICE">
<message name="RELEASE">
These tags appear in both requests and replies.
SCHEDULE SERVICE RELEASE — Requests
The request message syntax to release a package install job is different from that to hold an install job only in the name attribute of the <message> tag, as shown above. Data structure details for the <request> tag are identical in both messages. They appeared previously in Exhibit 4-15.
SCHEDULE SERVICE RELEASE — Replies
No <result> tags are returned in the Serena XML reply message for a package install job release request. However, the reply message does return a standard <response> data element to indicate the success or failure of the request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Back Out a Package - PACKAGE SERVICE BACKOUT
The package service backout function reverses a package baseline ripple. Serena XML does not back out changes to production libraries.
Note
If a package resides in remote production libraries as well as the baseline library, you must back out each installed instance of the package from the production libraries via the ISPF interface before you issue a Serena XML backout request.
The Serena XML service/scope/message tags for a package backout message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="BACKOUT">
These tags appear in both requests and replies.
PACKAGE SERVICE BACKOUT Requests
Serena XML allows you to back out a package with or without validating the integrity of your baseline libraries afterward. This flexibility saves time when backing out minor or temporary changes. However, unless you are completely certain that the changes to be backed out are minor, you should validate baseline integrity as part of the backout process.
An example of how you might code a Serena XML request to back out a package from baseline appears below. Data structure details for the package backout <request> tag appear in Exhibit 4-16.
Example XML — PACKAGE SERVICE BACKOUT Request
<?xml version="1.0" encoding="UTF-8"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="BACKOUT">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>ACTP000012</package>
<siteName>SERT8</siteName>
<backoutReason01>TEST XML PACKAGE SERVICE BACKOUT</backoutReason01>
<jobCards01>//XMLX127 JOB (AMW,000),'DEFINE UCAT',MSGCLASS=Y,</jobCards01>
<jobCards02>// TIME=(,10),NOTIFY=USER24</jobCards02>
</request>
</message>
</scope>
</service>
...
Exhibit 4-16. PACKAGE SERVICE BACKOUT <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
backoutReason01 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 1 |
backoutReason02 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 2 |
backoutReason03 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 3 |
backoutReason04 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 4 |
backoutReason05 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 5 |
backoutReason06 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 6 |
backoutReason07 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 7 |
backoutReason08 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 8 |
backoutReason09 | Optional | 0 - 1 | String (72), variable | Backout reasons line - 9 |
<jobCards01> | Optional | 0 - 1 | String (72), fixed length | First of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards02> | Optional | 0 - 1 | String (72), fixed length | Second of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards03> | Optional | 0 - 1 | String (72), fixed length | Third of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards04> | Optional | 0 - 1 | String (72), fixed length | Fourth of up to 4 JCL statements needed to execute the promote in batch mode. |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), variable | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<siteName> | Optional | 1 | String (8), variable | Name of site where target demotion library resides. |
<validateBackout> | Optional | 0 - 1 | String (1) | Y = Yes, validatebackout only. N** = No, perform backout. |
...
PACKAGE SERVICE BACKOUT Replies
The Serena XML reply messages to a package backout request do not return a <result> data structure. They do, however, return a standard <response> data structure to indicate the success or failure of the revert request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.
Successful requests will send messages like the following to the user who initiated the backout:
CMN406I - ACTP000012 BACKED OUT 2009/02/18 @ 08:36:08 AT SERT8, CN(INTERNAL)
CMN410I - ACTP000012 BASELINE REVERSE RIPPLED 2009/02/18 @ 08:36:08. CN(INTERNAL)
Successful requests will submit a BACKOUT JOB with output similar to the following:
-STEPNAME PROCSTEP RC EXCP CONN TCB
-CMN00 00 554 301 .00
-RESTCPY 00 133 245 .00
-DSPTM 00 611 323 .00
-RRIPPIA FLUSH 0 0 .00
-CMN00 00 552 299 .00
-CMN99 00 14 5 .00
-FAILURE FLUSH 0 0 .00
-PRINT 00 33 16 .00
-ACTP5512 ENDED. NAME-ACTP T
$HASP395 ACTP5512 ENDED
//* IMS OPTION: JOB TO PERFORM REVERSE RIPPLE OF PACKAGE ACTP000012
ChangeMan(R) CMNBATCH - 6.1.0 2009/02/18 08:36:08
ATTEMPTING TO INITIATE DIALOG WITH CHANGE MAN SUBTASK
SESSION ESTABLISHED WITH CHANGE MAN SUBTASK
SYSIN: ACTP000012 55 NOD=SERT8
PACKAGE BACKED OUT AT DEV. ACTP000012
BACKOUT AT DEV LOGGED. ACTP000012
BASELINE REVERSE RIPPLE LOGGED ACTP000012
END OF DATA ON SYSIN - TERMINATING
SESSION TERMINATED WITH CHANGE MAN STARTED TASK
Revert a Package - PACKAGE SERVICE REVERT
The package revert function reverts a package to development status after it has been backed out from baseline.
The Serena XML service/scope/message names for a package revert message are:
<service name="PACKAGE">
<scope name="SERVICE">
<message name="REVERT">
These tags appear in both requests and replies.
PACKAGE SERVICE REVERT Requests
You have the option to revert a package with or without concurrent validation of the staging library. However, validation is recommended.
Tip
To validate the staging library as part of your package revert request, enter “2” in the <validationParm>
tag.
The following example shows how you might code a package revert request using Serena XML. Data structure details for the package revert <request> tag appear in Exhibit 4-17.
Example XML — PACKAGE SERVICE REVERT Request
<?xml version="1.0" encoding="UTF-8"?>
<service name="PACKAGE">
<scope name="SERVICE">
<message name="REVERT">
<header>
<subsys>8</subsys>
<product>CMN</product>
</header>
<request>
<package>ACTP000012</package>
<siteName>SERT8</siteName>
<backoutReason01>TEST XML PACKAGE SERVICE REVERT</backoutReason01>
<jobCards01>//XMLX134 JOB (AMW,000),'DEFINE UCAT',MSGCLASS=Y,</jobCards01>
<jobCards02>// TIME=(,10),NOTIFY=USER24</jobCards02>
</request>
</message>
</scope>
</service>
...
Exhibit 4-17. PACKAGE SERVICE REVERT <request> Data Structure
Subtag | Use | Occurs | Data Type & Length | Values & Dependencies |
---|---|---|---|---|
<applName> | Optional | 0 -1 | String (4), variable | ZMF application name. Same as first 4 bytes of package name. NOTE: OK to omit trailing blanks. NOTE: Not recommended as replacement for <package> tag. Use <package> instead of <applName> & <packageId>. |
<jobCards01> | Optional | 0 - 1 | String (72), fixed length | First of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards02> | Optional | 0 - 1 | String (72), fixed length | Second of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards03> | Optional | 0 - 1 | String (72), fixed length | Third of up to 4 JCL statements needed to execute the promote in batch mode. |
<jobCards04> | Optional | 0 - 1 | String (72), fixed length | Fourth of up to 4 JCL statements needed to execute the promote in batch mode. |
<package> | Required | 1 | String (10), fixed | Fixed-format ZMF package name. |
<packageId> | Optional | 0 - 1 | Integer (6), variable | ZMF package ID number. Same as last 6 bytes of package name. NOTE: Leading zeroes required. NOTE: Not recommended. Use <package> instead of <applName> & <packageId>. |
<revertReason01> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason02> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason03> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason04> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason05> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason06> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason07> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason08> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<revertReason09> | Optional | 1 | String (72), variable | Free format text of reason for reverting package to development. |
<siteName> | Required | 1 | String (8), variable | Name of site where target revert library resides. |
<validationParm> | Optional | 0 - 1 | Integer (1) | 2** = Determine whether package is eligible for revert. Revert is not actually performed. |
...
PACKAGE SERVICE REVERT Replies
Serena XML replies to a package revert request do not return a <result> data structure. They do, however, return a standard <response> data structure to indicate the success or failure of the revert request. Successful requests have a return code of 00. Unsuccessful requests have a return code of 04 or higher.