Home About Courses Schedule Services Webinars Contact Search

Advanced COBOL Programming


Duration: 5.0 days

Method: Instructor led, Hands-on workshops

Price: $2800.00

Course Code: CO1020


Application programmers who want to learn more COBOL.


This course provides application developers with more complex knowledge in developing COBOL programs in a mainframe environment. Time is spent in more difficult programming workshops using both VSAM and sequential file processing, 2 dimensional arrays, internal sorting, COBOL sub programs and intrinsic functions. Much of the time is spent on hands on workshops writing and testing programs.


Upon successful completion of this course, the student will be able to:

  • Understand the principles and practices of coding with VSAM vs Sequential files
  • Code for VSAM using both primary key and alternate key processing
  • Code for 1 and 2 dimensional array processing
  • Understand variable length file processing
  • Code for many of the COBOL intrinsic functions
  • Code for COBOL subprograms
  • Understand COBOL internal sort processing
  • Coding for variable length records


Students MUST be familiar with z/OS JCL, TSO/ISPF and z/OS Utilities and a programming background is preferred. Students MUST have taken CO1010 course, Introduction to COBOL Programming or have comparable experience.


  • I. Testing and Debugging Review
    • Testing Strategies
    • Compile Listing Outputs
    • Usefulness of listings with abends
    • System Abends
    • User Abends
    • Abend Solving Methodology
    • Call syntax
  • II. COBOL Reports Review
    • Review of reporting (files, header and detail lines, break logic, etc..)
  • III. Table Handling
    • Review of Table/Array processing
    • What is the OCCURS clause
    • Tables and Redefines
    • Initializing a table
    • Loading a table
    • Searching a table
    • Using subscripts
    • One dimensional tables
    • Two dimensional tables
  • IV. Calling other programs
    • Call syntax
    • Linkage section
    • On Exception / On Overflow errors
    • Parameter passing
    • Dynamic vs static calls
  • V. How to use Access Method Services to work with VSAM files
    • How VSAM manages data sets
      • The Integrated Catalog Facility (ICF
      • Control intervals and control areas
      • Free space and record additions for a KSDS
      • How a record in a KSDS is randomly accessed by primary key
      • How alternate indexes work
    • Introduction to Access Method Services
      • Some commonly used AMS commands
    • How to use the DEFINE CLUSTER command to define a data set
      • Parameters that identify a data set
      • Parameters that describe the data set’s characteristics
      • Parameters that allocate space to the data set
      • Other DEFINE CLUSTER parameters
    • How to use AMS commands to print, copy, and delete data sets
      • How to use the PRINT command to print a data set
      • How to use the REPRO command to copy a data set
      • How to use the DELETE command to delete a data set
    • How to define and build an alternate index
      • How to use the DEFINE ALTERNATEINDEX command
      • How to use the DEFINE PATH command
      • How to use the BLDINDEX command
  • VI. How to work with indexed files
    • COBOL for indexed files
      • How to code Select statements
      • File status codes
      • How to code the Open, Close, Read, Write, and Rewrite statements
      • How to code the Start statement
      • How to code the Delete statement
    • A sequential file creation program
      • The program specification
      • The structure chart
      • The COBOL code
    • A random maintenance program
      • The program specification
      • The structure chart
      • The COBOL code
    • How to work with alternate indexes
      • COBOL coding using alternate indexes
      • How to code Start and Read statements
      • How to process an alternate index sequentially
      • How to process an alternate index randomly
    • Other processing techniques:
      • How to use dynamic processing
      • How to use skip-sequential processing
  • VII. COBOL Intrinsic Functions
    • Calendar Date Functions
    • Character Functions
    • Mathematical Functions
    • Statistical Functions
    • Financial Functions
    • Trigonometry Functions
  • VIII. Variable Length Record Processing
    • COBOL for variable-length records
      • How to code FD statements
      • How to write to a file that contains record types with different lengths
      • How to process a file that contains record types with different lengths
      • How to write records with a varying number of segments
      • How to process records with a varying number of segments
  • IX. Sorting and Merging
    • The Sort/Merge process
    • Describing the sort file
    • Input/Output procedures
    • Release/Return processes
    • Sample program
  • X. Testing and Debugging
    • Testing strategies
    • Compiler listings
    • ABENDS
    • Display statement
    • Finding abending statements