# ジョブフロー作成・実行の流れ

ジョブフローの作成と実行の流れについて説明します。

## ジョブフロー管理情報の作成

ジョブフロー管理情報を作成する際の作業の流れは以下のようになります。作業に応じてジョブフロー管理情報の状態が変化します。

1. ジョブフロー一覧画面から、ジョブフロー管理情報を新規作成します。
2. ジョブフロー作成画面で、ジョブフロー管理情報の設定や処理内容を編集します。

3. ジョブフロー作成画面では、作成途中のジョブフロー管理情報を一時保存しておくことができます。

   一時保存されたジョブフロー管理情報は“作成中”の状態になります。

4. 作成が完了したジョブフロー管理情報を保存する場合、事前に整合性チェックが行われます。

   整合性チェックに合格しないと保存できません。メッセージに従って問題点を修正してください。

5. 保存すると、デフォルトではジョブフロー管理情報は“非アクティブ”の状態になります。
6. 「保存と同時にアクティブ化」をチェックして保存すると、ジョブフロー管理情報は“アクティブ”の状態になります。
7. “アクティブ”と“非アクティブ”の状態は、ジョブフロー一覧画面で切り替えることができます。
8. ジョブフロー管理情報が“アクティブ”の状態になると、自動的に実行待ちになります。

<表>ジョブフロー管理情報の状態

名称 | 説明
--- | ---
アクティブ *1 | ジョブフロー管理情報が整合性チェックに合格して保存され、有効化された状態 適用期間内に起動条件が成立すると、ジョブフローが起動されます。 今すぐ実行も可能です。
非アクティブ | ジョブフロー管理情報が整合性チェックに合格して保存され、無効化された状態 適用期間内に起動条件が成立しても、ジョブフローは起動されません。 ただし今すぐ実行は可能です。
作成中 | ジョブフロー管理情報が整合性チェックを行わずに一時保存された状態 ジョブフローを起動することはできません。

*1： | イベント待ち（ファイル待ち）起動のジョブフローは、“アクティブ”の状態にできるジョブフロー数に制限があります。最大数は99個です。

## ジョブフローの実行状況

アクティブ状態のジョブフローは実行待ちの状態になり、起動条件が成立すると自動的に起動されます。

ジョブフローの実行状況の遷移は以下のようになります。

ジョブフローの実行状況は、ジョブフローモニタ画面およびジョブフローモニタ詳細画面で確認できます。

1. 適用期間が始まると、ジョブフローの実行状況は“キューイング”になり、起動条件が成立するのを待ちます。

2. 起動条件が成立すると、ジョブフローが起動されます。

   複数のファイルが揃うのを待っている場合、一部のファイルが揃って残りを待っている間は実行状況が“開始条件揃い待ち”になります。

3. ジョブフローの多重度が上限に達している場合は、以下の条件に従って“多重度待ち”または“多重度オーバー破棄”になります。
   - ジョブフロー全体多重度が上限に達した場合、“多重度待ち”になります。
   - ジョブフロー多重度が上限に達した場合、ジョブフロー情報の「多重発生時の処置」の設定によって“多重度待ち”または“多重度オーバー破棄”になります。
4. 起動条件が揃い、多重度に空きがあると、ジョブフローの実行状況は“実行中”になります。
5. 実行中のジョブフローをキャンセルすることができます。
6. 実行終了したジョブフローを再度実行（リラン）することができます。

<表>ジョブフローの実行状況

分類 | 実行状況 | 説明
--- | --- | ---
起動待ち | 適用期間前 | 適用期間が始まる前の状態 *1
キューイング | 適用期間が始まり、起動条件の成立を待っている状態
起動中 | 開始条件揃い待ち | 起動条件で複数のファイルまたは蓄積ファイルを待っているとき、一部のファイルが揃って、残りのファイルを待っている状態 もしくはファイルは揃った後に開始時刻を待っている状態
多重度待ち | 当該ジョブフローIDの多重度が上限に達しているため、他のジョブフローの終了を待っている状態
実行中 | 実行中
キャンセル中 | キャンセル(Normal)が実行され、処理中のジョブステップが終了するのを待っている状態
実行終了 | 多重度オーバー破棄 | 当該ジョブフローIDの多重度が上限に達していたため、破棄されたジョブフロー
キャンセル(Normal) | キャンセル(Normal)でキャンセルされたジョブフロー
キャンセル(Force) | キャンセル(Force)でキャンセルされたジョブフロー
正常終了 | 正常終了したジョブフロー
異常終了 | 異常終了したジョブフロー

