jBPM 6.2如何添加可以执行所有任务的用户?

时间:2015-05-29 17:19:47

标签: jbpm bpmn

在jBPM 6.2中,我们可以将用户任务分配给groupn,以便他们成为这些任务的潜在所有者。是否有我们可以在代码或bpmn文件中定义的用户,以便他可以执行所有用户任务,而不管任务是否分配给他?

1 个答案:

答案 0 :(得分:3)

使用用户名"管理员"创建一个用户,或者使用您现有的一个用户并将其添加到组"管理员"。这使得有问题的用户可以作为BusinessAdministrator访问该任务。这应该适用于您的大部分要求。

如果您遇到任何此方法的挑战,另一个选择可能是在“人工任务”中实施您自己的自定义任务分配行为。 WorkItemHandler,但让我们首先尝试上面提到的方法。

根据要求,此方法的代码示例如下:

  1. 实现一个类test.CustomHTWorkItemHandler,它扩展了LocalHTWorkItemHandler(https://github.com/droolsjbpm/jbpm/blob/master/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/LocalHTWorkItemHandler.java)。
  2. 给它一个新的承包商: native
  3. 覆盖方法createTaskBasedOnWorkItemParams: public CustomHTWorkItemHandler(RuntimeManager runtimeManager){ super.setRuntimeManager(runtimeManager); }
  4. 在部署描述符xml文件中,注册新的CustomHTWorkItemHandler:
  5. protected Task createTaskBasedOnWorkItemParams(KieSession session, WorkItem workItem) { InternalTask task =(InternalTask)super.createTaskBasedOnWorkItemParams(session,workItem); Group adminGroup = TaskModelProvider.getFactory().newGroup(); ((InternalOrganizationalEntity) adminGroup).setId("MySpecialAdminGroup");
    task.getPeopleAssignments().getBusinessAdministrators().add(adminGroup); return task; }