第38章 KIE Server REST API を使用してケースへの動的タスクおよびプロセスの追加

ランタイム時に動的タスクとプロセスをケースに追加して、ケースのライフサイクル時に発生する可能性がある予定外の変更を処理できます。動的アクティビティーはケース定義に定義されているわけでないため、定義したアドホックタスクまたはプロセスが可能な方法をシグナル化することはできません。

以下の動的アクティビティーをケースに追加できます。

  • ユーザータスク
  • サービスタスク (作業項目として実装されるすべてのタイプ)
  • 再利用可能なサブプロセス

動的ユーザーおよびサービスタスクがケースインスタンスに追加され、直ちに実行されます。動的タスクの特性に従って、開始して完了を待つ (ユーザータスク) か、実行後に直接完了 (サービスタスク) します。動的サブプロセスの場合、プロセスエンジンは、この動的プロセスに対するプロセス定義を含む KJAR を要求して、ID でプロセスを探して実行します。このサブプロセスはケースに属し、ケースファイルのすべてのデータにアクセスします。

Swagger REST API アプリケーションを使用して、動的タスクおよびサブプロセスを作成します。

前提条件

手順

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

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

  2. Case instances :: Case Management で利用可能なエンドポイントの一覧を開きます。
  3. POST メソッドのエンドポイントを探し、動的アクティビティーを作成します。

    POST /server/containers/{id}/cases/instances/{caseId}/tasks

    ケースインスタンスに動的タスク (ペイロードに合わせてユーザーまたはサービスを選択) を追加します。

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

    ケースインスタンス内の特定のステージに動的タスク (ペイロードに合わせてユーザーまたはサービスを選択) を追加します。

    POST /server/containers/{id}/cases/instances/{caseId}/processes/{pId}

    プロセス ID で識別される動的サブプロセスをケースインスタンスに追加します。

    POST /server/containers/{id}/cases/instances/{caseId}/stages/{caseStageId}/processes/{pId}

    ケースインスタンス内のステージに、プロセス ID で識別される動的サブプロセスを追加します。

    swagger case management dynamic
  4. Swagger UI を開くには、動的タスクまたはプロセスの作成に必要な REST エンドポイントをクリックします。
  5. Try it out をクリックして、動的アクティビティーの作成に必要なパラメーターとボディーを入力します。
  6. Execute をクリックして、REST API を使用する動的タスクまたはサブプロセスを作成します。

38.1. KIE Server REST API を使用した動的ユーザータスクの作成

ケースの実行時には、REST API を使用して、動的ユーザータスクを作成できます。動的ユーザータスクを作成するには、次の情報を指定する必要があります。

  • タスク名
  • タスクの件名 (任意ですが、推奨されます)
  • アクターまたはグループ (もしくはその両方)
  • 入力データ

以下の手順に沿って、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}/tasks

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

    表38.1 パラメーター

    名前説明

    id

    itorders

    caseId

    IT-0000000001

    要求のボディー

    {
     "name" : "RequestManagerApproval",
     "data" : {
       "reason" : "Fixed hardware spec",
       "caseFile_hwSpec" : "#{caseFile_hwSpec}"
      },
     "subject" : "Ask for manager approval again",
     "actors" : "manager",
     "groups" : ""
    }

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

この手順は、ケース IT-000000001 に関連付けられている新しいユーザータスクを作成します。このタスクは、manager ケー出力ルに割り当てるユーザーに割り当てられます。このタスクには、2 つの入力変数があります。

  • reason
  • caseFile_hwSpec: プロセスまたはケースデータのランタイム取得を可能にする式として定義されます。

タスクによっては、タスク名で検索できる、ユーザーフレンドリーな UI を提供するフォームが提供されている場合があります。IT Orders のケースでは、RequestManagerApproval タスクには、KJAR に RequestManagerApproval-taskform.form フォームが含まれます。

タスクを作成すると、Business Central で、タスクが割り当てられたユーザーの Task Inbox にタスクが表示されます。