SUB_PROCESS ノードは、ワークフローで別のワークフローを参照するために使用される特殊なノードタイプです。このノードは、複雑なタスクを複数のサブタスクに分割するのに最適です。各サブタスクを個別に定義および管理することで、タスク全体としての保守性と再利用性が向上します。
背景情報
ワークフローで SUB_PROCESS ノードを使用して、既存のワークフローを参照できます。これにより、ワークフロー間でネストされた呼び出しを作成できます。参照されるワークフローに対して定期タスクや依存関係を設定する必要はありません。参照されるワークフローの実行は、それを参照するワークフローによって制御されます。具体的には、次のとおりです。
参照可能なワークフローは、別のワークフローから参照された場合にのみ実行されます。
参照可能なワークフローの実行時間は、それを参照するワークフローの実行時間に依存します。
たとえば、ワークフロー E にワークフロー D を参照する SUB_PROCESS ノードが含まれている場合、ワークフロー E が実行されると、ワークフロー D が同期的にトリガーされて実行されます。多層ネスト構造では、このプロセスは参照の連鎖をたどって継続します。
参照可能なワークフローが実行される回数は、参照される回数に依存します。
たとえば、異なるワークフロー内の複数の SUB_PROCESS ノードが同じワークフローを参照する場合、その参照されたワークフローは参照ごとに実行されます。
左の図に示すような単純な線形参照ワークフローを構築することも、右の図に示すような複数の並列ブランチを持つより複雑なワークフロー階層を構築することもできます。各構造には独自の特徴があり、異なるシナリオに適しています。ビジネスプロセスに最も適したソリューションを選択できます。
左の図:この図は、線形のワークフロー階層を示しています。各レイヤーのワークフローは、内部の SUB_PROCESS ノードを使用して次のレイヤーのワークフローを参照します。たとえば、ワークフロー E はワークフロー D を参照し、ワークフロー D はさらに別のワークフローを参照し、最終的にワークフロー B がワークフロー A を参照します。
右の図:この図は、1 つのワークフローが他の複数のワークフローから参照される複雑なワークフロー階層を示しています。たとえば、ワークフロー A は、ワークフロー B1 とワークフロー B2 の両方から、それぞれの内部 SUB_PROCESS ノードを介して参照されます。
前提条件
[Data Studio (新バージョン) を使用] が有効になっており、リソースグループがアタッチされているワークスペースが必要です。詳細については、「ワークスペースの作成」をご参照ください。
注意事項
SUB_PROCESS ノードを使用して多層ネストを実装する場合、ルートワークフローを含めて最大
5レイヤーまで参照をネストできます。ワークフローの総数は200を超えることはできません。SUB_PROCESS ノードは、上流または下流の依存関係ではなく、トリガー関係を作成します。ワークフローは、実行中に SUB_PROCESS ノードに到達すると、参照されているワークフローをトリガーして実行します。
ワークフローが参照によってトリガーされた場合、そのスケジューリングパラメーターの値は、トリガー元のワークフローのスケジュールされた時間に基づきます。
ワークフローが参照可能になると、そのワークフローおよびその内部ノードは他のタスクに依存できなくなり、他のタスクもそれに依存できなくなります。これらの他のタスクには、他のワークフロー、現在のワークフロー外のノード、およびワークスペースのルートノードが含まれます。
ワークフローの設定
このセクションでは、SUB_PROCESS ノードを使用して既存のワークフローを参照する方法の例を示します。この例では、Workflow2 の SUB_PROCESS ノードが Workflow1 を参照します。
ワークフロー 1:参照の有効化
ワークフローを参照可能にするには、既存の上流および下流のノード依存関係を削除する必要があります。参照されるワークフローは、スケジュールされた実行時間をサポートしません。このセクションの手順に従って、ワークフローの参照可能スイッチを有効にします。この機能をテストするために、新しいワークフローを作成することを推奨します。
以下の手順に従って、Workflow1 という名前のワークフローを作成し、Workflow1 の参照可能オプションを有効にします。
Workflow1を作成します。DataWorks コンソールの ワークスペースページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[操作] 列の を選択します。
左側のナビゲーションウィンドウで、
をクリックします。[ワークスペースディレクトリ] の右側にある をクリックします。ワークフローの名前を設定して保存すると、ワークフローエディターが開きます。
参照スイッチを有効にします。
Workflow1の設定ページで、右側の [プロパティ] をクリックします。プロパティダイアログボックスで、[参照可能] スイッチをオンにします。説明このスイッチをオンにすると、現在のワークフローは SUB_PROCESS ノードを使用して他のワークフローから参照できるようになります。スケジューリング時間やスケジューリングの依存関係などのプロパティを設定する必要はありません。
ワークフローが参照可能になると、そのワークフローおよびその内部ノードは他のタスクに依存できなくなり、他のタスクもそれに依存できなくなります。これらの他のタスクには、他のワークフロー、現在のワークフロー外のノード、およびワークスペースのルートノードが含まれます。
ワークフロー 2:ワークフロー 1 の参照
Workflow2 に SUB_PROCESS ノードを作成して、Workflow1 を参照できます。
Workflow2という名前のワークフローを作成します。詳細については、「定期的なワークフロー」をご参照ください。SUB_PROCESSノードを作成します。作成した
Workflow2をクリックして、その設定ページを開きます。[ロジカルノード] から [SUB_PROCESS] ノードをキャンバスにドラッグします。参照ワークフローを設定します。
[ノードの追加] ダイアログボックスで、[参照ワークフロー] を [既存を選択] に設定します。[既存を選択] の下のドロップダウンリストから、参照するワークフローである
Workflow1を選択します。[ノード名] には、システムが生成した名前を使用するか、カスタム名を入力します。[確認] をクリックします。説明ワークフローを参照するには、[ワークフロー名] にカスタム値を入力し、[確認] をクリックすることもできます。
新しいワークフロー参照を確認した後、SUB_PROCESS ノードにマウスカーソルを合わせ、[参照ワークフローを開く] をクリックします。表示されるダイアログボックスで [保存して開く] をクリックすると、新しいワークフローの設定ページが開きます。
新しく参照されたワークフローの設定ページでは、右側の [プロパティ] 設定パネルの [参照可能] スイッチがデフォルトで有効になっています。
保存して参照の詳細を表示します。
Workflow2の設定ページに移動し、ページ上部の [保存] をクリックします。[変更チェック] ページで、[保存] をクリックして変更を確認します。説明ワークフローの参照スイッチが有効になると、他の複数のワークフローから参照できるようになります。参照されている回数は、ワークフローページの右側にある [プロパティ] パネルで確認できます。また、[詳細の表示] をクリックして詳細情報を確認することもできます。
次のステップ
ワークフロー間の参照を設定した後、ワークフロータスクをスケジューリング環境に公開して定期的にスケジューリングできます。その後、データバックフィルを使用して、ワークフロー全体の実行ステータスを確認できます。
スケジューリングの設定
ワークフロータスクを定期的に実行するには、まずそのスケジューリングプロパティを設定する必要があります。詳細については、「ノードのスケジューリング」をご参照ください。
ワークフロータスクの公開
ワークフロータスクは、本番環境に公開された後にのみ自動的にスケジュールされます。ワークフローを公開する必要があります。詳細については、「定期タスクの公開」をご参照ください。
重要SUB_PROCESSノードを含む Workflow2 を公開する前に、このノードによって参照されているため、まずWorkflow1を公開する必要があります。そうしないと、Workflow2の公開に失敗します。ワークフロータスクの実行と表示
ワークフロータスクを公開した後、データバックフィル機能を使用して、オペレーションセンターで定期タスクの実行ステータスを確認することを推奨します。詳細については、「オペレーションセンター入門」をご参照ください。
参照されるワークフロー内のすべての内部ノードの実行ステータスを表示するには、実行中の SUB_PROCESS ノードを見つけて右クリックし、[参照ワークフローの内部タスクを表示] を選択します。
> [ワークフローの作成]