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

COBOLとJCL連携を基礎から理解!CONDパラメータによる条件実行制御を初心者向けに解説

JCLのCONDパラメータによる条件実行制御
JCLのCONDパラメータによる条件実行制御

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

生徒

「JCLの中にCONDって書いてあるのを見たんですが、これは何をしているんですか?」

先生

「CONDは、前の処理結果によって次の処理を実行するかどうかを決めるための仕組みです。」

生徒

「プログラムのif文みたいなものですか?」

先生

「考え方はとても近いですね。では、JCLのCONDパラメータを順番に見ていきましょう。」

1. JCLのCONDパラメータとは

1. JCLのCONDパラメータとは
1. JCLのCONDパラメータとは

CONDパラメータは、JCLでジョブステップの実行を制御するための指定です。 直前の処理が「うまくいったか」「失敗したか」を数値で判断し、 その結果によって次の処理を実行するかどうかを決めます。

プログラミング未経験の方は、信号機を想像してください。 青なら進む、赤なら止まる、という判断を自動で行うのがCONDの役割です。

2. リターンコードという考え方

2. リターンコードという考え方
2. リターンコードという考え方

CONDを理解するためには、リターンコードという考え方が重要です。 リターンコードとは、プログラムが処理を終えたあとに返す結果の数値です。

一般的に、0は正常終了、0以外は何か問題があったことを表します。 数字が大きいほど、問題の度合いが大きいと考えると分かりやすいです。

3. CONDパラメータの基本構文

3. CONDパラメータの基本構文
3. CONDパラメータの基本構文

CONDパラメータは、EXEC文の中で指定します。 基本的な書き方は「数値、比較演算子」という形です。


//STEP2  EXEC PGM=TESTPGM,COND=(0,NE)

この指定は、「直前のステップのリターンコードが0ではない場合は、 このステップを実行しない」という意味になります。

4. 比較演算子の意味をやさしく理解

4. 比較演算子の意味をやさしく理解
4. 比較演算子の意味をやさしく理解

CONDでは、NE、EQ、GT、LTなどの比較演算子を使います。 これらは条件を判断するための記号です。

  • EQ:等しい
  • NE:等しくない
  • GT:より大きい
  • LT:より小さい

数学の記号が分からなくても、「条件を比べて判断するもの」と覚えれば大丈夫です。

5. CONDを使った簡単な流れの例

5. CONDを使った簡単な流れの例
5. CONDを使った簡単な流れの例

例えば、STEP1が正常終了したときだけSTEP2を実行したい場合を考えてみましょう。


//STEP1 EXEC PGM=PROG1
//STEP2 EXEC PGM=PROG2,COND=(0,NE)

STEP1のリターンコードが0であれば、STEP2は実行されます。 0以外の場合は、STEP2は自動的にスキップされます。

6. CONDは「実行しない条件」を書く

6. CONDは「実行しない条件」を書く
6. CONDは「実行しない条件」を書く

初心者が混乱しやすいポイントとして、 CONDは「実行する条件」ではなく「実行しない条件」を書く点があります。

条件に当てはまった場合、そのステップは実行されません。 この考え方に慣れることがとても大切です。

7. COBOLプログラム側との関係

7. COBOLプログラム側との関係
7. COBOLプログラム側との関係

COBOLプログラムは、処理結果に応じてリターンコードを返します。 JCLのCONDは、その結果を見て次の動きを決める役割を持っています。


IF ERROR-FLG = 'Y'
    MOVE 8 TO RETURN-CODE
ELSE
    MOVE 0 TO RETURN-CODE
END-IF

このように、プログラムとJCLは連携して処理の流れを制御しています。

8. CONDを理解するメリット

8. CONDを理解するメリット
8. CONDを理解するメリット

CONDパラメータを正しく使えるようになると、 無駄な処理を減らし、ジョブ全体の安定性を高めることができます。

大規模なシステムでは、条件実行制御は欠かせない仕組みです。 まずは基本の考え方をしっかり身につけましょう。

カテゴリの一覧へ
新着記事
New1
C#
C#のメソッドのオーバーロードとは?同名メソッドを複数定義する方法
New2
C#
C#の出力と入力の基本をマスター!初心者でもわかるConsole.WriteLine()とConsole.ReadLine()の使い方
New3
C#
C# GUIアプリでファイルダイアログを使う方法!WinFormsとWPFの基本操作を完全解説
New4
Azure
Azure SQL Databaseの認証設定を徹底解説!Entra ID(旧Azure AD)統合でセキュアなデータベース管理を実現する方法
人気記事
No.1
Java&Spring記事人気No1
C#
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド
No.2
Java&Spring記事人気No2
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
C#
C# WinForms入門!初心者でも簡単にWindowsアプリを作る方法
No.5
Java&Spring記事人気No5
C#
C#の文字列を数値に変換する方法(int.Parse・TryParse)をわかりやすく解説!
No.6
Java&Spring記事人気No6
C#
C#のログ出力入門!SerilogとNLogの使い方を徹底解説
No.7
Java&Spring記事人気No7
Azure
Azure Bastionの使い方を徹底解説!踏み台サーバー不要で安全にRDP/SSH接続
No.8
Java&Spring記事人気No8
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド