Language task: BMS.yaml
Description
This sample provides the language task configuration to compile BMS programs for the MortgageApplication sample. It is imported via Languages.yaml.
Actions
- Define sources.
- Define variables.
- Create datasets.
- Loop through steps for each build file.
- Copy build file to dataset.
- Generate copybooks.
- Compile BMS.
- Perform link-edit.
Define sources
Define sources
as a list of file patterns to locate BMS programs within the build list.
sources:
- "**.bms"
Task variables
Required variables
copyGenParms
Type: String
Default: SYSPARM(DSECT),DECK,NOOBJECT
Copybook generation parameters.
compileParms
Type: String
Default: SYSPARM(MAP),DECK,NOOBJECT
BMS compile parameters.
linkEditParms
Type: String
Default: MAP,RENT,COMPAT(PM5)
Link-edit parameters.
Create datasets
Create datasets which must exist and be validated prior to compile.
datasets:
- name: ${HLQ}.BMS
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)
- name: ${HLQ}.LOAD
options: cyl space(1,1) dsorg(PO) recfm(U) blksize(32760) 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}.BMS(${MEMBER})'
.
- step: CopySource
type: copy
source: ${WORKSPACE}/${FILE}
target: //'${HLQ}.BMS(${MEMBER})'
Generate copybooks
The mvs step CopyGen
uses ASMA90 to generate copybooks.
- step: CopyGen
type: mvs
pgm: ASMA90
parm: ${copyGenParms}
dds:
- { name: "SYSIN", dsn: "${HLQ}.BMS(${MEMBER})", options: "shr", input: true }
- { name: "SYSPRINT", log: "${LOGS}/${STEP}-${FILE_NAME}.bms.log", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSPUNCH", dsn: "${HLQ}.BMS.COPY(${MEMBER})", options: "shr", output: true }
- { name: "TASKLIB", dsn: "${SASMMOD1}", options: "shr" }
- { 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: "SYSLIB", dsn: "${SDFHMAC}", options: "shr" }
- { dsn: "${MACLIB}", options: "shr" }
Compile BMS
The mvs step Compile
uses ASMA90 to compile BMS.
- step: Compile
type: mvs
pgm: ASMA90
parm: ${compileParms}
dds:
- { name: "SYSIN", dsn: "${HLQ}.BMS(${MEMBER})", options: "shr", input: true }
- { name: "SYSPRINT", log: "${LOGS}/${STEP}-${FILE_NAME}.bms.log", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new" }
- { name: "SYSPUNCH", dsn: "&&TEMPOBJ", options: "cyl space(5,5) unit(vio) blksize(80) lrecl(80) recfm(f,b) new", pass: true }
- { name: "TASKLIB", dsn: "${SASMMOD1}", options: "shr" }
- { 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: "SYSLIB", dsn: "${SDFHMAC}", options: "shr" }
- { dsn: "${MACLIB}", options: "shr" }
Link-edit step
The mvs step LinkEdit
uses IEWBLINK to perform a link-edit.
- step: LinkEdit
type: mvs
pgm: IEWBLINK
parm: ${linkEditParms}
dds:
- { name: "SYSLIN", dsn: "&&TEMPOBJ", options: "shr" }
- { name: "SYSLMOD", dsn: "${HLQ}.LOAD(${MEMBER})", options: "shr", output: true, deployType: MAPLOAD }
- { name: "SYSPRINT", log: "${LOGS}/${STEP}-${FILE_NAME}.bms.log", 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: "SYSLIB", dsn: "${SCEELKED}", options: "shr" }
- { dsn: "${SDFHLOAD}", options: "shr" }