最近のアクセス:
BPMN 入門 - ゲートウェイ

ゲートウェイは、プロセスを分散または集中させる方法を制御するエレメントをモデル化します。すべてのゲートウェイはひし形で示され、ゲートウェイのタイプに応じて異なるアイコンが付加されます。
主要なゲートウェイ
  • 排他的: 分岐: フローはゲートウェイ内の最初のパス (経路) のうち 1 つだけを通り、ゲートウェイに定義された条件を評価した後で、選択が行われます (各パスに対して 1 つ)。マージ: 複数のパスがゲートウェイに到着すると、単純にどの条件も評価せず、またはどの同期も行わずにフローを継続することができます。
  • イベント: 分岐: 指定されたイベントの発生に応じて、フローはゲートウェイ内の最初のパスのうち 1 つだけを通ります。マージ: 排他的ゲートウェイと同様です。
  • 並列: 分岐: フローはゲートウェイ内で開始されたすべてのパスを通ります。マージ: ゲートウェイに到着するすべてのパスを同期させます。
詳細なゲートウェイ
  • 包括的: 分岐: ゲートウェイの条件に一致するすべての出力パスを通ります (パスごとに 1 つ)。マージ: ゲートウェイに実際に到着するプロセスフローのすべてのパスと同期します。
  • 複合: 分岐: ゲートウェイに指定された単一の条件に応じて、1 つまたは複数のパスを通ります。マージ: ゲートウェイは、ゲートウェイに指定された単一の条件に一致するすべての入力パスと同期します。
下図では、ゲートウェイで表示される記号を示しています:
 イメージ:24994.png
排他的ゲートウェイ
分岐:
2 つ以上の経路にフローを分岐しますが、プロセスフローはいずれか 1 つのパスを通ります。条件はゲートウェイの項目属性とし表現され、自然言語または正規表現として表されます。各パスに設定された条件の評価に基づき、次に進むパスが選択されます。それらはゲートウェイで定義された順に一度に評価され (対応するパスがダイアグラムで表示されていることが評価されるという意味ではありません)、True と評価された最初の条件に対応するパスが選択されます。True の条件がない場合、プロセスはゲートウェイに留まります。この場合、既定のパスの使用が提案されます。
下図では、ゲートウェイのこのタイプの使用方法を例示しています:
イメージ:24995.png
合流:
同期を行わずにフローを合流させます。たとえば、次のようなダイアグラムがあります:
フローが 'Accept Cash or Check' タスクからゲートウェイに移動する場合、'Prepare Package for Customer' タスクのインスタンスが自動的に作成されます。後続のフローが 'Process Credit Card' タスクからゲートウェイに到着する場合、別の 'Prepare Package for Customer' のインスタンスが作成されます。
ゲートウェイのイベント
分岐:
ゲートウェイのこのタイプは、1 つまたは複数のキャッチタイプの中間イベントの使用を要求します。有効なイベントのタイプは次のとおりです:
  • メッセージ
  • タイマー
  • 条件付き
  • シグナル
受信タスクはメッセージイベントの代わりに使用することはできますが、混在させることはできません。 
下図では、ゲートウェイのこのタイプの使用方法を例示しています:
イメージ:24996.png
前の例では、フローは最初に発生したイベントに対応するパスを通ります。 
指定したイベントが何も発生しない場合には、プロセスが滞るということを覚えておいてください。このため、代替としてタイマーイベントを推奨します。
合流:
排他的ゲートウェイと同様です。
並列ゲートウェイ
分岐:
フローを同時進行する複数のパスに単に分割します。条件は評価されません。
合流:
GeneXus X のビジネス プロセス ダイアグアムに含まれている And-Join と同じ方法で動作します。
包括的ゲートウェイ
分岐:
包括的ゲートウェイは、複数の条件に基づいて複数のパスを作成できるという意味で、排他的ゲートウェイとよく似ています。相違点は、包括的ゲートウェイでは、定義されている条件が True になった複数のパスを選択可能であるということです。したがって、フローが分岐点で止まってしまう (条件がすべて False になる事態が発生した場合など) のを防ぐため、「既定」のパスを使用することをお勧めします。
合流:
すべての入力パスと同期するという意味で、並列ゲートウェイの合流とよく似ています。ただし、並列ゲートウェイとは異なり、ゲートウェイに実際に到達したフローだけを同期します。これらの実際に到達したフローは、ダイアグラムのすべての入力パスと必ずしも同じであるとは限りません。各プロセスインスタンスによって異なる場合があります。
この概念を説明するために、包括的ゲートウェイで使用する合流パスが含まれる次のダイアグラムについて見てみましょう:
 イメージ:24997.png
