第6章 プロセスデザイナー内の BPMN2 サブプロセス

サブプロセスは、複数のノードが含まれるアクティビティーです。サブプロセスにメインのプロセスの一部を埋め込むことができます。また、サブプロセスには変数定義を追加できます。これらの変数は、サブプロセス内の全ノードにアクセスできます。

サブプロセスには、内向きの接続と外向きの接続 1 つずつ含める必要があります。サブプロセスに中断終了イベントを使用する場合には、サブプロセスだけでなく、サブプロセスが含まれる全プロセスインスタンスが中断されます。サブプロセスからアクティブな要素がなくなると、サブプロセスが終了します。

Red Hat Process Automation Manager では、以下のサブプロセスのタイプがサポートされます。

  • 埋め込みのサブプロセス。親プロセス実行の一部で、親プロセスのデータを共有します。
  • アドホックサブプロセス。厳密な要素実行の順番はありません。
  • 再利用可能なサブプロセス。親プロセスから独立しています。
  • イベントサブプロセス。開始イベントまたはタイマーでのみトリガーされます。
  • マルチインスタンスのサブプロセス

以下の例では、発注のサブプロセスは、その注文を受けるのに十分な在庫があるかを確認し、注文できた場合に在庫情報を更新します。注文の可否により、メインのプロセス経由で、顧客に通知が行きます。

subprocess

埋め込みサブプロセス

埋め込みサブプロセスは、プロセスの一部をカプセル化します。このサブプロセスには、開始イベントと、最低でも 1 つの終了イベントが含まれている必要があります。この要素を使用して、このコンテナー内の全要素にアクセスできるローカルのサブプロセス変数を定義できます。

アドホックサブプロセス

アドホックサブプロセスまたはプロセスには、埋め込みの内部アクティビティーが複数含まれ、通常のプロセスルーティングに比べて、より柔軟な順番で実行することを目的としています。通常のプロセスとは違い、アドホックサブプロセスには、開始イベントから終了イベントまでといった、完全な体系化された BPMN2 ダイアグラムの説明は含まれません。代わりに、アクティビティー、シーケンスフロー、ゲートウェイ、中間イベントのみが含まれます。また、アドホックサブプロセスには、データオブジェクトやデータの関連付けも含めることができます。アドホックサブプロセス内のアクティビティーでは、内向きおよび外向きのシーケンスフローを含める必要はありませんが、その中に含まれているアクティビティー間のシーケンスフローを指定できます。このサブプロセスを使用する場合には、シーケンスフローで、通常のプロセスと同じように順序の制約が課されます。意味をもたせるには、中間イベントに外向きのシーケンスフローを設定して、アドホックプロセスがアクティブな間は複数回トリガーできるようにします。

再利用可能なサブプロセス

再利用可能なサブプロセスは、親プロセス内に折り畳まれているように表示され、サブプロセス要素は、角が丸い長方形の下方にあるプラスサインをクリックするまで表示されません。

イベントサブプロセス

イベントサブプロセスは、開始イベントがトリガーされるとアクティブになります。親プロセスのコンテキストを中断するか、並行して実行できます。

外向きまたは内向きの接続では、イベントまたはタイマーがサブプロセスをトリガーできます。サブプロセスは、通常のコントロールフローの一部ではありません。自己完結型ではありますが、バインドされているプロセスのコンテキストで実行されます。

プロセスフロー内のイベントサブプロセスを使用して、主なプロセスフロー外で発生するイベントを処理します。たとえば、飛行機の予約時には、以下の 2 つのイベントが発生する可能性があります。

  • 予約の取り消し (割り込み)
  • 予約ステータスの確認 (割り込みなし)

イベントのサブプロセスを使用して、これらのイベント両方をモデル化します。

マルチインスタンスサブプロセス

マルチインスタンスサブプロセスは、実行がトリガーされると、複数回インスタンス化されます。インスタンスが順次作成されます。新しいサブプロセスインスタンスは、前のインスタンスが完了した後にのみ作成されます。

マルチインスタンスサブプロセスには、内向きの接続 1 つと、外向きの接続 1 つが含まれます。