3.6. ゲートウェイ
ゲートウェイは、プロセス全体で複数の実行パスを提供できるようにします。ゲートウェイには、Diverging gateway と Converging gateway の 2 種類があります。Diverging gateway は、プロセス内にブランチを作成して、Converging gateway はブランチを再度統合することでブランチを閉じます。
以下の方法でプロセスのブランチを作成できます。
- AND (Parallel)コントロールのフローは、外向き接続 (ブランチ) すべてでも同時に継続されます。
- XOR (Exclusive)コントロールのフローは、外向き接続の 1 つでのみ継続されます。優先順位が最も低く制約があり、True と評価される接続が選択されます。制約の定義に関する詳細は、「制約」 を参照してください。外向き接続の内、必ず 1 つはランタイム時に true と評価される必要があります。そうでないとランタイム時に例外が送出されます。

図3.2 Diverging Gateway
Diverging gateway には、内向き接続が 1 つと、外向き接続が 2 つ以上あります。Diverging Gateway には以下のプロパティが含まれます。
- ID: ノードの ID (1 つのノードコンテナー内で一意)
- Name: ノードの表示名
- Type: AND または XOR
- Constraints: 各外向き接続にリンクされている制約 (exclusive および inclusive gateways)

図3.3 Converging Gateway
Converging gateway には内向き接続が 2 つ以上、外向き接続が 2 つあります。Converging gateway には以下のプロパティが含まれています。
- ID: ノードの ID (1 つのノードコンテナー内で一意)
- Name: ノードの表示名
- Type: AND または XOR
使用する Diverging Gateway の種類により、Converging Gateway は以下のように様々な形で動作します。
- 並行 (AND) 分岐が使用された場合、Converging Gateway はすべての内向きブランチが完了するまで待機してから次に進みます。
- 排他 (XOR) 分岐が使用された場合、Converging Gateway は 1 つの内向き接続が完了したらすぐ、次に進みます。
注記
Inclusive (OR) gateway には現在対応していません。