カテゴリ: COBOL 更新日: 2025/10/12

JCLの条件実行(CONDパラメータ)の基礎をやさしく解説!初心者でも分かる実行制御の仕組み

JCL内の条件実行(CONDパラメータなど)の基礎
JCL内の条件実行(CONDパラメータなど)の基礎

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

生徒

「JCLって、ジョブの中で実行するかどうかを条件で決められるって聞いたんですけど、本当ですか?」

先生

「はい、本当です。JCLにはCONDパラメータという機能があって、ジョブステップを実行するかスキップするかを制御できます。」

生徒

「なんだか難しそうですが、具体的にどういうことなんですか?」

先生

「では、日常生活に例えて説明しながら、使い方を見ていきましょう。」

1. JCLと条件実行とは?

1. JCLと条件実行とは?
1. JCLと条件実行とは?

まず、JCL(Job Control Language)は、メインフレーム(大型コンピュータ)でジョブと呼ばれる処理を実行するための指示書です。その中で「条件実行」とは、あるステップの実行結果を見て、次のステップを実行するかどうかを判断する仕組みのことです。

例えば、料理の手順に置き換えると「もし野菜が切れていなければ、切る作業を行う」「もう切れていれば、切る作業はスキップする」というような判断です。

2. CONDパラメータの基本

2. CONDパラメータの基本
2. CONDパラメータの基本

CONDパラメータは、JCLのジョブステップに指定して、そのステップを実行するかどうかを決めます。終了コード(Return Code)という数値を使って判断します。終了コードは、前のステップが正常終了したか、エラーで終わったかを示す値です。

書式は以下の通りです。


//ステップ名 EXEC PGM=プログラム名,COND=(比較値,比較演算子,ステップ名)
  • 比較値:終了コードと比較する数値。
  • 比較演算子:EQ(等しい)、NE(等しくない)、GT(より大きい)など。
  • ステップ名:比較対象となる前のステップ。

3. 簡単な例

3. 簡単な例
3. 簡単な例

例えば、ステップAの終了コードが4より大きければステップBをスキップする、という条件はこう書きます。


//STEPB EXEC PGM=MYPROG,COND=(4,LT,STEPA)

この場合、「STEP A の終了コードが4より小さい(LT = Less Than)」なら、STEPBはスキップされます。

日常で言えば「テストの点数が80点未満なら、遊びに行くのをやめて勉強する」という感じです。

4. CONDパラメータの逆の意味に注意

4. CONDパラメータの逆の意味に注意
4. CONDパラメータの逆の意味に注意

プログラミング初心者が混乱しやすいのは、CONDパラメータの条件が「スキップ条件」だということです。つまり、条件が「真」になったら、そのステップは実行されません

これは、「もし雨が降っていたらピクニックを中止する」というルールに似ています。雨が降っている(条件が真)なら、中止(スキップ)です。

5. よく使う比較演算子

5. よく使う比較演算子
5. よく使う比較演算子
  • EQ:Equal(等しい)
  • NE:Not Equal(等しくない)
  • GT:Greater Than(より大きい)
  • LT:Less Than(より小さい)
  • GE:Greater or Equal(以上)
  • LE:Less or Equal(以下)

6. 実際のJCL例と解説

6. 実際のJCL例と解説
6. 実際のJCL例と解説

//JOB001  JOB (ACCT),'TEST JOB'
//STEPA   EXEC PGM=PROGA
//STEPB   EXEC PGM=PROGB,COND=(4,LT,STEPA)
//STEPC   EXEC PGM=PROGC

この例では、まずPROGAが実行されます。その終了コードが4より小さい場合、STEPBはスキップされ、次のSTEP Cに進みます。

7. CONDパラメータを使うメリット

7. CONDパラメータを使うメリット
7. CONDパラメータを使うメリット

CONDパラメータを使うことで、不要な処理を省略し、ジョブの実行時間やリソースの節約が可能です。例えば、前のステップがエラーになったら後続の処理を止めることで、誤った結果を広げずに済みます。

銀行のシステムや大規模なバッチ処理では、こうした条件制御が非常に重要です。

8. まとめると

8. まとめると
8. まとめると

JCLのCONDパラメータは、ジョブステップの実行可否を終了コードで判断する仕組みで、条件が成立するとそのステップはスキップされます。スキップ条件という点を覚えておけば、混乱せずに使いこなせます。

カテゴリの一覧へ
新着記事
C#で複数ファイルをまとめて操作する方法(foreach・LINQ)をやさしく解説!
C#のインターフェースとは?クラス設計を柔軟にする基本技術
C#のコンストラクタの役割と使い方!オブジェクト初期化の基本
COBOLでデータベース接続を理解しよう!初心者でもわかる基本の考え方
人気記事
No.1
Java&Spring記事人気No1
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.3
Java&Spring記事人気No3
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.4
Java&Spring記事人気No4
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法