40.5. REST API を使用してランタイム時にケースのロール割り当ての修正
REST API または Swagger アプリケーションを使用して、ケースのランタイム時にケースインスタンスのロール割り当てを変更できます。ロールはケース定義に定義され、ケースのライフサイクルでタスクに割り当てます。ロールは事前に定義されるためランタイム時に変更できませんが、ロールに割り当てたアクターを、ケースタスクを実行するユーザーに変更できます。
以下の手順には、IT_Orders サンプルプロジェクトをもとにした例が含まれます。Swagger アプリケーション、または他の REST API クライアントと同じ REST API エンドポイントを使用するか、Curl を使用します。
前提条件
-
IT 発注ケースインスタンスを、
owner、manager、およびsupplierのロールがアクターにすでに割り当てられている状態で開始している。
手順
以下のエンドポイントで
GETリクエストを使用して現在のロール割り当ての一覧を取得します。http://localhost:8080/kie-server/services/rest/server/containers/{id}/cases/instances/{caseId}/roles表40.1 パラメーター
名前 説明 iditorderscaseIdIT-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>managerロールに割り当てられているユーザーを変更する場合は、最初にDELETEを使用して、ユーザーKatyからロール割り当てを削除する必要があります。/server/containers/{id}/cases/instances/{caseId}/roles/{caseRoleName}Swagger クライアントリクエストに以下の情報を追加します。
表40.2 パラメーター
名前 説明 iditorderscaseIdIT-0000000001caseRoleNamemanageruserKatyExecute をクリックします。
最初の手順の
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>以下のエンドポイントで
PUTリクエストを使用して、Camiユーザーをmanagerロールに割り当てます。/server/containers/{id}/cases/instances/{caseId}/roles/{caseRoleName}Swagger クライアントリクエストに以下の情報を追加します。
表40.3 パラメーター
名前 説明 iditorderscaseIdIT-0000000001caseRoleNamemanageruserCamiExecute をクリックします。
最初の手順の
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>