同時並行処理を実現する

Questetra BPM Suite では、1 つのケースの中で複数の作業を同時並行で進めることができます。ここでは、同時並行処理を実現するための考え方を説明します。

前提として、ワークフローの中を流れる処理の単位を「トークン」と呼びます。トークンが今どの工程にあるかが、その仕事の進捗を表します(トークンの基本は、初級者向けチュートリアル 第 2 章 ワークフローアプリの使い方を体験する で説明しています)。

(※ 分岐 AND ゲートウェイ(並列ゲートウェイ)・分岐 OR ゲートウェイ(包含ゲートウェイ)は Basic エディションではご利用いただけません。Advanced / Professional エディションでご利用ください。)


1 つのケースで動き出すトークンは 1 つ

ケース開始時に動き出すトークンは、常に 1 つだけです。1 つのアプリには開始イベントを複数配置することもできます(たとえばフォーム入力から始める[メッセージ開始イベント(フォーム)]と、決まった日時に始める[タイマー開始イベント]を併存させる、など)。しかしこれは「ケースを始めるきっかけ(入口)が複数ある」という意味であり、複数の開始イベントから同時にトークンが動き出すわけではありません。1 つのケースは、実際に実行された 1 つの開始イベントから始まり、そこから 1 つのトークンが動き出します。

したがって、異なるスイムレーンにそれぞれ開始イベントを配置しても、2 つの経路が同時並行で進むことはありません。「担当 A と担当 B の作業を並行させたい」と考えて各スイムレーンに開始イベントを置いても、意図した並行処理にはならない点に注意してください。


人が起点の場合、開始イベントの直後に最初のタスクが必要

人が入力してケースを開始する場合、入力を受け取る最初の工程([開始イベント]+最初の[ヒューマンタスク]、または[メッセージ開始イベント(フォーム)])が起点になります。トークンを分岐させる並行分岐は、この最初の入力工程の後ろに配置します。


同時並行処理はゲートウェイで実現する

1 つのトークンを複数に分裂させ、同時並行処理を実現できるのは、次の 2 つの分岐ゲートウェイです。

  • [分岐 AND ゲートウェイ(並列ゲートウェイ)]:条件によらず、すべての経路へトークンを分裂させて進めます。必ず全経路が同時並行で処理されます。
  • [分岐 OR ゲートウェイ(包含ゲートウェイ)]:各経路の条件を評価し、条件を満たした経路すべてへトークンを分裂させて進めます。該当する経路が複数あれば、その数だけ同時並行で処理されます(条件しだいで並行する数が変わります)。

「必ずすべてを並行させたい」場合は AND、「条件に合致したものだけを並行させたい」場合は OR を選びます。なお、いずれか 1 つの経路だけを選ぶ[分岐 XOR ゲートウェイ(排他ゲートウェイ)]は、トークンを分裂させません。

経路が合流するポイントには、対応する統合ゲートウェイ([統合 AND ゲートウェイ]/[統合 OR ゲートウェイ])を配置します。統合ゲートウェイは、分裂したトークンの到着をすべて待ち合わせ、揃った時点で 1 つのトークンに統合して下流の工程へ進めます。合流ポイントに統合ゲートウェイを置かないと、経路ごとにトークンがそのまま下流へ進み、後続のタスクが経路の数だけ発生してしまうので注意してください。


まとめ

  • ケース開始時に動き出すトークンは 1 つだけです。
  • 開始イベントを複数配置しても、同時に複数のトークンが動き出すことはありません。
  • 人が起点の場合、最初の入力工程の後ろで並行分岐します。
  • 同時並行処理を実現するには、[分岐 AND ゲートウェイ](無条件に並行)または[分岐 OR ゲートウェイ](条件に応じて並行)でトークンを分裂させ、経路が合流するポイントの[統合ゲートウェイ]で 1 つに統合します。

あわせて読みたい

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む