如何知道进程是否以JBPM结束

时间:2015-02-21 23:59:00

标签: jbpm

通过StatefulKnowledgeSeesion(ksession)

开始了一个Jbpm进程
    ksession.startProcess(processName);

现在我想知道,这个过程是否结束了。 如何获得最终状态?..请帮助

2 个答案:

答案 0 :(得分:3)

如果您希望在流程结束时收到通知,您可以注册自己的侦听器(扩展 org.drools.core.event.DefaultProcessEventListener 或实现 org.kie.api。 event.process.ProcessEventListener 接口),并实现" afterProcessCompleted"方法:

@Override
public void afterProcessCompleted(ProcessCompletedEvent event) {

    org.kie.api.runtime.process.ProcessInstance processInstance = event
            .getProcessInstance();
    log.info("Process completed: processId=["
            + processInstance.getProcessId() + "]; processInstanceId=["
            + processInstance.getId() + "]");
}

检查Event Listeners from documentation

答案 1 :(得分:1)

或者,您可以执行ksession.getProcessInstance(id)。如果该过程完成,那将返回 null (因为执行时不再需要已完成的流程实例,请注意,当然,审计日志中仍然可以获得有关流程实例执行的信息)。