z/OS Job Control Language (JCL) - Advanced

z/OS Job Control Language (JCL) - Advanced


This course will interest programmers, computer operators, system analysts, system programmers, and all others involved in improving coding techniques and exploring JCL's features.


Delegates should have a basic understanding of the operating environment and operating system functions, especially JCL. This can be gained by attending our z/OS Job Control Language (JCL) - Basic course.

Knowledge of TSO/ISPF is required for this course. This can be gained by attending our z/OS TSO/ISPF Workshop.


2 days. Hands on.

NOTE: This course can be combined with our z/OS Job Control Language (JCL) - Basic course to produce a comprehensive five day event. Please see z/OS Job Control Language (JCL) - Basic and Advanced, or contact us, for more information.

Course Objectives

This course provides an in-depth look at z/OS JCL. It explores Generation Data Groups, Conditional JCL, Procedures and the use of UNIX files before rounding off with an introduction to various utility programs. It contains 22 hands on exercises.

On completion of this course, delegates will be able to:

  • Create and maintain a GDG.
  • Exploit the use of Conditional JCL.
  • Create in-stream procedures.
  • Create catalogue procedures.
  • Use symbolic parameters.
  • Use procedure overrides.
  • Access UNIX files via JCL.
  • Choose an appropriate utility for a task.

Course Content

JCL Revision
Evolution of JCL
JCL syntax
Statement types
Operand types
JCL Error points
Comprehension quiz

Generation Data Groups
GDG Terminology:
• Absolute generations
• Relative generations
Creating generations
Retrieving generations
Building a base entry
Creating a GDS:
• Using a Model DSCB method
• Using the DATACLAS method
Listing GDG information
Altering the base entry
Re-run using Version Numbers
Deleting entries:
• IEFBR14 method
• IDCAMS method
Delete base and its associations
Comprehension questionnaire
5 practical exercises

Conditional JCL
Information available at step end
IF / THEN / ELSE construct
Relational expressions
The NOT operator
Order of precedence
Eligible statements within Conditional JCL
Ineligible statements within Conditional JCL
What is executed unconditionally?
Example without an ELSE
Example with an ELSE
Nested IF statements
Comprehension questionnaire
3 practical exercises

JCL Procedures
Procedure definition:
• Locating a procedure
• Default libraries (JES2 and JES3)
• User libraries (JES2 and JES3)
• In-stream
• Search order
Procedure construction:
• Naming
• Exclusions
• Invocation
Procedure statement overrides and additions:
• EXEC statements
• DD statements
• OUTPUT statements
Symbolic parameters:
• Identification
• Assigning default values
• Overriding default values
• The SET statement
INCLUDE statement
Nested procedures
Comprehension questionnaire
8 practical exercises

Accessing UNIX files
File systems HFS vs. ZFS
Creating a new file
Overwriting an existing file
Deleting a UNIX file
Re-run-able jobs
Reading an existing file
Obtaining a list of files
6 practical exercises

Using Utilities
Review of why a utility might be used, discussions on:
• Allocating data space
• Backing up a data set
• Changing a data set's LRECL
• Compressing a PDS
• Copying a data set
• Deleting a data set
• Listing the catalogue
• Listing a PDS directory
• Printing a data set
• Renaming a data set
• Restoring a data set
• Segmenting a data set
IKJEFT01 – (Batch TSO)
Comprehension quiz
4 practical exercises

Virtual Courses

ALL of our courses can be delivered virtually! Our Bath public schedule courses are available as live virtual sessions, using the popular Zoom Virtual Classroom and remote labs. Delegates can test their access at: www.zoom.us/test

Public Courses

On-Site Courses

Can't attend one of our public classes? Booking for multiple people?

All our courses are available on your site! Delivered for your staff, at your premises.

Contact us to find out more...