38.2. KIE Server REST API を使用した動的サービスタスクの作成
サービスタスクは通常、ユーザータスクより複雑ではありませんが、正常に実行するにはさらにデータが必要となる可能性があります。サービスタスクには以下の情報が必要です。
-
name: アクティビティー名 -
nodeType: ワークアイテムハンドラーの検索に使用するノードタイプ -
data: 正しく実行を処理するためのデータのマッピング
ケースの実行時に、ユーザータスクと同じエンドポイントを使用して動的サービスタスクを作成できますが、ボディーペイロードは異なります。
以下の手順に沿って、Swagger REST API ツールを使用して、Business Central で利用可能な IT_Orders サンプルプロジェクトの動的サービスタスクを作成します。Swagger のない REST API でも、同じエンドポイントを利用できます。
前提条件
- Business Central にログインしており、Showcase アプリケーションを使用して IT Orders ケースインスタンスを起動している。Showcase の使用に関する情報は、ケース管理への Showcase アプリケーションの使用 を参照してください。
手順
Web ブラウザーで、以下の URL を開きます。
- Case instances :: Case Management で利用可能なエンドポイントの一覧を開きます。
以下の
POSTメソッドのエンドポイントをクリックし、詳細を開きます。/server/containers/{id}/cases/instances/{caseId}/stages/{caseStageId}/tasksTry it out をクリックしてから、以下のパラメーターを入力します。
表38.2 パラメーター
名前 説明 iditorderscaseIdIT-0000000001要求のボディー
{ "name" : "InvokeService", "data" : { "Parameter" : "Fixed hardware spec", "Interface" : "org.jbpm.demo.itorders.services.ITOrderService", "Operation" : "printMessage", "ParameterType" : "java.lang.String" }, "nodeType" : "Service Task" }- Swagger アプリケーションで、Execute をクリックして動的タスクを作成します。
この例では、Java ベースのサービスが実行されます。この例には、org.jbpm.demo.itorders.services.ITOrderService のパブリッククラスと、String 引数が 1 つ指定された printMessage パブリックメソッドとインターフェイスで設定されます。このサービスを実行すると、パラメーターの値がメソッドに渡されて実行されます。
サービスタスク作成に指定する数字、名前、他のタイプのデータは、サービスタスクのハンドラーの実装により異なります。提供されている例では、org.jbpm.process.workitem.bpmn2.ServiceTaskHandler ハンドラーが使用されています。
カスタムサービスタスクの場合は、Work Item Handlers セクションのデプロイメント記述子にハンドラーが登録されていることを確認します。名前は、動的サービスタスクの作成に使用される nodeType と同じです。