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" }