# ジョブフローのリラン

ジョブフローの実行途中にエラーが発生した場合、または実行途中でユーザがキャンセルした場合、ジョブフローは最後まで実行されずに終了します。途中で終了したジョブフローは、再度処理を実行させることができます。このことをジョブフローのリランと呼びます。

ジョブフローのリランは、ジョブフローの履歴(ジョブフローモニタ詳細画面)から実行します。ここでは、ジョブフローのリランの実行条件、リランを実施できるアイコン、およびリランの動作仕様について説明します。また、ジョブフローの実行例を示して、様ざまなリランについて説明します。

## リランを実行できる条件

次の条件をすべて満たす場合に、ジョブフローのリランを実行できます。

1. ジョブフロー管理情報がある場合、ジョブフロー管理ステータスが「非アクティブ」または「作成中」である。

2. リランを実行するジョブフローの履歴が残っている。

   リランはジョブフロー履歴を基にして実行します。そのため、ジョブフロー実行時に使用していたファイルIDなどの管理情報が削除されている場合でも、履歴が残っていればリランを実行できます。

3. 同一ジョブフローIDで、ジョブフローステータスが実行状態ではない。

   実行状態とは、ジョブフローが次の状態であることを指します。

   - 開始条件揃い待ち

   - 多重度待ち

   - 実行中

   - キャンセル中

   1.の条件を満たしている場合でも、ジョブフローで「今すぐ実行」を実施した場合やリラン中の場合は、同一ジョブフローIDが実行状態になることがあります。このとき、ジョブフローのリランは実行できません。

4. リランするジョブフローのジョブフローステータスが次のどれかである。

   - 正常終了

   - 異常終了

   - 多重度オーバー破棄

   - キャンセル(Normal)

   - キャンセル(Force)

## リランを実施できるアイコン

ジョブフローのリランは、どのアイコンからでも実施できます。

## リランの動作仕様

ジョブフローのリラン時の動作仕様について、次に示します。

1. リラン指示をしたアイコンの開始時刻の指定は無視される。

   蓄積待ちやファイル待ちのジョブステップなど、ジョブステップを実行する時刻を指定できるアイコンでリランを実行する場合、そのアイコンの開始時刻の指定は無視されます。たとえば、蓄積待ちのジョブステップでリランした場合は、ファイル蓄積後、指定された時刻を待たずに次ジョブステップに処理を引き渡します。

2. 次のアイコンで複数待ち/削除を実施する場合、“処理済み”の処理は再実行しない。

   開始系

     : 蓄積待ち

   開始系

     : ファイル待ち

   トリガ系

     : 蓄積待ち

   トリガ系

     : ファイル待ち

   実行系

     : 蓄積ファイル削除

   例として、ファイルA、B、Cを待つ蓄積待ちでキャンセルした場合のリランの動作を次に示します(表はジョブステップステータス画面のファイル処理結果表の表示)。

   図2.72 リランの動作(蓄積待ち)

   次に、ファイルA、B、Cを削除する蓄積ファイル削除でキャンセルした場合のリランの動作を次に示します(表はジョブステップステータス画面のファイル処理結果表の表示)。

   図2.73 リランの動作(ファイル削除)

3. 蓄積ファイル削除で0件削除の場合はエラーとしない。

   2.の2つ目の例では、1度目のジョブフロー実行時にファイルAを削除しているため、リラン時に削除対象のファイル(ファイルA)は削除済みになっています。このとき、蓄積ファイル削除のエラーにはなりません。

   また、HUB本体の機能で蓄積ファイルを削除した場合にも、削除対象のファイルが削除済みになることがあります。このときも、蓄積ファイル削除のエラーにはなりません。

4. 削除済み蓄積ファイルの抽出、置換え、送出はエラーになる。

   蓄積ファイルの抽出、置換え、および送出は、対象の蓄積ファイルが存在していることが前提となります。そのため、リラン元のジョブフローで蓄積ファイルが削除済みの場合、またはHUB本体の機能で蓄積ファイルが削除されている場合は、リラン時の抽出、置換え、および送出はできず、異常終了となります。

5. ジョブフロー実行時に生成された環境変数のうち、リラン時に引き継がれるのはHULFT環境変数だけである。

   次の例では、ジョブフロー実行時にCでエラーが発生した場合でも、AではHULFT環境変数、Bでは抽出ファイル名の環境変数が生成されます。しかし、抽出ファイルはジョブフロー終了時に自動的に削除されるため、抽出ファイル名の環境変数はリラン時に再利用できません。

   リラン時に引継がれるのはHULFT環境変数だけであり、その他の環境変数はリラン元の情報を引き継ぎません。

   図2.74 環境変数の引き継ぎ例

## リランの実行例1

次のジョブフロー履歴では、Cでエラーが発生しています。エラーの原因は、システム動作環境設定のDataMagicインストールディレクトリのパスに誤りがあったためです。そこで、DataMagicインストールディレクトリのパスを正しいものに修正しました。

このとき、様ざまな個所からリランを実行した場合の動作について説明します。

図2.75 リランの実行例1

リランをAから実行した場合

  A→B→C→D→E→F→Gの順で、正しくリランが実行されます。

リランをBから実行した場合

  B→C→D→E→F→Gの順で、正しくリランが実行されます。

リランをCから実行した場合

  コード変換の対象となる抽出ファイルが存在しない、また抽出ファイルの環境変数も引き継がれないため、リランはエラーとなります。

リランをDから実行した場合

  操作対象の任意ファイルが存在しないため、リランはエラーとなります。

リランをEから実行した場合

  抽出ファイルが存在しない、また抽出ファイルの環境変数も引き継がれないため、リランはエラーとなります。

リランをFから実行した場合

  F→Gの順で正しくリランが実行されます。ただし、蓄積時点のファイル内容が送出されます。

## リランの実行例2

次のジョブフロー履歴では、Bでキャンセルされています。Bでは複数の蓄積ファイルを待っており、ファイルXだけ蓄積が完了している状態です。

このとき、様ざまな個所からリランを実行した場合の動作について説明します。

図2.76 リランの実行例2

リランをAから実行した場合

  A→B→C→D→E→F→G→Hの順で、正しくリランが実行されます。

  ただし、Bの蓄積待ちでは、ファイルXの蓄積完了通知は受け取らず、Y、Zの通知だけを受け取ります。そのため、C以降の処理では

  - 前回通知済みの蓄積X

  - 今回通知の蓄積Y

  - 今回通知の蓄積Z

  で処理を行います。

リランをBから実行した場合

  B→C→D→E→F→G→Hの順で、正しくリランが実行されます。

  B以降の処理は、リランをAから実行した場合と同様です。

リランをCから実行した場合

  蓄積対象となる蓄積ファイルが一部しか揃っていないため、リランはエラーとなります。

リランをDから実行した場合

  コード変換の対象となる抽出ファイルが存在しないため、リランはエラーとなります。

  注意

  抽出ファイルを対象として実施する処理(DataMagic、ユーザJOB、および蓄積ファイル置換え)の前に「蓄積ファイル抽出」が実行されていない場合は、リランはエラーとなります。

リランをEから実行した場合

  操作対象の任意ファイルが存在しないため、リランはエラーとなります。

リランをFから実行した場合

  置き換えの対象となる抽出ファイルが存在しないため、リランはエラーとなります。

リランをGから実行した場合

  送出対象となる蓄積ファイルが一部しか揃っていないため、リランはエラーとなります。