Application Development Support
Part Three - Challenge #05


What you learned can help others

A developer at your company contacted you and said something is wrong with the BBRI client data. The developer wrote a program to read the BBRI client data. The result was a program execution abnormal end S0C7. Abend S0C7 is a well known failure related to invalid data in a numeric field.

Recreate the reported problem
  1. Edit z#####.source partitioned data set and select, s, a new member name, cbl0002
  2. Copy 'zos.mtm2018.public.source(cbl0002) into cbl0002
  3. F3 to save and exit
  4. Edit z#####.jcl partitioned data set member name cbl0002j
  5. Submit JCL to compile and execute modified COBOL source code, then review the output
    submit ; =sd ; st jumping to SDSF status panel

The compile should be successful and the program execution should result in abend S0C7.

You explain to the application developer that you just completed an analysis of the BBRI client data and found invalid packed decimal fields.


Peabody instructions

Use SORT to remove the invalid packed decimal fields and write the output to a temporary data set.

Pass the SORT temporary data set to be read by the application developer program.

If you follow the instructions below, then you can prove the application developer program S0C7
was the result of the invalid packed decimal records.

Complete the challenge by following Peabody instructions

Note: Consider using cut and paste for 8, 9, and 10

  1. Edit z#####.jcl(cbl0002j)
  2. Delete lines 2 thru 8
      No need to recompile the COBOL source code
  3. Delete the last 3 lines
  4. After ' a ' the JCL JOB operation (line 1), copy sort004 into cbl0002j
  5. Delete line beginning with //SORT004 JOB
  6. Delete line beginning with //BAD
  7. Delete line beginning with OUTFILE FNAMES=BAD
  8. Change //GOOD DD SYSOUT=*
  9. Change //PRTLINE DD SYSOUT=*,OUTLIM=15000
  11. submit ; =sd ; st jumping to SDSF status panel

Success is Z#####.P3.OUTPUT(#05) contains BBRI records written by the application developer program, CBL0002.

If the COBOL program successfully executed, then the program writes output to Z#####.P3.OUTPUT(#05)

Next: Challenge #06