jBPM6尝试使用以前完成的流程实例ID

时间:2014-10-21 03:24:17

标签: java jboss jbpm

环境: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文件处理,提交任务和终止任务都在上面的文件中完成 请查看它以获得更清晰的信息。

0 个答案:

没有答案