40.5. REST API を使用してランタイム時にケースのロール割り当ての修正

REST API または Swagger アプリケーションを使用して、ケースのランタイム時にケースインスタンスのロール割り当てを変更できます。ロールはケース定義に定義され、ケースのライフサイクルでタスクに割り当てます。ロールは事前に定義されるためランタイム時に変更できませんが、ロールに割り当てたアクターを、ケースタスクを実行するユーザーに変更できます。

以下の手順には、IT_Orders サンプルプロジェクトをもとにした例が含まれます。Swagger アプリケーション、または他の REST API クライアントと同じ REST API エンドポイントを使用するか、Curl を使用します。

前提条件

  • IT 発注ケースインスタンスを、ownermanager、および supplier のロールがアクターにすでに割り当てられている状態で開始している。

手順

  1. 以下のエンドポイントで GET リクエストを使用して現在のロール割り当ての一覧を取得します。

    http://localhost:8080/kie-server/services/rest/server/containers/{id}/cases/instances/{caseId}/roles

    表40.1 パラメーター

    名前説明

    id

    itorders

    caseId

    IT-0000000001

    これにより、以下の応答が返されます。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <case-role-assignment-list>
          <role-assignments>
                <name>owner</name>
                <users>Aimee</users>
          </role-assignments>
          <role-assignments>
                <name>manager</name>
                <users>Katy</users>
          </role-assignments>
          <role-assignments>
                <name>supplier</name>
                <groups>Lenovo</groups>
          </role-assignments>
    </case-role-assignment-list>
  2. manager ロールに割り当てられているユーザーを変更する場合は、最初に DELETE を使用して、ユーザー Katy からロール割り当てを削除する必要があります。

    /server/containers/{id}/cases/instances/{caseId}/roles/{caseRoleName}

    Swagger クライアントリクエストに以下の情報を追加します。

    表40.2 パラメーター

    名前説明

    id

    itorders

    caseId

    IT-0000000001

    caseRoleName

    manager

    user

    Katy

    Execute をクリックします。

  3. 最初の手順の GET リクエストを再実行し、manager ロールにユーザーが割り当てられなくなったことを確認します。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <case-role-assignment-list>
          <role-assignments>
                <name>owner</name>
                <users>Aimee</users>
          </role-assignments>
          <role-assignments>
                <name>manager</name>
          </role-assignments>
          <role-assignments>
                <name>supplier</name>
                <groups>Lenovo</groups>
          </role-assignments>
    </case-role-assignment-list>
  4. 以下のエンドポイントで PUT リクエストを使用して、Cami ユーザーを manager ロールに割り当てます。

    /server/containers/{id}/cases/instances/{caseId}/roles/{caseRoleName}

    Swagger クライアントリクエストに以下の情報を追加します。

    表40.3 パラメーター

    名前説明

    id

    itorders

    caseId

    IT-0000000001

    caseRoleName

    manager

    user

    Cami

    Execute をクリックします。

  5. 最初の手順の GET リクエストを再実行し、manager ロールが Cami に割り当てられていることを確認します。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <case-role-assignment-list>
          <role-assignments>
                <name>owner</name>
                <users>Aimee</users>
          </role-assignments>
          <role-assignments>
                <name>manager</name>
                <users>Cami</users>
          </role-assignments>
          <role-assignments>
                <name>supplier</name>
                <groups>Lenovo</groups>
          </role-assignments>
    </case-role-assignment-list>