COBOLとJCL連携の基本!PGMパラメータの指定とプログラム呼び出しの流れを初心者向けに完全解説
生徒
「JCLでPGMって書いてありますけど、これって何をしているんですか?」
先生
「PGMは、どのCOBOLプログラムを動かすかを指定する大切な部分です。」
生徒
「パラメータも渡せるみたいですが、流れが全然イメージできません…」
先生
「では、JCLからCOBOLプログラムが呼び出される流れを、最初から順番に説明します。」
1. PGMパラメータとは何か
PGMパラメータとは、JCLで実行するプログラム名を指定するためのものです。 JCLは「仕事の指示書」、COBOLプログラムは「実際に働く人」のような関係にあります。 PGMで「誰に仕事をさせるか」を決めていると考えると分かりやすいです。
COBOLとJCL連携では、このPGM指定がなければプログラムは一切動きません。
2. JCLからCOBOLプログラムが呼ばれる流れ
JCLが実行されると、まずOSがJCLを読み込みます。 その中に書かれているPGMを見て、「このCOBOLプログラムを起動する」と判断します。 その後、必要なファイルやパラメータを準備してから、COBOLプログラムを開始します。
初心者の方は、「JCLが司令塔で、COBOLが作業担当」と覚えると理解しやすくなります。
3. PGM指定の基本的な書き方
PGMはEXEC文で指定します。 EXECは「実行してください」という意味を持つJCLの命令です。 ここで指定した名前と同じCOBOLプログラムが呼び出されます。
//STEP01 EXEC PGM=SAMPLE01
この例では、SAMPLE01というCOBOLプログラムが実行されます。
4. PGMパラメータで値を渡す仕組み
PGMパラメータを使うと、JCLからCOBOLプログラムへ値を渡すことができます。 これは「今日はこの条件で動いてください」と指示を出すようなものです。
JCL側で渡した文字列は、COBOLプログラム内で受け取って処理に使われます。
//STEP01 EXEC PGM=SAMPLE02,PARM='TEST'
5. COBOL側でPGMパラメータを受け取る
COBOLでは、LINKAGE SECTIONとPROCEDURE DIVISIONを使ってパラメータを受け取ります。 LINKAGE SECTIONとは、外部から渡されるデータを受け取るための場所です。
LINKAGE SECTION.
01 WK-PARM.
05 WK-PARM-DATA PIC X(10).
PROCEDURE DIVISION USING WK-PARM.
DISPLAY WK-PARM-DATA.
これにより、JCLから渡された値を画面に表示できます。
6. PGMパラメータを使う場面の例
PGMパラメータは、処理モードの切り替えや、テスト用と本番用の動作分岐によく使われます。 同じCOBOLプログラムでも、渡す値を変えるだけで動きを変えられるため、とても便利です。
これは、家電の「強」「弱」スイッチを切り替えるような感覚に近いです。
7. 初心者がつまずきやすいポイント
よくある失敗は、JCLのPARMとCOBOL側の受け取りサイズが合っていないことです。 文字数が足りない、または多すぎると、意図しない動作になります。
最初は短い文字列で試しながら、動きを確認するのがおすすめです。
8. COBOLとJCL連携を理解する重要性
COBOL単体だけでなく、JCLとの連携を理解することで、実務で使える知識になります。 PGMパラメータはその中でも特に基本で、避けて通れないポイントです。
流れをイメージしながら、一つひとつ丁寧に確認していきましょう。