ある点に 'Supplement A' および 'Supplement C' のタスクの有効なインスタンスがあり、'Supplement B' にはない (このタスクのインスタンスはこのプロセスインスタンスで作成されていない) と仮定します。また、'Supplement A' のインスタンスが最初に完了すると仮定します。その時点で、フローは包括的ゲートウェイに到達します。ここでは、ほかの可能なパスでゲートウェイが「固定」され、'Supplement C' のパスを待つべきか決めます。このタスクが完了すると、'Compile Documents' に向かってフローを続けることができます。このケースで並列ゲートウェイが使用される場合、プロセスはゲートウェイで無期限に留まります。
複合ゲートウェイ
分岐:
これは包括的ゲートウェイによく似ています。相違点は、出力パス経由の条件のセットの代わりに、ゲートウェイ内に単一の出力割り当てを使用するということです。この結果は、1 つまたは複数の出力パスが有効化された場合と同じです。
一般的に、1 つの割り当てには次の 2 つのパーツがあります: 条件およびアクション。割り当てが実行されると、条件が評価され、True の場合、アクションが実行されます。このアクションはプロセスのプロパティまたはデータオブジェクトを更新することができます。複合ゲートウェイのケースでは、出力割り当てはプロセスデータまたはそのデータオブジェクトおよびその入力パスの状況 (例: フローが一定のプロセスインスタンス内の一定のパスからきた場合) を参照します。たとえば、出力割り当てはプロセスデータを評価してから、評価結果に応じて出力パスの異なるセットを選択します。ただし、出力割り当てが少なくとも 1 つのパスを選択している必要があります。
合流:
このケースでは、フローがゲートウェイに到達すると、入力割り当てが使用されます。条件は複合ゲートウェイの分岐と同じデータを参照します (プロセスデータ、データオブジェクトなど)。条件が False と評価した場合、ゲートウェイでフローが停止されるという事実を除いては何も発生しません。True と評価した場合、フローの後続のアクションが実行されるか停止されます。
パスを合流するための複合ゲートウェイの使用は、使用される目的により変更することができます。また、ゲートウェイに割り当てられている動作について、ダイアグラムの利用者への情報提供として、テキスト注釈の使用をお勧めします。
使用例は識別パターンになります。このパターンでは、複合ゲートウェイで合流した複数の並列タスクがあります。アクティビティの 1 つが完了したら、次のタスクを開始できます。最初にどのアクティビティが完了したのかは問題ではありません。ほかのタスクは通常どおり完了しましたが、プロセスフローに影響がありません。つまり次のタスクの新しいインスタンスが生成されません。
たとえば、識別パターンが適用された次のようなダイアグラムがあるとします:
イメージ:24998.png
並列タスクは 'Run Test A' および 'Runt Test B' です。たとえば、2 つのタスクのどちらが先に完了するかは問題でないため、'Runt Test A' が最初に完了した場合、フローはすぐに 'Start Analysis' に続けられます。次に、'Runt Test B' が完了すると、'Start Analysis' の別のインスタンスは生成されません。
これは、希望どおりの動作にモデラーを「プログラム」することができる、非常に一般的なゲートウェイ設計であることを説明しておく必要があります。
メイン記事に移動する -   前のセクションに戻る次のセクションに進む






サブページ
Created: 16/07/29 02:06 by Admin Last update: 21/05/21 03:33 by Admin
カテゴリ
Powered by GXwiki 3.0