カテゴリ: COBOL 更新日: 2026/01/02

COBOLとJCL連携の基本!PGMパラメータの指定とプログラム呼び出しの流れを初心者向けに完全解説

PGMパラメータの指定とプログラム呼び出しの流れ
PGMパラメータの指定とプログラム呼び出しの流れ

先生と生徒の会話形式で理解しよう

生徒

「JCLでPGMって書いてありますけど、これって何をしているんですか?」

先生

「PGMは、どのCOBOLプログラムを動かすかを指定する大切な部分です。」

生徒

「パラメータも渡せるみたいですが、流れが全然イメージできません…」

先生

「では、JCLからCOBOLプログラムが呼び出される流れを、最初から順番に説明します。」

1. PGMパラメータとは何か

1. PGMパラメータとは何か
1. PGMパラメータとは何か

PGMパラメータとは、JCLで実行するプログラム名を指定するためのものです。 JCLは「仕事の指示書」、COBOLプログラムは「実際に働く人」のような関係にあります。 PGMで「誰に仕事をさせるか」を決めていると考えると分かりやすいです。

COBOLとJCL連携では、このPGM指定がなければプログラムは一切動きません。

2. JCLからCOBOLプログラムが呼ばれる流れ

2. JCLからCOBOLプログラムが呼ばれる流れ
2. JCLからCOBOLプログラムが呼ばれる流れ

JCLが実行されると、まずOSがJCLを読み込みます。 その中に書かれているPGMを見て、「このCOBOLプログラムを起動する」と判断します。 その後、必要なファイルやパラメータを準備してから、COBOLプログラムを開始します。

初心者の方は、「JCLが司令塔で、COBOLが作業担当」と覚えると理解しやすくなります。

3. PGM指定の基本的な書き方

3. PGM指定の基本的な書き方
3. PGM指定の基本的な書き方

PGMはEXEC文で指定します。 EXECは「実行してください」という意味を持つJCLの命令です。 ここで指定した名前と同じCOBOLプログラムが呼び出されます。


//STEP01  EXEC PGM=SAMPLE01

この例では、SAMPLE01というCOBOLプログラムが実行されます。

4. PGMパラメータで値を渡す仕組み

4. PGMパラメータで値を渡す仕組み
4. PGMパラメータで値を渡す仕組み

PGMパラメータを使うと、JCLからCOBOLプログラムへ値を渡すことができます。 これは「今日はこの条件で動いてください」と指示を出すようなものです。

JCL側で渡した文字列は、COBOLプログラム内で受け取って処理に使われます。


//STEP01  EXEC PGM=SAMPLE02,PARM='TEST'

5. COBOL側でPGMパラメータを受け取る

5. COBOL側でPGMパラメータを受け取る
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パラメータを使う場面の例

6. PGMパラメータを使う場面の例
6. PGMパラメータを使う場面の例

PGMパラメータは、処理モードの切り替えや、テスト用と本番用の動作分岐によく使われます。 同じCOBOLプログラムでも、渡す値を変えるだけで動きを変えられるため、とても便利です。

これは、家電の「強」「弱」スイッチを切り替えるような感覚に近いです。

7. 初心者がつまずきやすいポイント

7. 初心者がつまずきやすいポイント
7. 初心者がつまずきやすいポイント

よくある失敗は、JCLのPARMとCOBOL側の受け取りサイズが合っていないことです。 文字数が足りない、または多すぎると、意図しない動作になります。

最初は短い文字列で試しながら、動きを確認するのがおすすめです。

8. COBOLとJCL連携を理解する重要性

8. COBOLとJCL連携を理解する重要性
8. COBOLとJCL連携を理解する重要性

COBOL単体だけでなく、JCLとの連携を理解することで、実務で使える知識になります。 PGMパラメータはその中でも特に基本で、避けて通れないポイントです。

流れをイメージしながら、一つひとつ丁寧に確認していきましょう。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方