サイクル間の依存関係とは、ノードが前サイクルのインスタンス、子孫ノードの前サイクルのインスタンス、または指定されたノードの前サイクルのインスタンスに依存していることを示します。ノードに対してサイクル間の依存関係を設定すると、関連する前サイクルのインスタンスが正常に実行された後にのみ、現在のサイクルでノードが実行されます。
- 子孫ノードの前サイクルのインスタンスへの依存関係
- ノードの依存関係: ノードは、その子孫ノードの前サイクルのインスタンスに依存します。たとえば、ノード A には、ノード B、ノード C、ノード D の 3 つの子孫ノードがあるとします。ノード A に対してこのタイプの依存関係を設定すると、ノード B、ノード C、ノード D のすべての前サイクルのインスタンスが正常に実行された後にのみ、現在のサイクルでノード A が実行されます。
- ビジネスシナリオ: ノードは、その子孫ノードが、前サイクルでノードによって生成されたテーブルのデータを正常にクレンジングした後にのみ、現在のサイクルで実行されます。子孫ノードがデータをクレンジングしたかどうかを確認するには、子孫ノードによって生成されたテーブルに対してデータ品質監視ルールを設定できます。
- 現在のノードの前サイクルのインスタンスへの依存関係
- ノードの依存関係: ノードは、その前サイクルのインスタンスに依存します。ノードは、ノードの前サイクルのインスタンスが正常に実行された後にのみ、現在のサイクルで実行されます。
- ビジネスシナリオ: 現在のサイクルでのノードの実行は、ノードの前サイクルのインスタンスによって生成されたビジネスデータに依存します。ノードのデータがクレンジングされたかどうかを確認するには、ノードによって生成されたテーブルに対してデータ品質監視ルールを設定できます。
- 指定されたノードの前サイクルのインスタンスへの依存関係: このタイプの依存関係を設定するには、ノードが依存するノードの ID を手動で入力する必要があります。ID はコンマ (,) で区切ります (例: 12345,23456)。
- ノードの依存関係: ノードは、指定されたノードの前サイクルのインスタンスに依存します。ノードは、指定されたノードの前サイクルのインスタンスが正常に実行された後にのみ、現在のサイクルで実行されます。
- ビジネスシナリオ: ビジネスロジックでは、ノードは他のノードによって生成されたビジネスデータに依存しますが、ノード自体では処理されません。
サイクル内とサイクル間の依存関係の違いは、サイクル間の依存関係が[オペレーションセンター]に点線で表示されることです。

ビジネス要件に基づいて、ノードの先祖ノードに対してサイクル間またはサイクル内の依存関係を設定できます。ほとんどの場合、ノードの先祖ノードに対してサイクル内またはサイクル間の依存関係のいずれかを設定できます。ノードの自動解析機能を有効にすると、スケジューリングシステムによって、ノードの先祖ノードに対してサイクル内の依存関係が自動的に設定されます。この設定が要件を満たしていない場合は、デフォルトのサイクル内の依存関係を削除し、ノードに対してサイクル間の依存関係を設定できます。詳細については、「スケジューリング依存関係のロジック」をご参照ください。



前の図では、xc_create ノードは xc_1 テーブルと xc_2 テーブルを作成し、2 つのテーブルにデータを挿入します。 xc_1 テーブルと xc_2 テーブルは、xc_create ノードの出力です。

前の図では、xc_select ノードは xc_1 テーブルと xc_2 テーブルのデータをクエリします。自動解析機能に基づいて、xc_create ノードに対するサイクル内の依存関係が xc_select ノードに対して自動的に設定されます。
子孫ノードの前サイクルのインスタンスへの依存関係
ノードの依存関係: ノードは、その子孫ノードの前サイクルのインスタンスに依存します。たとえば、ノード A には、ノード B、ノード C、ノード D の 3 つの子孫ノードがあるとします。ノード A に対してこのタイプの依存関係を設定すると、ノード B、ノード C、ノード D のすべての前サイクルのインスタンスが正常に実行された後にのみ、現在のサイクルでノード A が実行されます。
ビジネスシナリオ: ノードは、その子孫ノードが前サイクルでノードによって生成されたテーブルのデータを正常にクレンジングした後にのみ実行されます。そうでない場合、ノードは現在のサイクルでは実行されません。


