38.2. KIE Server REST API を使用した動的サービスタスクの作成

サービスタスクは通常、ユーザータスクより複雑ではありませんが、正常に実行するにはさらにデータが必要となる可能性があります。サービスタスクには以下の情報が必要です。

  • name: アクティビティー名
  • nodeType: ワークアイテムハンドラーの検索に使用するノードタイプ
  • data: 正しく実行を処理するためのデータのマッピング

ケースの実行時に、ユーザータスクと同じエンドポイントを使用して動的サービスタスクを作成できますが、ボディーペイロードは異なります。

以下の手順に沿って、Swagger REST API ツールを使用して、Business Central で利用可能な IT_Orders サンプルプロジェクトの動的サービスタスクを作成します。Swagger のない REST API でも、同じエンドポイントを利用できます。

前提条件

手順

  1. Web ブラウザーで、以下の URL を開きます。

    http://localhost:8080/kie-server/docs

  2. Case instances :: Case Management で利用可能なエンドポイントの一覧を開きます。
  3. 以下の POST メソッドのエンドポイントをクリックし、詳細を開きます。

    /server/containers/{id}/cases/instances/{caseId}/stages/{caseStageId}/tasks

  4. Try it out をクリックしてから、以下のパラメーターを入力します。

    表38.2 パラメーター

    名前説明

    id

    itorders

    caseId

    IT-0000000001

    要求のボディー

    {
     "name" : "InvokeService",
     "data" : {
       "Parameter" : "Fixed hardware spec",
       "Interface" : "org.jbpm.demo.itorders.services.ITOrderService",
       "Operation" : "printMessage",
       "ParameterType" : "java.lang.String"
      },
     "nodeType" : "Service Task"
    }

  5. Swagger アプリケーションで、Execute をクリックして動的タスクを作成します。

この例では、Java ベースのサービスが実行されます。この例には、org.jbpm.demo.itorders.services.ITOrderService のパブリッククラスと、String 引数が 1 つ指定された printMessage パブリックメソッドとインターフェイスで設定されます。このサービスを実行すると、パラメーターの値がメソッドに渡されて実行されます。

サービスタスク作成に指定する数字、名前、他のタイプのデータは、サービスタスクのハンドラーの実装により異なります。提供されている例では、org.jbpm.process.workitem.bpmn2.ServiceTaskHandler ハンドラーが使用されています。

注記

カスタムサービスタスクの場合は、Work Item Handlers セクションのデプロイメント記述子にハンドラーが登録されていることを確認します。名前は、動的サービスタスクの作成に使用される nodeType と同じです。