*1： | スケジューラ起動の場合は、適用期間前であっても“適用期間前”の状態にはなりません。
| スケジューラ起動は「次に動作する日時」として、常に適用期間中の起動日時が起動条件として設定されるので、適用期間前であっても“キューイング”状態、すなわち起動条件の成立を待っている状態となります。

- 適用期間中は、状態が“アクティブ”である限り、起動条件が一部でも成立するたびにジョブフローは繰り返し起動されます。そのため、ジョブフローが起動中になると、次の起動条件成立に備えるため、同一ジョブフローIDで“キューイング”の実行状況が自動的に追加されます。

  ただし、“イベント待ち（ファイル待ち）起動”のジョブフローは、同一ファイルを繰り返し処理することを避けるため、ジョブフローの実行が終了するまで同一ジョブフローIDの“キューイング”の実行状況は追加されません。

  以下にいくつかの例を図示します。

- ジョブフローが“キューイング”の実行状況にあるときに適用期間が終了すると、そのジョブフローは削除されます。

  ジョブフローが“開始条件揃い待ち”、“多重度待ち”の実行状況にあるときに適用期間が終了すると、そのジョブは異常終了となります。

  “実行中”、“キャンセル中”のジョブフローは、適用期間が終了しても最後まで実行されます。

## ジョブステップの実行状況

ジョブフローが起動され、ジョブフローを構成するジョブステップに処理が渡されたとき、各ジョブステップの実行状況の遷移は以下のようになります。

【備考】 | ジョブステップの実行状況は、そのジョブステップに処理が渡されてから発生します。

開始系・スケジューラ、開始系・ユーティリティ待ち

開始系・蓄積待ち、開始系・ファイル待ち

実行系の各ジョブステップ

トリガ系の各ジョブステップ

<表>ジョブステップの実行状況（ジョブステップステータス）

状況 | 説明
--- | ---
開始条件揃い待ち *1 | 起動条件で複数のファイルまたは蓄積ファイルを待っているとき、一部のファイルが揃って、残りのファイルを待っている状態 もしくはファイルは揃った後に開始時刻を待っている状態
ジョブフロー全体多重度待ち *1 | ジョブフロー全体の多重度が上限に達しているため、他のジョブフローの終了を待っている状態
ジョブフロー多重度待ち *1 | 当該ジョブフローIDの多重度が上限に達しているため、他の同一IDのジョブフローの終了を待っている状態
多重度オーバー破棄 *1 | 当該ジョブフローIDの多重度が上限に達しているため、破棄された状態
実行条件待ち | 実行条件でファイルまたは蓄積ファイルを待っているとき、一部のファイルが揃って残りのファイルを待っている状態 もしくはファイルは揃った後に開始時刻を待っている状態
実行中 | ジョブステップを実行中の状態
正常終了 | ジョブステップが正常終了している状態
異常終了 *2 | ジョブステップが異常終了している状態

*1： | 開始系アイコンでのみ表示されます。
*2： | 異常終了の場合は、詳細コード（およびOSの完了コード）も表示されます。詳細については、ジョブステップの完了コードと詳細コードを参照して下さい。

## ジョブフローの開始日時と開始系ジョブステップの実行日時

ジョブフローの開始日時は、開始系ジョブステップの実行終了日時（起動条件がすべて成立した時点）です。そのため、ジョブフローの開始日時と開始系ジョブステップの実行開始日時が異なる場合があります。

詳細は「HULFT-HUB マニュアル」を参照してください。