現在のノードの前サイクルのインスタンスへの依存関係
ノードの依存関係: ノードは、その前サイクルのインスタンスに依存します。ノードは、ノードの前サイクルのインスタンスが正常に実行された後にのみ、現在のサイクルで実行されます。
ビジネスシナリオ: 現在のサイクルでのノードの実行は、ノードの前サイクルのインスタンスによって生成されたビジネスデータに依存します。この例では、ノードは週単位で実行するようにスケジュールされています。このようにして、[オペレーションセンター]でノードの依存関係を簡単に表示できます。
1 日目に生成された最初のインスタンスが実行されないか、実行に失敗した場合、その日の残りの時間に生成されたインスタンスは実行できません。
指定されたノードの前サイクルのインスタンスへの依存関係
ノードの依存関係: xc_information ノードによって生成されたテーブルは、xc_create ノードのコードでは使用されません。ただし、xc_create ノードは、ビジネスロジックで設定されているように、前サイクルの xc_information ノードの出力データに依存します。論理的には、xc_create ノードは xc_information ノードの前サイクルのインスタンスに依存します。
ビジネスシナリオ: ノード A は、ビジネスロジックに基づいてノード B によって生成されたビジネスデータに依存します。ただし、ビジネスデータはノード A のコードでは参照されません。これは、ノード A がビジネスデータに対して操作を実行しないことを示します。


前サイクルのインスタンスへの依存関係の高度な設定
分岐ノードには 2 つの子孫ノードがあります。ほとんどの場合、実際に実行されるのは子孫ノードの 1 つだけです。スケジューリングシステムは、1 つの子孫ノードのインスタンスを生成して実行します。もう一方の子孫ノードについては、スケジューリングシステムはインスタンスを生成し、インスタンスを実行せずに正常な応答を直接返します。さらに、スケジューリングシステムはこの子孫ノードの子孫ノードのドライランも実行します。これが要件を満たしていない場合は、分岐ノードのこの子孫ノードを設定するときに、[アップストリームノードのエアランニング属性はサイクル間を実行しません] を選択できます。
分岐ノードの子孫ノードが自身の最後のサイクルインスタンスに依存し、最後のサイクルインスタンスがドライランである場合、子孫ノードも現在のサイクルでドライランになります。その結果、子孫ノードは永続的にドライランノードになります。
次の図は例を示しています。スケジューリングシステムが左側の子孫ノードのドライランを実行する場合、スケジューリングシステムはこの子孫ノードの子孫ノードのドライランも実行します。
- 分岐ノードのこの子孫ノードの編集タブで、右側のナビゲーションペインの [プロパティ] をクリックします。
- [スケジュール] パネルの [スケジュール] セクションで、[サイクル間の依存関係] を選択します。
- [詳細設定] をクリックします。
- [最後のサイクルに依存する高度な設定] メッセージで、[アップストリームノードのエアランニング属性はサイクル間を実行しません] を選択します。このようにして、分岐ノードの子孫ノードは前サイクルのドライランの影響を受けません。
サイクル間の依存関係の一般的なシナリオ
- シナリオ 1
- シナリオの説明: ノード A は 1 日 1 回実行するようにスケジュールされています。ノード B は 1 時間ごとに実行するようにスケジュールされています。ノード A はノード B に依存します。デフォルトでは、ノード A は毎日、ノード B が 24 回実行された後に実行されます。ただし、ノード A を毎日 12:00 に実行したいと考えています。
- 解決策: ノード B を設定する場合は、[サイクル間の依存関係] を選択し、[依存対象] を サイクル間依存関係[現在のノードのインスタンス] に設定します。ノード A を設定する場合は、
このように、12:00 にノード B のインスタンスが生成されて実行された後、スケジューリングシステムはノード A を実行します。
を 12:00 に設定します。ノード A のサイクル間の依存関係は設定しないでください。
- シナリオ 2
- シナリオの説明: ノード A は 1 日 1 回実行するようにスケジュールされています。ノード B は 1 時間ごとに実行するようにスケジュールされています。ノード A は、前日にノード B によって生成されたデータに依存します。
- 解決策: ノード A を設定する場合は、[サイクル間の依存関係] を選択し、サイクル間の依存関係[依存対象] を に設定してから、ノード B の ID を入力します。
- シナリオ 3
- シナリオの説明: ノード A は 1 時間ごとに実行するようにスケジュールされています。ノード B は 1 日 1 回実行するようにスケジュールされています。ノード A はノード B に依存します。ノード B が 1 日に実行されると、ノード A は 24 サイクルを経て、スケジューリングシステムは 24 個のインスタンスを同時に生成して実行し始めます。
- 解決策: ノード A を設定する場合は、[サイクル間の依存関係] を選択し、サイクル間依存関係[依存対象] を に設定します。
- シナリオ 4
- シナリオの説明: ノードは、前サイクルでノードによって生成されたデータに依存します。前サイクルでデータが生成された時刻を決定する必要があります。
- 解決策: ノードを設定する場合は、[サイクル間の依存関係] を選択し、サイクル間依存関係[依存対象] を に設定します。