Job Control Language
プロシージャは、JCL のスケルトンである。通常、置き換えることでデータセット名を指定できるようなシンボルを含む。これらのシンボル名は、プロシージャが実際に使われるときに、本当のデータセット名に置き換わる。プロシージャは、JCL にマクロ機能を可用にする。
MVS の古いバージョンでは、プロシージャは SYS1.PROCLIB に予め格納/カタログされていなければならなかった(カタログ式プロシージャ、カタプロ)。新しいバージョンでは、ユーザーが定義したライブラリに格納したプロシージャも使えるようになった。
通常、プロシージャは、上記のような proclib と称されるプロシージャライブラリから呼び出されて実行される。一方、実行するそのジョブそのものの中に定義することもできる。これは流れ内 (inline, in-stream) プロシージャと呼ばれ、普通は、proclib に登録する前にプロシージャをテストする際に用いられる。
最初の行は必ず PROC ステートメントで始まる。そこにはプロシージャ名と、シンボリックの初期値を定義する。例:
あるジョブがこのプロシージャをコールするとき、たとえば以下のように記述する:
FIRST の例では、MYPROC プロシージャ中のシンボル LIB は初期値 "MY.TEST.LIBRARY" に置換される。SECOND の例では、MYPROC プロシージャ中のシンボル LIB はコール時に指定した "FREDS.TEST.LIBRARY" に置換される。
流れ内プロシージャを終了するステートメントは:
Job Control Language(JCL、ジョブ制御言語)とは、メインフレームコンピュータで使われるジョブ制御用のスクリプト言語である。処理系によりJCS(Job Control Statement)、ECL(Executive Control Language)とも呼ぶ。
キーワードパラメータの順序は決まっていない。パラメータとパラメータの間に空白は置かない。空白の後はコメントになる。行内のパラメータの記述の左側、パラメータの前には、可読性を高めるための空白が入る。
JCL のステートメントのパラメータフィールドの後ろにインラインコメントを記述する場合には、少なくとも1文字の空白を入れてステートメントとコメントを分ける。71カラム目を超えてコメントを記述する場合には、72カラム目を空白にしない(通常、"X" が使われる)。次の行は "// " の後1カラム目から3カラム目の間からコメントの記述を続ける。
または
procname は、カタログされた、あるいは in-stream (流れ内)のプロシージャ名を指定する。param1 以下の指定は、プロシージャに定義されたシンボリックキーワードに依る。プロシージャは、予め定義された JCL(の集まり)である。慣例上、上記例の2つめ、「PROC=」を省いた形を用いる場合が多い。