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

Three sample project life cycle environment definition files are provided for parameterized build:
  • projectED_DV for the DEV life cycle stage.
  • projectED_QA for the QA live cycle stage.
  • projectED_PD for the PROD development stage.
If a change is needed or a different migration path is necessary as development occurs, the parameterized build user need only change the user profile. The build engine will use the new values and continue on in the new life cycle or move to the new z/OS infrastructure for testing.

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.

Table 1. Variables in projectED_lifecyclestage files
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

The following is an example of code that uses the defined variables specified in projectED_DV file.
 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.