JP1/Automatic Job Management System 2 解説

[目次][用語][索引][前へ][次へ]


3.2.3 先行ジョブの結果でそのあとの処理を動的に変える(判定ジョブを使ったジョブネットの定義例)

先行ジョブの終了結果,ファイルの有無,先行ジョブの引き継ぎ情報で,あとの処理内容が動的に変わるようなジョブネットの定義には,判定ジョブを使用します。

<この項の構成>
(1) 判定ジョブを使ったジョブネットの定義例
(2) 判定ジョブを連続して定義した例
(3) 注意事項

(1) 判定ジョブを使ったジョブネットの定義例

「在庫チェックジョブの実行結果を判定して,在庫数がやや不足気味の場合は発注伝票を作成し,在庫数に問題がなければ受注伝票を作成する。在庫数が完全に不足している場合,在庫チェックジョブは異常終了し,リカバリージョブを実行する。」というジョブネットを,判定ジョブを使って定義する例を次に示します。なお,リカバリージョブについては「3.2.6 ジョブが異常終了したときに特定の処理を実行する(リカバリージョブ,リカバリージョブネットを使ったジョブネットの定義例)」を参照してください。

図3-23 判定ジョブを使ったジョブネットの定義例

[図データ]

この例では,先行ジョブの戻り値で判定を行うことにします。「在庫チェック」は,在庫数が十分の場合は戻り値3以下,在庫数がやや不足気味の場合は戻り値4,在庫数が不足している場合は戻り値5以上を返すものとします。

まず,「在庫チェック」の終了判定の定義を「しきい値による判定」とし,警告しきい値を3,異常しきい値を4とします(戻り値が3以下ならば正常終了,戻り値が4ならば警告終了,戻り値が5以上ならば異常終了します)。判定ジョブには,「終了コードが判定値と等しい」場合に従属ジョブを実行させるように設定し,判定値を4とします。

これにより,「在庫チェック」の実行結果,戻り値が3以下の場合は在庫数に問題がないとして正常終了します。判定ジョブでは,判定値4と「在庫チェック」の終了コードが合致しないため,従属ジョブの「発注伝票作成」は実行されずに「受注伝票作成」が実行されます。「在庫チェック」の戻り値が4であった場合は,判定ジョブの判定条件に合致するため,従属ジョブである「発注伝票作成」を実行します。「発注伝票作成」が正常終了したら「受注伝票作成」を実行します。なお,戻り値が5以上の場合はリカバリージョブが実行されますが,異常終了の場合は後続ジョブは実行されないため,リカバリージョブの実行後に「受注伝票作成」は実行されません。

なお,判定ジョブを連続して定義すると,先行ジョブの終了結果に対して複数パターン(定義した判定ジョブの数だけ)の処理を定義できます。判定ジョブを連続して定義した場合について,次に説明します。

(2) 判定ジョブを連続して定義した例

判定ジョブは連続して定義することもできます。

終了コード(戻り値)による判定条件を設定した判定ジョブを連続して定義した場合,二番目以降の判定ジョブの判定対象となるのは,始めに定義した判定ジョブの先行ジョブに設定された終了コードです(従属ジョブの終了コードではありません)。また,ファイルの有無を判定条件として設定した判定ジョブを連続して定義した場合,二番目以降の判定ジョブの判定対象となるのは,始めに定義した判定ジョブが条件判定を行った時点でのファイル情報ではなく,自判定ジョブが条件判定を行う時点のファイル情報となります。

判定ジョブを連続して定義した場合の例を次に示します。

図3-24 判定ジョブを連続して定義した例

[図データ]

判定ジョブBの判定条件に「終了コードが判定値と等しい(判定値は0)」を,判定ジョブCの判定条件に「終了コードが判定値と等しい(判定値は4)」を設定したとします。また,標準ジョブAの終了判定の定義に「しきい値による判定」を選び,警告しきい値に5を設定したとします。

このジョブネットを実行し,標準ジョブAの戻り値が0だった場合は,まず判定ジョブBの判定条件に合致するため判定ジョブBの従属ジョブである標準ジョブB'が実行されます。続いて判定ジョブCで判定が行われ,判定ジョブCの判定条件には合致しないため従属ジョブ(標準ジョブC')は実行されずに標準ジョブDが実行されます。

標準ジョブAの戻り値が4だった場合は,判定ジョブBの判定条件には合致しないため従属ジョブ(標準ジョブB')は実行されずに判定ジョブCによる判定が行われます。判定ジョブCの判定条件に合致するため,判定ジョブCの従属ジョブである標準ジョブC'が実行されたあと,標準ジョブDが実行されます。

標準ジョブAの戻り値が0でも4でもなかった場合は,判定ジョブBの判定条件にも判定ジョブCの判定条件にも合致しないため,従属ジョブである標準ジョブB',標準ジョブC'は実行されず,標準ジョブDだけが実行されます。

(3) 注意事項

判定ジョブの結果で,ルートジョブネットや先行ユニットを再実行する場合は,次のように再実行するジョブを従属ジョブとして定義してください。

図3-25 判定ジョブの結果でルートジョブネットを再実行する例

[図データ]

再実行するジョブを従属ジョブネット配下に定義した場合,再実行されたジョブが終了するタイミングによっては,従属ジョブネットが再び実行されます。

また,再実行する前にリカバリー処理などをしたい場合は次のような構成にしてください。

図3-26 再実行前にリカバリー処理をする場合の定義例

[図データ]

[目次][前へ][次へ]


[他社商品名称に関する表示]

Copyright (C) 2006, 2010, Hitachi, Ltd.
Copyright (C) 2006, 2010, Hitachi Software Engineering Co., Ltd.