A−VXのジョブ制御言語(JCL)
- 1 ジョブ制御言語って?
-
Windowsのバッチファイル、Linuxのシェルスクリプトを構成するコマンドのようなものです。主にバッチ処理を行うのに使用します。非常にシンプルですが、ジョブ制御言語とA−VXユーティリティを組み合わせれば、一通りのバッチ処理はできます。
Windows(MS−DOS)の世界では一連のバッチ処理をコマンドで記述したファイルのことをバッチファイルと言いますが、A−VXの世界では一連のバッチ処理をジョブ制御言語で記述したものをジョブストリーム(JS)と言います。
A−VXのジョブ制御言語は非常に単純なので、簡単なバッチ処理ならすぐに作れるようになります。
- 2 何ができるの?
-
まず1つめとして、RUNコマンド行から、アプリケーションやユーティリティを実行したりできます。通常、A−VXではアプリケーションやユーティリティやジョブはメニューから選択して実行していますが、それほど毎回実行しないようなアプリケーションなどはメニューに登録していないのではないかと思います。これらのアプリケーションやユーティリティをRUNコマンド行でジョブ制御言語のコマンド(RUN文)を使って実行します。RUNコマンド行で使えるのはRUN文だけです。
業務では、コンピュータ上で毎回(毎日)同じような作業を行うと思います。例えば、朝になったらファイル上にある昨日のデータをまっさらに消して、昼に伝票入力、夜になったらファイル上にあるデータを使ってマスタファイルを更新するとか。これを毎日朝に1つ1つ手作業でファイル内のデータを消していったり、夜になったら1つ1つコマンドを入力してマスタファイルに更新して言ったりするのは面倒です。
これら一連の業務をまとめて、オフコン上に記録しておいて、コマンド1つで実行できれば楽になります。この一連の業務をまとめて記述したものをJSで、このJSを記述するためにジョブ制御言語を使います。これが2つ目の用途で、これが主な用途になります。
- 3 ジョブ制御言語のコマンド
-
覚えるべきA−VXのジョブ制御言語(JCL)のコマンドは、たったの9種類しかありません。
JCLだけで、ジョブストリームを作ることはありません。JCLとユーティリティとアプリケーションを組み合わせて、ジョブストリームを作ります。
基本JCL文 名前 機能 /RUN RUN文 LM名、JS名、PM名を指定することにより目的のジョブを起動します。 /> ステップ終了文 ジョブステップの終わりやデータの終了を示すために使用します。 /: 流れ制御文 ジョブ制御変数やセンススイッチの状態など、条件によって処理を分岐させるために使用します。 // ディスプレイ文 画面にメッセージ(コメント)を表示するために使用します。 /* コメント文 プリンタにメッセージ(コメント)を出力するために使用します。 /PAUSE 一時停止文 画面にメッセージ(コメント)を表示して一時停止します。 /SET 制御変数設定文 ジョブ制御変数、ジョブの属性およびセンススイッチの状態を変更します。 /ASSIGN アサイン文 MSDファイル名およびMSDファイルの割り当てを変更します。 * コメント 先頭1文字が”*”で始まる行はコメント行とし、処理を行いません。
※コメント文とコメントがあることに注意。2つは違います。
*ジョブストリームの例 /SET SKIP; /RUN PRG01,FIL=USERJSL2; /> ; /: SSW1=OFF JUMP=AAA; /RUN PRG02,FIL=USERJSL2; /> ; AAA/RUN PRG03; /> ;
- 4 ユーティリティと組み合わせる
システムにはファイルをアロケートしたりデータをソートしたりといった便利なユーティリティがたくさん用意されています。COBOLでデータをソートするプログラムを作ることができますが、ユーティリティを利用したほうが簡単です。簡単に実用的なJSを作るためには、RUN文でユーティリティを実行しなければなりません。つまり、どのユーティリティがどんな機能を持っているのかを知らなければならないのです。
- 5 ユーティリティを使うJSを簡単に作る
#ABCというユーティリティや新システム体系ユーティリティ(新HIのユーティリティ)は、行なった操作を自動的にJS化する機能があります。この機能を使うと簡単にJSを作ることができます。
例えば、ユーザがファイルをアロケートする操作をするとします。その操作をA−VXが自動的にJS化してくれるのです。2回目以降、同じファイルをアロケートする時には、自動作成したJSを利用すればいいのです。