第8章 ステージ
ケース管理ステージはタスクの集まりです。ステージは、プロセスデザイナーを使用して定義できるアドホックサブプロセスで、マイルストーンなどの、別のケース管理ノードに含まれる可能性もあります。マイルストーンは、1 つのステージまたは複数のステージが完了した場合に完了するように設定されます。したがって、マイルストーンはステージの完了によりアクティベートまたは達成することができ、ステージにはマイルストーンを 1 つまたは複数追加できます。
たとえば、患者のトリアージケースでは、最初のステージでは、明らかな身体症状を観察して書き留めたり、その症状が何かを患者に説明してもらい、2 番目のステージでテストを行い、3 番目のステージで診断および治療を行います。
ステージを完了する 3 つの方法があります。
- 完了条件
- 終端の終了イベント
-
Completion Conditionをautocompleteに設定して、ステージにアクティブなタスクがなくなったら、自動的にそのステージを完了します。
8.1. ステージの定義 リンクのコピーリンクがクリップボードにコピーされました!
ステージは、プロセスデザイナーを使用して BPMN2 でモデル化できます。ステージとは、ステージがアクティベートされている場合に、次のステージの開始前に、完了する必要のあるアクティビティーが明確に定義されるように、関連のタスクをグループ化する手段のことを指します。たとえば、ステージを使用して、以下の方法で IT_Orders ケース定義を設定することもできます。
図8.1 IT_Orders プロジェクトステージの例
手順
- ダイアグラムエディターの左側にある事前定義済みのノードパネルから、Ad-Hoc ノードをデザインキャンバスにドラッグアンドドロップして、ステージノードの名前を指定します。
ステージをアクティベートする方法を定義します。
- 受信ノードがステージをアクティベートした場合は、ステージを、受信ノードのシーケンスフローラインに接続します。
-
シグナルイベントで、このステージが代わりにアクティベートされている場合は、シグナルイベントに、最初の手順で設定したステージの名前で
SignalRefを設定します。 -
または、条件が満たされると、ステージをアクティベートするように
AdHocActivationConditionプロパティーを設定します。
- ステージにタスクノードを追加する余裕を持たせるために、必要に応じてノードのサイズを変更します。
- 関連タスクをステージに追加して、必要に応じて設定します。
(任意) ステージの完了条件を設定します。アドホックサブプロセスとして、ステージはデフォルトで
autocompleteとして設定されます。これは、ステージが自動的に完了し、ステージ内のすべてのインスタンスがアクティブでなくなると、ケース定義の次のアクティビティーが発生することを示しています。完了条件を変更するには、ステージノードを選択して、右側の Properties パネルを選択し、Implementation/Execution を展開して、 必要な完了条件になるように free-form Drools 式を使用して
AdHocCompletionConditionを変更します。ステージ完了条件に関する情報は、「ステージのアクティベーションおよび完了条件の設定」を参照してください。- ステージを設定したら、シーケンスフローラインを使用して、ケース定義内の次のアクティビティーに接続します。
8.2. ステージのアクティベーションおよび完了条件の設定 リンクのコピーリンクがクリップボードにコピーされました!
開始ノード、中間ノード、または手動の API コールを使用してステージを発生できます。
free-form Drools ルールを使用して、マイルストーンの完了条件を設定するのと同じ方法で、アクティベーションと完了条件の両方を含めてステージを設定できます。たとえば、IT_Orders サンプルプロジェクトでは、Milestone 2: Order shipped の完了条件 (org.kie.api.runtime.process.CaseData(data.get("shipped") == true)) を、ここで使用されている Order delivery の完了条件として使用することも可能です。
図8.2 IT_Orders プロジェクトのステージ例
ステージをアクティベートする AdHocActivationCondition プロパティーを設定するアクティベーション条件は、Free Form Drools ルールを使用しても設定できます。
前提条件
- Business Central プロセスデザイナーでケース定義を作成している。
- アドホックサブプロセスを、ステージとして使用されるケース定義に追加している。
手順
-
ステージを選択して、
をクリックし、デザイナーの右側の Properties パネルを開きます。
-
Implementation/Execution を展開して、
AdHocActivationConditionプロパティーエディターを開き、開始ノードのアクティベーション条件を定義します。たとえば、autostart: trueと設定して、新規ケースインスタンスが開始されたら、ステージが自動的にアクティベートされるようにします。 -
AdHocCompletionConditionはデフォルトでは、autocompleteに設定されています。これを変更するには、free-form Drools 式を使用して完了条件を入力します。たとえば、org.kie.api.runtime.process.CaseData(data.get("ordered") == true)と設定して、以前の例の 2 つ目のステージをアクティベートします。
IT_Orders サンプルプロジェクトで使用する条件に関する例や情報は『ケース管理の使用ガイド』を参照してください。
8.3. ステージへの動的タスクの追加 リンクのコピーリンクがクリップボードにコピーされました!
動的タスクは、REST API 要求を使用してランタイム時にケースステージに追加できます。これは、ケースインスタンスに動的タスクを追加することに似ていますが、タスクが追加されるステージの caseStageId を定義する必要もあります。
以下の手順に沿って、Swagger REST API ツールを使用して、Business Central で利用可能な IT_Orders サンプルプロジェクトの動的タスクをステージに追加します。Swagger のない REST API でも、同じエンドポイントを利用できます。
前提条件
- 以前の例に示されているように、IT_Orders サンプルプロジェクトの BPMN2 ケース定義は、マイルストーンではなくステージを使用して再設定できます。 ケース管理向けにステージを設定する方法については、「ステージの定義」を参照してください。
手順
Showcase アプリケーションを使用して新規ケースインスタンスを開始します。Showcase の使用に関する情報は、『ケース管理への Showcase アプリケーションの使用』を参照してください。
このケースはステージを使用して作成されているため、ケース詳細ページにはステージの追跡が表示されます。
最初のステージは、ケースインスタンスの開始時に自動的に開始します。
managerユーザーとして、Business Central の MenuTrack Task Inbox の下で、ハードウェア明細書を承認し、ケースの進捗を確認します。 -
Business Central で Menu
Manage Process Instances の順にクリックし、アクティブケースインスタンス IT-0000000001を開きます。 - Diagram をクリックして、ケースの進捗を表示します。
-
Business Central で Menu
Web ブラウザーで、以下の URL を開きます。
/http://localhost:8080/kie-server/docs- Case instances :: Case Management で利用可能なエンドポイントの一覧を開きます。
以下の
POSTメソッドのエンドポイントをクリックし、詳細を開きます。/server/containers/{id}/cases/instances/{caseId}/stages/{caseStageId}/tasksTry it out をクリックして、以下のパラメーターを完了します。
Expand 表8.1 パラメーター 名前 説明 iditorderscaseIdIT-0000000001caseStageIdOrder deliverycaseStageIdは、ケース定義に含まれるステージ名です。このケース定義で、動的タスクが作成されます。これには、動的またはサービスタスクペイロードを指定できます。サンプルについては、「REST API を使用した動的サブプロセスの作成」または「REST API を使用した動的サービスタスクの作成」を参照してください。
動的タスクをステージに追加したら、ステージを完了して、ケースフローの次の項目にプロセスを進ませるために、その動的タスクを完了する必要があります。