Skip to content
JCL & batch

PROC

A reusable piece of JCL stored as a member and invoked by name, so common steps are written once.

Also written procedure, catalogued procedure, PROCLIB

A procedure, universally called a PROC, is JCL kept in a library and called from a job by name. It saves repeating the same sequence of steps in every job that needs them.

Compiling a program is the standard example. The steps to compile, link and run are the same every time, so a site keeps them in a PROC and jobs invoke it in one line instead of restating twenty.

PROCs are parameterised. Symbolic variables inside them are given values when the PROC is called, so the same procedure serves many jobs with different dataset names, libraries and options. A calling job can also add or override individual DD statements within a step of the PROC, which is how one procedure covers cases its author never anticipated.

There are two kinds. A catalogued procedure lives in a procedure library available to everyone; an instream procedure is defined inside the job itself, which is handy while testing.

When a job runs, the output shows the PROC expanded into the steps it contributed, which is where you look when a call is not behaving as expected.

Browse all 115 terms

Learn this properly.

Use PROC for real in Mainframe101, in your browser, with Zed beside you. Join the waitlist.

Early access and updates. No spam, unsubscribe any time.