Hitachi

uCosminexus Batch Job Execution Server 使用の手引(Windows(R)用)


3.6.2 条件付実行

〈この項の構成〉

(1) JOB要素でCOND属性を指定した場合

ジョブ内の各ジョブステップの終了時点で,各ジョブステップが生成する終了コードとJOB要素のCOND属性で指定した演算符号を基に論理演算をする。

JOB要素のCOND属性で終了コードの判定条件を指定した場合の流れを次の図に示す。

図3‒7 JOB要素のCOND属性で終了コードの判定条件を指定した場合の流れ

[図データ]

(2) EXEC要素のCOND属性で終了コードの判定条件を指定した場合

EXEC要素のCOND属性で指定したジョブステップの実行開始時点で,次に示す処理をする。

(a) 先行するジョブステップ名を指定しない場合

設定ファイルのEXEC_COND_NOSTEPNAMEパラメータにSTEPALLを指定するか,またはEXEC_COND_NOSTEPNAMEパラメータを指定していない場合,先行するジョブステップが生成するすべての終了コードとEXEC要素のCOND属性で指定した演算符号を基に論理演算をする。また,設定ファイルのEXEC_COND_NOSTEPNAMEパラメータにSTEPLASTを指定した場合は,最後に実行されたジョブステップが生成する終了コードだけと論理演算をする。

  • 論理演算結果が真の場合

    そのジョブステップの実行をスキップして,後続するジョブステップの処理へ移る。

  • 論理演算結果が偽の場合

    そのジョブステップを実行する。

(b) 先行するジョブステップ名を指定した場合

指定した先行するジョブステップが生成する終了コードとEXEC要素のCOND属性で指定した演算符号を基に論理演算をする。論理演算結果の後処理は,(a)と同じである。

また,指定した先行するジョブステップが条件付実行によって実行がスキップされている場合は,EXEC要素のCOND属性は無視される(COND属性が指定されなかったものとして処理される)。ジョブ内で重複しているジョブステップ名を指定した場合,最初に一致したジョブステップに対して論理演算をする。

EXEC要素のCOND属性で終了コードの判定条件を指定した場合の流れを次の図に示す。

図3‒8 EXEC要素のCOND属性で終了コードの判定条件を指定した場合の流れ

[図データ]

(3) EXEC要素のCOND属性でEVENまたはONLYを指定した場合

EXEC要素のCOND属性を指定したジョブステップの実行開始時点で,次に示す処理をする。

EXEC要素のCOND属性でEVENを指定した場合の流れを次の図に示す。

図3‒9 EXEC要素のCOND属性でEVENを指定した場合の流れ

[図データ]

EXEC要素のCOND属性でONLYを指定した場合の流れを次の図に示す。

図3‒10 EXEC要素のCOND属性でONLYを指定した場合の流れ

[図データ]

ジョブステップの条件付きの実行を以下の図に示す。

図3‒11 スキップされたジョブステップの判定例

[図データ]

ジョブステップ2がジョブステップ1の終了コード判定でスキップされるケースがある。この場合,ジョブステップ3でジョブステップ2の終了コードの条件判定をしているが,ジョブステップ2をスキップしているとき,EXEC要素のCOND属性の指定は無視して,ジョブステップ3を実行する。

図3‒12 先行するすべてのジョブステップの終了コードとの判定例

[図データ]

条件1(COND属性の(9,LT,STEP4))を判定したが,この条件を満たさないため条件2(COND属性の(8,LT))の判定をする。条件2の場合,ジョブステップ名がないためすべての先行するジョブステップの終了コードとの判定をするが,この場合も条件を満たさないためジョブステップ5を実行する。