JBPM 6.3:如何为任务设置自定义业务管理员

JBPM 6.3: How to set custom business administrators for tasks

我的 JBPM 系统使用 LDAP 进行身份管理。由于用户 Administrator 并且组 Administrators 在我的环境中无效,我需要将我自己的组 BPMUL-admin 设置为所有任务的业务管理员。根据这个 ,我将 'Human Task' 工作项处理程序添加到 CustomWorkItemHandlers.conf:

[
  "Log": new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler(),
  "WebService": new org.jbpm.process.workitem.webservice.WebServiceWorkItemHandler(ksession),
  "Rest": new org.jbpm.process.workitem.rest.RESTWorkItemHandler(),
  "Service Task" : new org.jbpm.process.workitem.bpmn2.ServiceTaskHandler(ksession),
  "Human Task" : new ru.rshb.kie.LeaHTWorkItemHandler(runtimeManager)
]

drools.session.conf:

drools.workItemHandlers = CustomWorkItemHandlers.conf

这里是 LeaHTWorkItemHandler:

public class LeaHTWorkItemHandler extends LocalHTWorkItemHandler {

    public static final String ADMIN_GROUP = "BPMUL-admin";

    public LeaHTWorkItemHandler(RuntimeManager runtimeManager){
        super.setRuntimeManager(runtimeManager);
    }

    @Override
    protected Task createTaskBasedOnWorkItemParams(KieSession session, WorkItem workItem) {
        InternalTask task =(InternalTask)super.createTaskBasedOnWorkItemParams(session,workItem);
        Group adminGroup = TaskModelProvider.getFactory().newGroup();
        ((InternalOrganizationalEntity) adminGroup).setId(ADMIN_GROUP);

        task.getPeopleAssignments().getBusinessAdministrators().add(adminGroup);
        return task;
    }
}

1。当我尝试部署它时,出现错误:

Caused by: javax.ejb.EJBException: [Error: no such method or function: runtimeManager] [Near : {... "Human Task" : new ru.rshb.kie.LeaHTWorkItemHandl ....}]

  1. 如果我从构造函数中删除 runtimeManager,那么我会看到调用了构造函数,但是 JBPM 永远不会调用方法 createTaskBasedOnWorkItemParams

我做错了什么?或者是否有更好的方法来定义自定义业务管理员?

我使用 JBPM 6.3。

好的,我明白了。我从 CustomWorkItemHandlers.conf 中删除了我的工作项处理程序,并在开始该过程之前添加了以下行:

ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new LeaHTWorkItemHandler(runtimeManager));