ルーティングの概念
ある 1 つのステップから次のステップへ作業がどのように進行するかを指定するには、ワークフロー定義内のステップ間でルートを定義します。
マップの最後のステップを除き、すべてのステップから 1 つ以上のルートが分岐します。
ワークフローのルート | 説明 |
---|---|
常に合致 |
あるステップから次のステップへと線形状に進むのは、最も単純なワークフローのみです。左側の図のそれぞれのルートについては条件はないため、常に合致します。 ヒント: ステップからの唯一のルートに条件を定義する場合、そのステップの完了時に条件が合致しなければ、ワークフロー、またはワークフローの特定のブランチは停止します。
|
ルート条件 |
大部分のワークフローは参加者の応答の結果、または 1 つ以上のフィールド値に基づき、さまざまなポイントでブランチします。左図では、起動ステップからのルートは「常に合致」です。Eval ステップからのルートは、Eval ステップにおける参加者の応答の値によって分岐します。ルート条件は、式の値によって異なります。複数のルートのうち、1 つのルートのみが選択されます。
|
すべての合致条件 |
1 つのステップから複数のルートが引かれていて、そのうちの複数のルートを「合致」と評価できる場合、ルーティングの処理には次の 2 つのオプションを使用できます。
「すべての合致条件」オプション (AND 分割とも呼ばれる) を指定すると、ワークは複数の子ワーク・アイテムに分かれます。左図では、Graphics へのルートは「常に合致」で、ルート A とルート B のいずれかが合致します。すなわち、実行時には、「Graphics へ至るワーク・アイテム」と、「ReviewA あるいは ReviewB のいずれかに至るワーク・アイテム」の 2 つの別々のワーク・アイテムが存在するということです。有効なマップを作成するには、Edit ステップで示すように、すべての合致ルートの最後にワークを単一パスに戻す collector ステップを定義します。 処理は collector ステップ (Edit) の直前で待機しており、すべて (この例では 2 つ) の子プロセスがこの段階に到達するまで実行されないことに注意してください |
AND 分割の特殊なケース
特殊なケースのルート | 説明 |
---|---|
![]() |
アプリケーションによっては、同時処理 (AND 分割) を指定する必要はあるが、すべての子プロセスが collector ステップに到達しないと処理を続行できないのは不便な場合があります。左に示したワークフローで、ワークフロー作成者は、ワークが Archive ステップの処理が終了するのを待たずに ProcessA ステップ、Approve ステップ、およびワークフローの残りに進むように設定しています。 左の図の Submap1 には、StartStep で 2 つの別個のワーク・アイテムを作成する AND 分割が含まれています。
Archive ステップが完了するまで待機しないように、ProcessA ステップが collector ステップとして定義されています。ProcessA パスのワーク・アイテムを親 (続行する) として指定し、TerminateBranch ステップで終了する子ワーク・アイテム (Archive パス) を解放します。 注: Archive と TerminateBranch のいずれかのステップが collector ステップとして定義されている場合は、ProcessA と Archive のワーク・アイテムは両方とも、サブマップの完了後に続行されます。この場合、ReviewDocs のワーク・アイテムは 2 つとなり、ワークフローの残りで続行されます。
|