10.3.5. ユーザーとグループの割り当て

タスクは、ユーザー 1 名または複数名に割り当てることができます。タスクがユーザー 1 名に割り当てられた場合、そのユーザーのタスク一覧に表示されます。タスクが複数のユーザーに割り当てられた場合は、その中のユーザーの内 1 名がこのタスクを請求し実行することができます。また、タスクはグループにも割り当てることができ、タスクを割り当てたグループの 1 つでメンバーになっているユーザーがこのタスクを請求できるようになっています。
ユーザーおよびグループは、タスクを割り当てられるようにまず登録する必要があります。登録は動的に行うことができます。
EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.task");
TaskService taskService = new TaskService(emf, SystemEventListenerFactory.getSystemEventListener());
TaskServiceSession taskSession = taskService.createSession();
// now register new users and groups
taskSession.addUser(new User("userA"));
taskSession.addGroup(new Group("groupA"));
ヒューマンタスクサービスは、ユーザーとグループの間の関係は保持しません。user group callback クラスは、作成して jbpm-human-task.war/WEB-INF/web.xml ファイルにリストアップする必要があります。デフォルトの実装 org.jbpm.task.service.DefaultUserGroupCallbackImpl は、全ユーザーを全グループに割り当てます。これはテスト目的で提供されています。
user group callback クラスを追加するには、jbpm-human-task.war/WEB-INF/web.xml を開き、以下の例にあるようにクラスを追加します。
<!-- use org.jbpm.task.service.DefaultUserGroupCallbackImpl to configure sample user group callback for demo purpose--><init-param><param-name>user.group.callback.class</param-name><param-value>org.jbpm.task.service.DefaultUserGroupCallbackImpl</param-value></init-param>

	
	

jbpm-human-task モジュールには、src/test/java source フォルダーの org.jbpm.task.RunTaskService クラスが含まれており、server/profile/deploy/jbpm-human-task.war/WEB-INF/classes/org/jbpm/task/servlet/ ディレクトリにある LoadUsers.mvel と LoadGroups.mvel 設定ファイルに定義されているようにユーザーとグループを自動的に追加します。