遷移とは、2つの作業を連結し、その順序関係を表すものです。遷移には、大きく分けて通常遷移と例外遷移があります。
通常遷移には、条件を指定するタイプとデフォルトタイプがあります。条件を指定するタイプは、条件式を記述する遷移です。デフォルトタイプは、条件を指定するタイプに指定された条件式がすべてFALSEと評価された場合に選択される遷移です。
例外遷移には、例外の種類を指定するタイプと例外発生時のデフォルトタイプがあります。例外の種類を指定するタイプは、指定した例外に対する遷移を記述する遷移です。例外発生時のデフォルトタイプの遷移は、例外の種類を指定するタイプに指定された例外のいずれとも一致しなかった場合に選択される遷移です。
ルーティングとは、作業の実行順序を定義する機構です。ルーティングによって、ワークフロー実行中に、どの遷移を選択するかが決定されます。
ワークフローの基本的なルーティングを説明します。
遷移の開始点と終了点のほかに、次のルーティングがあります。
連結された作業を遷移にしたがって、逐次実行します。
図: 直列のルーティング
複数の作業を並列に実行します。並列は、AND分岐によって開始し、AND結合または、OR結合によって収束します。
図: 並列のルーティング
項目 | 説明 |
---|---|
AND分岐 | 並列のルーティングを開始します。遷移元となる作業が保持する遷移には、評価される条件式が設定されています。 AND分岐は、すべての遷移の条件式を評価して、条件を満たす経路をすべて選択します(その先にある作業の実行に遷移します)。 OR分岐作業以外の作業から出力される遷移は、すべてAND分岐として動作します。終了、中止、例外作業は、遷移元に指定できません。 |
OR分岐 | 連結された複数の処理のうち、1つを実行します。遷移元となる作業が保持する遷移には、評価される条件式と評価順序が設定されています。 OR分岐を実現するためには、OR分岐作業をルーティングの分岐部分に配置します。 |
AND結合 | 1つ以上の入力があり、到達しえるアクティブな作業が存在しなくなった時点で次の作業に遷移します。 OR結合作業以外の作業へ入力される遷移は、すべてAND結合として動作します。開始作業は、遷移先に指定できません。 |
OR結合 | 1つの入力があった時点で、次の作業に遷移します。 並列するルートをOR結合した場合、いずれかのルートが、OR結合に達した時点で、次の作業に遷移します。2回め以降は次の作業に遷移しません。 OR結合を実現するためには、OR結合作業をルーティングの結合部分に配置します。 いずれかのルートからの入力により他のルートの作業を中止する場合には、ブロック内に分岐とOR結合を配置し、OR結合の次の作業として中止作業を配置してください。 また、ループ中のOR結合で、2回め以降の入力ではOR結合の次の作業に遷移しません。ループ中でOR結合が必要な場合には、ブロック内にOR結合を配置して遷移状態をリセットする必要があります。 |
ループ | ある遷移の遷移先が、開始点からその遷移の遷移元へのルートの途中にある作業であるとき、そのルートをループと呼びます。 ループを使用する場合、そのループを構成する遷移のどこかにループから抜け出すための終了条件を記述する必要があります。 |