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 ....}]
- 如果我从构造函数中删除
runtimeManager
,那么我会看到调用了构造函数,但是 JBPM 永远不会调用方法 createTaskBasedOnWorkItemParams
。
我做错了什么?或者是否有更好的方法来定义自定义业务管理员?
我使用 JBPM 6.3。
好的,我明白了。我从 CustomWorkItemHandlers.conf 中删除了我的工作项处理程序,并在开始该过程之前添加了以下行:
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new LeaHTWorkItemHandler(runtimeManager));
我的 JBPM 系统使用 LDAP 进行身份管理。由于用户 Administrator
并且组 Administrators
在我的环境中无效,我需要将我自己的组 BPMUL-admin
设置为所有任务的业务管理员。根据这个
[
"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 ....}]
- 如果我从构造函数中删除
runtimeManager
,那么我会看到调用了构造函数,但是 JBPM 永远不会调用方法createTaskBasedOnWorkItemParams
。
我做错了什么?或者是否有更好的方法来定义自定义业务管理员?
我使用 JBPM 6.3。
好的,我明白了。我从 CustomWorkItemHandlers.conf 中删除了我的工作项处理程序,并在开始该过程之前添加了以下行:
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new LeaHTWorkItemHandler(runtimeManager));