Job stream

In a non-interactive computer system, particularly IBM mainframes, a job stream, jobstream, or simply job is the sequence of job control language statements (JCL) and data (called instream data) that comprise a single "unit of work for an operating system". The term job traditionally means a one-off piece of work, and is contrasted with a batch (executing the same steps over many inputs), but non-interactive computation has come to be called "batch processing", and thus a unit of batch processing is often called a job, or by the oxymoronic term batch job; see job for details. Performing a job consists of executing one or more programs. Each program execution, called a job step, jobstep, or step, is usually related in some way to the others in the job. Steps in a job are executed sequentially, possibly depending on the results of previous steps, particularly in batch processing.

The term "job stream" is particularly associated with mainframes; in the IBM z/OS operating system, a job is initiated by a  and terminated by the next   or   statement. Each job step consists of one  statement indicating the program to be executed and usually multiple   statements defining the files and devices to be used.

Example
A simple example of a job stream is a system to print payroll checks which might consist of the following steps, performed on a batch of inputs:
 * 1) Read a file of data containing employee id numbers and hours worked for the current pay period (batch of input data). Validate the data to check that the employee numbers are valid and that the hours worked are reasonable.
 * 2) Compute salary and deductions for the current pay period based on hours input and pay rate and deductions from the employee's master record. Update the employee master "year-to-date" figures and create a file of records containing information to be used in the following steps.
 * 3) Print payroll checks using the data created in the previous step.
 * 4) Update bank account balance to reflect check numbers and amounts written.

Each step depends on successful completion of the previous step. For example, if incorrect data is input to the first step the job might terminate without executing the subsequent steps to allow the payroll department to correct the data and rerun the edit. If there are no errors the job will run to completion with no manual intervention.