Language task: PLI.yaml
Description
This sample provides the language task configuration to compile PLI for the MortgageApplication sample. It is imported via Languages.yaml.
Configuration notice
If you are using the out-of-box PLI language script, you may need to add datasets to your Languages.yaml
as described in Configuring Extra Datasets for Samples.
Actions
- Define sources.
- Define variables.
- Create datasets.
- Loop through steps for each build file.
- Copy build file to dataset.
- Compile PLI.
- Perform link-edit.
Define sources
Define sources
as a list of file patterns to locate PLI testcases within the build list.
sources:
- "**.pli"
Task variables
Required variables
isIMS
Type: boolean
Default: false
Flag to activate IMS options.
compileParms
Type: String
Default: PP(INCLUDE('ID(++INCLUDE)'))
Conditional variable builds compile parameters based on scanned or defined properties e.g. CICS, SQL.
- name: compileParms
value: PP(INCLUDE('ID(++INCLUDE)'))
append:
- condition: ${IS_CICS}
value: SYSTEM(CICS),PP(MACRO,CICS)
- condition: ${IS_SQL}
value: PP(SQL)
- condition:
exists: errPrefix
value: XINFO(XML)
- condition:
exists: debug
eval: ${debug}
value: TEST
- condition: ${isIMS}
value: SYSTEM(IMS)
dependencySearchPath
Type: String
Default: search:${WORKSPACE}/?path=${APP_DIR_NAME}/plinc/*.inc
Dependency search path for a single repository build.
doLinkEdit
Type: boolean
Default: true
Flag to perform link-edit.
linkEditParms
Type: String
Default: MAP,RENT,COMPAT(PM5)
Link-edit parameters.
scanLoadModule
Type: boolean
Default: true
Flag indicating to scan the load module for static link dependencies.
Create datasets
Create datasets which must exist and be validated prior to compile.
datasets:
- name: ${HLQ}.PLI
options: cyl space(1,1) lrecl(80) dsorg(PO) recfm(F,B) dsntype(library)
- name: ${HLQ}.LOAD
options: cyl space(1,1) dsorg(PO) recfm(U) blksize(32760) dsntype(library)
- name: ${HLQ}.PLI.INCLUDE
options: cyl space(1,1) lrecl(80) dsorg(PO) recfm(F,B) dsntype(library)
- name: ${HLQ}.OBJ
options: cyl space(1,1) lrecl(80) dsorg(PO) recfm(F,B) dsntype(library)
- name: ${HLQ}.DBRM
options: cyl space(1,1) lrecl(80) dsorg(PO) recfm(F,B) dsntype(library)
- name: ${HLQ}.BMS.COPY
options: cyl space(1,1) lrecl(80) dsorg(PO) recfm(F,B) dsntype(library)
Task steps
For each build file, the following steps will be executed.
Copy step
The copy step copySrc
copies the current build file from its HFS source to the dataset //'${HLQ}.PLI(${MEMBER})'
.
- step: copySrc
type: copy
source: ${WORKSPACE}/${FILE}
target: //'${HLQ}.PLI(${MEMBER})'
dependencyCopy:
- search: ${dependencySearchPath}
mappings:
- source: "**/*"
dataset: ${HLQ}.PLI.INCLUDE
Compile step
The mvs step compile
calls IBMZPLI to compile the PLI file.
- step: compile
type: mvs
pgm: IBMZPLI
parm: ${compileParms}
maxRC: 4
dds:
- { name: "SYSIN", dsn: "${HLQ}.PLI(${MEMBER})", options: "shr", input: true }
- { name: "SYSLIN", dsn: "${HLQ}.OBJ(${MEMBER})", options: "shr", output: true }
- { name: "SYSPRINT", log: "${LOGS}/${STEP}-${FILE_NAME}.pli.log", options: "cyl space(5,5) unit(vio) blksize(0) lrecl(137) recfm(v,b) new" }
- { name: "SYSMDECK", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT1", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT2", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT3", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT4", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT5", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT6", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT7", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT8", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT9", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT10", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT11", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT12", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT13", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT14", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT15", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT16", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT17", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSLIB", dsn: "${HLQ}.PLI.INCLUDE", options: "shr" }
- { dsn: "${HLQ}.BMS.COPY", options: "shr" }
- { dsn: "${SDFHPL1}", condition: "${IS_CICS}", options: "shr" }
- { dsn: "${SCSQPLIC}", condition: "${IS_MQ}", options: "shr" }
- { name: "TASKLIB", dsn: "${IBMZPLI}", options: "shr" }
- { dsn: "${SDFHLOAD}", condition: "${IS_CICS}", options: "shr" }
- { dsn: "${SDSNLOAD}", condition: "${IS_SQL}", options: "shr" }
- { dsn: "${SDSNEXIT}", condition: { exists: "SDSNEXIT", eval: "${IS_SQL}" }, options: "shr" }
- { dsn: "${SFELLOAD}", condition: { exists: "SFELLOAD" }, options: "shr" }
- { dsn: "${SFEKLOAD}", condition: { exists: "SFEKLOAD" }, options: "shr" }
- { name: "DBRMLIB", dsn: "${HLQ}.DBRM(${MEMBER})", condition: "${IS_SQL}", options: "shr", output: true, deployType: "DBRM" }
- { name: "SYSADATA", condition: { exists: "errPrefix" }, options: "DUMMY" }
- { name: "SYSXMLSD", condition: { exists: "errPrefix" }, dsn: "${HLQ}.${errPrefix}.SYSXMLSD.XML", options: "tracks space(200,40) dsorg(PS) blksize(27998) lrecl(16383) recfm(v,b) new keep" }
Link-edit step
The optional mvs step linkEdit
calls IEWBLINK to perform a link-edit when variable doLinkEdit
is true
.
- step: linkEdit
type: mvs
pgm: IEWBLINK
parm: ${linkEditParms}
condition: ${doLinkEdit}
maxRC: 0
dds:
- { name: "SYSLIN", dsn: "${HLQ}.OBJ(${MEMBER})", options: "shr" }
- { name: "SYSLMOD", dsn: "${HLQ}.LOAD(${MEMBER})", options: "shr", output: true, deployType: "LOAD", scan: "${scanLoadModule}" }
- { name: "SYSPRINT", log: "${LOGS}/${STEP}-${FILE_NAME}.pli.log", append: true, options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSUT1", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "RESLIB", condition: { exists: RESLIB }, options: "shr" }
- { name: "SYSLIB", dsn: "${HLQ}.OBJ", options: "shr" }
- { dsn: "${SCEELKED}", options: "shr" }
- { dsn: "${SDFHLOAD}", condition: "${IS_CICS}", options: "shr" }
- { dsn: "${SDFSRESL}", condition: "${isIMS}", options: "shr" }
- { dsn: "${SDSNLOAD}", condition: "${IS_SQL}", options: "shr" }
- { dsn: "${SCSQLOAD}", condition: "${IS_MQ}", options: "shr" }