通过StatefulKnowledgeSeesion(ksession)
开始了一个Jbpm进程 ksession.startProcess(processName);
现在我想知道,这个过程是否结束了。 如何获得最终状态?..请帮助
答案 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() + "]");
}
答案 1 :(得分:1)
或者,您可以执行ksession.getProcessInstance(id)。如果该过程完成,那将返回 null (因为执行时不再需要已完成的流程实例,请注意,当然,审计日志中仍然可以获得有关流程实例执行的信息)。