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