Hitachi

JP1 Version 12 JP1/Automatic Job Management System 3 設計ガイド(業務設計編)


2.2.1 ジョブの実行順序を検討する

ジョブの構築について検討できたら,業務ごとにジョブの実行順序(ジョブフロー)について検討します。処理の流れや階層をチャートにしておくと,ジョブやジョブネットを定義する際に便利です。

ジョブフローの作成例を次に示します。

〈この項の構成〉

(1) 処理の経路が一つだけの例

ジョブ1,ジョブ2,ジョブ3という三つのジョブに順序性があり,処理の経路が一とおりだけある場合のジョブフローの作成例を次の図に示します。

図2‒1 パスが一つだけのジョブフロー

[図データ]

(2) 処理の経路が複数ある例

処理の経路が複数ある場合のジョブフローの作成例を,次の図に示します。

図2‒2 パスが複数ある場合のジョブフロー

[図データ]

この場合,ジョブAが実行されると,「ジョブA−ジョブB−ジョブC」というパスと「ジョブA−ジョブD−ジョブE」というパスの二つに処理が分岐されることになります。

(3) ネストジョブネットを使った例

ジョブフローにジョブネットを組み込むこともできます。ネストジョブネットの使用例を次に示します。

(a) ジョブネットを入れ子にする

ジョブフローに別のジョブネットを組み込む場合の例を,次の図に示します。

図2‒3 ネストジョブネットの使用例

[図データ]

この場合,ジョブAの実行が終了したら,ジョブネット1に定義されているジョブが実行され,ジョブネット1の処理が終了したらジョブBが実行されます。

(b) 複数のジョブをまとめる

複数の後続ジョブを持つフローは推奨しません。複数のジョブを一つのジョブネットとしてまとめることで,管理しやすくできます。

複数のジョブをネストジョブネットとしてまとめた場合の例を,次の図に示します。

図2‒4 複数のジョブをネストジョブネットとしてまとめた場合の例

[図データ]

(c) 二つの経路を一つにまとめる

ネストジョブネットを使って,二つの経路を一つにまとめることができます。

「日次処理1−日次処理2」と,「日次処理1−月次処理−日次処理2」という二つのパスを一つのフローにまとめる例を,次の図に示します。

図2‒5 ジョブネットのフロー化

[図データ]

「日次処理1」および「日次処理2」は毎日実行され,「月次処理」は月に一度だけ実行される場合,JP1/AJS3ではその日に実行予定のないジョブネットをスキップして実行するため,一つのパスにまとめることができます。

(4) 異なるジョブネット間のジョブ同士を順序づけたい場合

JP1/AJS3では,異なるジョブネット間のジョブ同士を関連線で順序づけることはできません。

[図データ]

異なるジョブネット間のジョブ同士は,次の方法で順序づけることができます。

それぞれの場合について,次に説明します。

(a) ジョブネットを分割する

ジョブネットを分割する場合の例を,次の図に示します。

図2‒6 ジョブネットを分割する例

[図データ]

(b) ジョブネットを統合する

ジョブネットを統合する場合の例を,次の図に示します。

図2‒7 ジョブネットを統合する例

[図データ]

(c) ジョブネットコネクタを使用する

ジョブネットコネクタを使用すると,異なるルートジョブネット間の実行順序を制御できます。ジョブネットコネクタを使用する場合の例を,次の図に示します。

図2‒8 ジョブネットコネクタを使用する例

[図データ]

ジョブネットコネクタの詳細については,「2.2.4 ジョブネットコネクタを使用したルートジョブネットの実行順序制御」を参照してください。

(d) 待ち合わせ条件を使用する

待ち合わせ条件を使用すると,異なるジョブネットの配下にあるユニット同士の実行順序を制御できます。待ち合わせ条件を使用する場合の例を,次の図に示します。

図2‒9 待ち合わせ条件を使用する例

[図データ]

待ち合わせ条件の詳細については,「2.2.5 待ち合わせ条件を使用したユニットの実行順序制御」を参照してください。

(5) ジョブネットの階層化の考え方

ジョブネットを階層化する目的またはメリットとして,次のことが考えられます。

補足事項
  • ジョブネット数と階層化に関する注意事項については,「7.1 ルートジョブネットの実行登録数に関する注意事項」を参照してください。

  • 階層を深くし過ぎると,監視などの操作をする上で運用しにくくなります。そのため,階層化は2〜3階層程度にすることを推奨します。

推奨するジョブネットの階層化の方法を次に示します。

  1. 最上位のジョブネットを作成する。

    次の図のように,特定の単位ごとに最上位となるジョブネットを作成します。

    図2‒10 最上位のジョブネットの作成例

    [図データ]

    相互に順序性がない場合は,そのまま最上位のジョブネットとして管理します。

  2. 特定の単位ごとに作成したジョブネットに順序性がある場合は,一つのジョブネットにまとめ,階層化する。

    それぞれのジョブネットが順序性を持つ場合の階層化の例を次に示します。

    図2‒11 それぞれのジョブネットが順序性を持つ場合の階層化の例

    [図データ]

  3. 処理サイクルごとにジョブネットを作成する。

    業務単位に異なるサイクルで実行する必要がある場合は,処理サイクルごとにジョブネットをグルーピングします。

    処理サイクルごとにジョブネットを作成する場合の例を次に示します。

    図2‒12 処理サイクルごとのジョブネットの作成例

    [図データ]

    処理サイクルに作成するジョブネットには,次の表に示すようなルールを決めておきます。また,このルールを「コメント」として定義しておくことを推奨します。

    表2‒5 処理サイクルごとにジョブネットを分けた場合のルール

    処理サイクルごとのジョブネット

    ルール

    GROUP1

    日次,週次,月次,半期,年次の業務が相互に関連を持ったグループ

    GROUP2

    単独で実行される「日次業務」のグループ

    GROUP3

    単独で実行される「週次業務」のグループ

    GROUP4

    単独で実行される「月次業務」のグループ

    GROUP5

    単独で実行される「半期業務」のグループ

    GROUP6

    単独で実行される「年次業務」のグループ

    GROUP7

    単独で実行される「不定期業務」のグループ

  4. 最下位のジョブネットを作成する。

    処理サイクルごとに分けたジョブネットの下位に,さらに次のような名称を付けたジョブネットを作成します。ジョブやジョブネットをコマンドで操作する場合や,JP1/IMの自動アクション機能で正規表現を使用する場合を考慮に入れて,半角英数字で名称を付けることを推奨します。

    「xxxxxxDN」

    「xxxxxxWN」

    「xxxxxxMN」

    「xxxxxxHN」

    「xxxxxxYN」

    「xxxxxxRN」

    (凡例)

    D:1日1回のサイクルで実行するジョブネット

    W:週に1回のサイクルで実行するジョブネット

    M:月に1回のサイクルで実行するジョブネット

    H:半期に1回のサイクルで実行するジョブネット

    Y:年に1回のサイクルで実行するジョブネット

    R:不定期に実行するジョブネット

    N:ジョブネットを意味する

  5. ジョブを作成する。

    最後に,次のような名称を付けたジョブを作成します。

    「xxxxxxDJ」

    「xxxxxxWJ」

    「xxxxxxMJ」

    「xxxxxxHJ」

    「xxxxxxYJ」

    (凡例)

    D:1日1回のサイクルで実行するジョブ

    W:週に1回のサイクルで実行するジョブ

    M:月に1回のサイクルで実行するジョブ

    H:半期に1回のサイクルで実行するジョブ

    Y:年に1回のサイクルで実行するジョブ

    J:ジョブを意味する