Introduction
Some things are so easily seen as part of a routine, that even the family dog can recognize them. You might see ready and eager eyes looking at you and suggesting “What are you waiting for”?
Similar identifiable routines exist for Endevor packages. For example, when a package is approved, the next thing that must happen to the package is its execution. If a package is approved and is ready to run but does not immediately execute, one might ask “What are you waiting for”? Is it really necessary to wait for a manual step or a scheduled sweep? One might consider the time spent waiting as an unnecessary delay.
For some Endevor sites, a second package action comes with delays. The manual examinations of executed packages, the determinations of “if” and “where” to ship, and the submissions of package shipments are additional delays. The package shipment should routinely follow the package execution.
This blog offers a solution that automates routine package actions and eliminates unnecessary wait times. If you implement objects from this Broadcom Github repository, then these features can be running on your site. Items in this repository have been used since 2006, and are now available to every Endevor site. Additionally, if you need help with the implementation, Broadcom is happy to assist. Keep in mind however that these are not officially part of the core product and should be considered as something you may need to maintain in the future. “What are you waiting for”?
Eliminate the waiting for package executions
To only automate your package executions, only a few items from the Broadcom Github repository are necessary. Then, when an Endevor package status obtains a value of “APPROVED”, a job to Execute the package is automatically submitted. If however, a package has an execution window that points to the future, nothing happens.
You can place these REXX members unchanged into a library of your choice. The name of the library must also be entered into C1UEXT07.COB.
PKGEEXEC.tbl
A “table” member that you can place unchanged into a library of your choice. By default, the table is coded to allow every package to be automatically executed. You may install the table as is, or modify it so that only specific package prefixes are selected. The name of the library that you choose to contain the table must be entered as the “MyDATALibrary” within the renamed @site.rex member.
A copy of this member must be created and named for each LPAR where these items will run. WHEREIAM.rex is provided solely for the purpose of helping to determine the name(s) to use for @site.rex. Just execute WHEREIAM.rex on the LPARs you want these items to run, and use the displayed name as the name of a renamed @site.rex member. Place the renamed member into the same library as the other REXX items.
The content of each @site.rex member reflects specific values for an LPAR.
C1UEXT07.cob
This Endevor exit program is called by Endevor and initiates the automation of package actions. Enter the dataset name where you placed the REXX members.
PKG#MODL.skl
Tailor this JCL image for your site. It contains your JCL's “Model” or “Skeleton” for executing packages.
Eliminate the waiting for package shipments
To automate your package shipments, install the items listed below from the Broadcom Github repository. Then, when an Endevor package is successfully EXECUTED, this routine examines the package content, determines whether any package shipments are expected based on your “Rules”, and submits zero or more package shipments automatically.
Before attempting to adopt this method for automating shipments, it is expected that you have already established manual package shipments at your site. Then you can capture one or more package shipment jobs to convert into shipment “models. The package name, destination name, and other details from a captured job(s) will be converted into variables for automated shipments from this solution.
See the Shipping Model(s) section below and the README.md file for more information.
REX members
Place these REXX members unchanged into a library of your choice. The name of the library must also be entered into C1UEXT07.COB (or your alternative choice).
-
BILDTGGR.rex
-
PKGESHIP.rex
-
PULLTGGR.rex
-
UPDTTGGR.rex
-
WHERE@M1.rex
If you elect to submit package shipments under the Endevor alternate id, then also copy these members from the Processor-Tools-and-Processor-Snippets section of GitHub.
-
SWAP2ALT.rex
-
SWAP2USR.rex
SHIPRULE.tbl
A “table” member that you tailor to designate how a package content determines shipment destinations. Create the member named “SHIPRULE” and place it into the library name assigned to “MyDATALibrary” within your renamed @site.rex member. Enter your Environment, Stage, System, Subsys, Destination, and Jobname values. If you leave the Date and Time values set to “+0” and “0000” then shipments occur immediately after package execution. You can increase those values if you want a delay in the package shipments
@site.rex
A copy of this member must be created and named for each LPAR where these items will run. WHEREIAM.rex is provided solely for the purpose of helping to determine the name(s) to use for @site.rex. Just execute WHEREIAM.rex on the LPARs you want these items to run, and use the displayed name as the name of a renamed @site.rex member. Place the renamed member into the same library as the other REXX items.
The content of each @site.rex member reflects specific values for an LPAR.
C1UEXT07.cob or C1UEXSHP.asm or C1UEXSHP.cob
Choose an Endevor exit program to initiate the automation of package actions. Enter the dataset name where you placed the REXX members.
If you want only to automate shipments and not package executions, you may consider an alternative exit named C1UEXSHP. This alternative is provided as an assembler and as a COBOL version smaller than C1UEXT07.
Shipping Model(s)
Create at least one Shipment “Model”. Three examples are provided named SHIP#FTP.skl, SHIPLOCL.skl and SHIPMODL.skl. To create your own, submit a manual package shipment. Capture the submitted JCL and make the following changes:
c all '2#ULGS2841111807' '&Package'
c all 20201207 '&Date8'
c all 19312963 '&Time8'
c all word userid '&Userid'
c TSO31 ALL '&Destination'
c all 201207 '&Date6'
c all 193129 '&Time6'
Where:
-
2#ULGS2841111807 is the package name for your manual shipment.
-
20201207 is the 8-character date of your manual package shipment
-
19312963 is the 8-character time of your manual package shipment
-
userid is your userid
-
TSO31 is the destination for your manual package shipment
-
201207 is the 6-character date of your manual package shipment
-
193129 is the 6-character time of your manual package shipment
Save each “model” and reference it within your renamed @site.rex member.
Create a “model” for each kind of shipment you want to be automated.
Choice of Run-Time Userid
By default, the package shipment jobs run under the userid of the person who performed the last action on the package. You can change this behavior and cause shipments to be run under the Endevor Alternate id by completing these steps:
USE_ALTID=+
RunUnderAltid = 'Y'
Other Considerations
You might want to use only one of the automated functions, but not both with the C1UEXT07 exit. Controlling which actions to be initiated can be selected within the C1UEXT07 program. Locate where the SETUP-EXIT-OPTIONS are set to values.
To disable an action, change the corresponding “MOVE ‘Y’” statement to “MOVE ‘N’”.
IF SETUP-EXIT-OPTIONS
********* to support automated package shipping
MOVE 'Y' TO PECB-AFTER-EXEC
MOVE 'Y' TO PECB-REQ-ELEMENT-ACTION-BIBO
MOVE 'Y' TO PECB-AFTER-BACKOUT
MOVE 'Y' TO PECB-AFTER-BACKIN
********* to enforce package backout = Y
********* MOVE 'Y' TO PECB-BEFORE-CAST
********* MOVE 'Y' TO PECB-MID-CAST
MOVE 'Y' TO PECB-BEFORE-CREATE-BLD
MOVE 'Y' TO PECB-BEFORE-CREATE-COPY
MOVE 'Y' TO PECB-BEFORE-CREATE-EDIT
MOVE 'Y' TO PECB-BEFORE-CREATE-IMPT
MOVE 'Y' TO PECB-BEFORE-MOD-BLD
MOVE 'Y' TO PECB-BEFORE-MOD-CPY
MOVE 'Y' TO PECB-BEFORE-MOD-EDIT
MOVE 'Y' TO PECB-BEFORE-MOD-IMPT
********* to support submission of package Execute jobs
MOVE 'Y' TO PECB-AFTER-REV-APPR
MOVE 'Y' TO PECB-AFTER-CAST
If you need help, just reach out to joseph.walther@broadcom.com and very likely we can quickly get you on your way.