环境:jBPM 6.0.1.Final, JBOSS EAP 6.2.0, JDK 7
我正在使用每个流程实例的RuntimeManager,如下所示
RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(runtimeEnvironment, identifier);
使用以下代码启动流程实例
public long startProcessWithInitialParametersAndFireBusinessRules(String processName, Map<String, Object> parameterMap) {
RuntimeEngine runtimeEngine = manager.getRuntimeEngine(ProcessInstanceIdContext.get());
KieSession ksession = runtimeEngine.getKieSession();
ProcessInstance processInstance = ksession.startProcess(processName, parameterMap);
long processInstanceId = processInstance.getId();
ksession.fireAllRules();
return processInstanceId;
}
此配置在我配置的那天运行良好。第二天,我尝试使用该应用程序创建我的流程的新实例。应用程序抛出异常并且进程未实例化。以下是它的堆栈跟踪。
(http-/127.0.0.1:8080-1) Error is handled by Leave approver :: org.jbpm.services.task.exception.PermissionDeniedException: User '[UserImpl:'tester']' was unable to execution operation 'Start' on task id 142 due to a no 'current status' match
at org.jbpm.services.task.internals.lifecycle.MVELLifeCycleManager.evalCommand(MVELLifeCycleManager.java:128) [jbpm-human-task-core-6.0.1.Final.jar:6.0.1.Final]
at org.jbpm.services.task.internals.lifecycle.MVELLifeCycleManager.taskOperation(MVELLifeCycleManager.java:318) [jbpm-human-task-core-6.0.1.Final.jar:6.0.1.Final]
at org.jbpm.services.task.identity.UserGroupLifeCycleManagerDecorator.taskOperation(UserGroupLifeCycleManagerDecorator.java:46) [jbpm-human-task-core-6.0.1.Final.jar:6.0.1.Final]
at or
使用相同的流程实例ID,昨天创建流程并完成。
今天尝试实例化新流程时,jBPM6
尝试使用相同的流程实例ID,因为它的状态Completed
不匹配,所以它抛出了Exception
。
为什么它尝试使用Completed
任务的流程实例ID或以前创建的流程实例ID以及如何更改其行为?
根据我的观察,由于新流程的创建,它正在发生 时间,它正在拾取旧的流程实例ID并返回该任务 记录。
请帮忙解决这个问题。我试过谷歌搜索,但找不到适当的文档。
更新
Click Here
要启动的Java文件处理,提交任务和终止任务都在上面的文件中完成 请查看它以获得更清晰的信息。