Job Control Language (JCL) is a scripting language used on the IBM mainframe operating systems z/OS and z/VSE (and predecessors) to instruct the system on how to run a batch job or start a subsystem. In z/VSE, it is sometimes referred to as JCS (Job Control Statements). In z/OS, Job Entry Control Language (JECL) controls how JES2 or JES3 handles the job execution and output.
In JCL, the unit of work is the job. A job consists of one or several steps, each of which is a request to run one specific program. For example, a job to produce a printed report for management might consist of the following steps:
A user-written program to select the appropriate records and copy them to a temporary file.
Sort the temporary file into the required order, usually using a general-purpose sort utility
A user-written program to present the information in a way that is easy for the end-users to read and includes other useful information such as sub-totals
- A user-written program to format selected pages of the end-user information for display on a monitor or terminal.