我如何获得我所属的组的任务(jBPM 6.2)
How can I get tasks of a group which I belong to (jBPM 6.2)
我正在尝试使用 jBPM 6.2 创建 BPM。该过程如下所示:
用户创建了一个请求。他的经理将评估是接受还是拒绝。如果他的经理接受,IT 部门的人将执行该请求
但是我无法从我所属的组中获取任务。在我的 BPM 中,人工任务被分配给 IT 组。我尝试使用帐户:salaboy, jack(在 IT 部门),但我没有看到与这些帐户关联的任何任务
下面是我的过程截图,可以看到组ID是IT
我没有更改服务器的任何配置。角色看起来像:
admin=admin,analyst,kiemgmt
krisv=admin,analyst
john=analyst,Accounting,PM
mary=analyst,HR
sales-rep=analyst,sales
jack=analyst,IT
katy=analyst,HR
salaboy=admin,analyst,IT,HR,Accounting
要测试的代码是:
public static void main(String[] args) {
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase("kbase");
RuntimeManager manager = createRuntimeManager(kbase);
RuntimeEngine engine = manager.getRuntimeEngine(null);
KieSession ksession = engine.getKieSession();
TaskService taskService = engine.getTaskService();
ksession.startProcess("com.sample.bpmn.hello");
// let john execute Task 1
List<TaskSummary> list = taskService.getTasksAssignedAsPotentialOwner("john", "en-UK");
TaskSummary task = list.get(0);
System.out.println("John is executing task " + task.getName());
taskService.start(task.getId(), "john");
taskService.complete(task.getId(), "john", null);
// let mary execute Task 2
list = taskService.getTasksAssignedAsPotentialOwner("mary", "en-UK");
task = list.get(0);
System.out.println("Mary is executing task " + task.getName());
taskService.start(task.getId(), "mary");
Map<String, Object> params = new HashMap<>();
params.put("output", true);
taskService.complete(task.getId(), "mary", params);
// let salaboy execute Task 3
list = taskService.getTasksAssignedAsPotentialOwner("salaboy", "en-UK");
task = list.get(0);
System.out.println("salaboy is executing task " + task.getName());
taskService.start(task.getId(), "salaboy");
taskService.complete(task.getId(), "salaboy", null);
manager.disposeRuntimeEngine(engine);
System.exit(0);
}
private static RuntimeManager createRuntimeManager(KieBase kbase) {
JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");
RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get()
.newDefaultBuilder().entityManagerFactory(emf)
.knowledgeBase(kbase);
return RuntimeManagerFactory.Factory.get()
.newSingletonRuntimeManager(builder.get(), "com.sample:example:1.0");
}
如果我将 Implement 任务分配给 salaboy,它会非常有效
如果您有任何建议,请告诉我
谢谢
我们应该使用Workbench(网页版)而不是Eclipse。
我正在尝试使用 jBPM 6.2 创建 BPM。该过程如下所示:
用户创建了一个请求。他的经理将评估是接受还是拒绝。如果他的经理接受,IT 部门的人将执行该请求
但是我无法从我所属的组中获取任务。在我的 BPM 中,人工任务被分配给 IT 组。我尝试使用帐户:salaboy, jack(在 IT 部门),但我没有看到与这些帐户关联的任何任务
下面是我的过程截图,可以看到组ID是IT
我没有更改服务器的任何配置。角色看起来像:
admin=admin,analyst,kiemgmt
krisv=admin,analyst
john=analyst,Accounting,PM
mary=analyst,HR
sales-rep=analyst,sales
jack=analyst,IT
katy=analyst,HR
salaboy=admin,analyst,IT,HR,Accounting
要测试的代码是:
public static void main(String[] args) {
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase("kbase");
RuntimeManager manager = createRuntimeManager(kbase);
RuntimeEngine engine = manager.getRuntimeEngine(null);
KieSession ksession = engine.getKieSession();
TaskService taskService = engine.getTaskService();
ksession.startProcess("com.sample.bpmn.hello");
// let john execute Task 1
List<TaskSummary> list = taskService.getTasksAssignedAsPotentialOwner("john", "en-UK");
TaskSummary task = list.get(0);
System.out.println("John is executing task " + task.getName());
taskService.start(task.getId(), "john");
taskService.complete(task.getId(), "john", null);
// let mary execute Task 2
list = taskService.getTasksAssignedAsPotentialOwner("mary", "en-UK");
task = list.get(0);
System.out.println("Mary is executing task " + task.getName());
taskService.start(task.getId(), "mary");
Map<String, Object> params = new HashMap<>();
params.put("output", true);
taskService.complete(task.getId(), "mary", params);
// let salaboy execute Task 3
list = taskService.getTasksAssignedAsPotentialOwner("salaboy", "en-UK");
task = list.get(0);
System.out.println("salaboy is executing task " + task.getName());
taskService.start(task.getId(), "salaboy");
taskService.complete(task.getId(), "salaboy", null);
manager.disposeRuntimeEngine(engine);
System.exit(0);
}
private static RuntimeManager createRuntimeManager(KieBase kbase) {
JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");
RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get()
.newDefaultBuilder().entityManagerFactory(emf)
.knowledgeBase(kbase);
return RuntimeManagerFactory.Factory.get()
.newSingletonRuntimeManager(builder.get(), "com.sample:example:1.0");
}
如果我将 Implement 任务分配给 salaboy,它会非常有效
如果您有任何建议,请告诉我
谢谢
我们应该使用Workbench(网页版)而不是Eclipse。