Create project life cycle environment definition files
The values stored in the projectED files are used to define and map the z/OS® infrastructure for each life cycle stage on the mainframe. This data is then queried by the build process and used to determine where and how the project will migrate through the life cycle.
About this task
- projectED_DV for the DEV life cycle stage.
- projectED_QA for the QA live cycle stage.
- projectED_PD for the PROD development stage.
The following shows an example of the projectED_DV script. This script must be modified with the correct data to meet your site's needs or to add more attributes to meet your requirements, such as attributes for CICS® or other components involved in the build process. All the build scripts using this data must be modified accordingly.
In the following example, the left column contains variable names that can be in any sequence. The content will be read into a hash table, so the variables' sequence has no impact. The right column contains the corresponding values. The two columns are tab-delimited by default. Leave a blank for any variable that is not used. If you want to change the format of this file, you must change the Perl script that reads the file to obtain the variable values.
env → DEV
db2sys → DB2
os390_hostname → stplex4a.svl.ibm.com
os390_port → 9528
stage
copylib1 → XIAOLIN.B.COPYLIB
copylib2 → XIAOLIN.B.COPYLIB2
copylib3 → XIAOLIN.B.COPYLIB3
copylib4 → XIAOLIN.B.COPYLIB4
syslib1 → XIAOLIN.C.SYSLIB
syslib2 → XIAOLIN.C.SYSLIB2
syslib3 → XIAOLIN.C.SYSLIB3
syslib4 → XIAOLIN.C.SYSLIB4
steplib1 → XIAOLIN.C.STEPLIB1
steplib2
hostpds_prefix
hostpds_affix A
cbllib → XIAOLIN.CI.SOURCE
loadlib → XIAOLIN.CA.PARMBLD.LOAD
c390llib → XIAOLIN.IMS.PGMTEST
dbrmlib → XIAOLIN.DB2.DBRM.TEST
tgtlib → XIAOLIN.CI.COPYLIB
db2_owner
The following table describes each variable you can use in the projectED_lifecyclestage files and provides examples of each. Parameters marked Yes in the Required column must be provided with a valid data value. To omit an optional parameter, such as the $stage parameter, specify a blank space in its place.
Variable | Description | Required | Example or Remarks |
---|---|---|---|
$env | Specified environment | Yes | PROD, DEV, QA |
$db2sys | Specified DB2® | No | DB2 |
$os390_hostname | Remote Build server host | Yes | stplex4a.svl.ibm.com |
$os390_port | Port number to run the Remote Build server | Yes | 9525, or 1-699999 |
$stage | N/A | No | N/A |
$copylib1 | Copybook library | Yes | Specify the location of copybooks |
$copylib2 | Copybook library | No | Specify another location for copybooks, if necessary |
$copylib3 | Copybook library | No | Specify another location for copybooks, if necessary |
$copylib4 | Copybook library | No | Specify another location for copybooks, if necessary |
$syslib1 | System library | Yes | System library where exec modules are located |
$syslib2 | System library | No | Specify another system library where exec modules are located, if necessary |
$syslib3 | System library | No | Specify another system library where exec modules are located, if necessary |
$loadlib | Load module library | Yes | Specify an allocated PDS for linking results |
$c390llib | N/A | No | N/A |
$dbrmlib | DB2 | No | Specify a dataset that holds modified DBRMs |
$tgtlib | PDS for upload copybook | No | Specify an allocated PDS to hold checkin copybooks |
$db2_owner | DB2 | No | Specify the DB2 owner name |
Example
my ($env, $db2sys, $os390_hostname, $os390_port, $stage,
$copylib1, $copylib2, $copylib3, $copylib4,
$syslib1, $syslib2, $syslib3,
# $syslib4, $steplib1,, $steplib2 #optional
# $hostpds_prefix, $hostpds_affix, $cbllib #optional
$loadlib, $c390llib, $dbrmlib, $tgtlib, $db2_owner) =
bccpbmod::setEnvironmentVar($projectED_Path,$lifecycle,$delimiter);
Sub setEnvironmentVar{
…
…
…
return (
$EnvHash{'env'}, $EnvHash{'db2sys'}, $EnvHash{'os390_hostname'}, $EnvHash{'os390_port'}, $En-vHash{'stage'},
$EnvHash{'copylib1'},$EnvHash{'copylib2'},$EnvHash{'copylib3'},$EnvHash{'copylib4'},
$EnvHash{'syslib1'},$EnvHash{'syslib2'},$EnvHash{'syslib3'},
# $EnvHash{'syslib4'},$EnvHash{'steplib1'},$EnvHash{'steplib2'}, #optional
# $EnvHash{'hostpds_prefix'},$EnvHash{'hostpds_affix'},$EnvHash{'cbllib'}, #optional
$EnvHash{'loadlib'}, $EnvHash{'c390llib'}, $EnvHash{'dbrmlib'}, $EnvHash{'tgtlib'}, $EnvHash{'db2_owner'});
The variables defined in the projectED files are used by the build engine to generate BCL when the build request is processing.
If you want to use the optional variables marked #optional in the code sample above, assign a value to them in the projectED file, always following the tab delimiter rule. Uncomment the commented lines to obtain these optional variables. If you do not want to use the optional variables, comment them out as shown in the above example so that values will not be returned. It does not matter whether values have been assigned to these optional variables in the projectED file or not, because these values will not be returned. For example, the variable steplib2 is not used and the value position is blank, and the variable syslib4 is not used, but is assigned the value XIAOLIN.C.SYSLIB4. You can also delete these variables from the projectED file.