如何知道流程是否在 JBPM 中结束
How to know whether a process ended in JBPM
通过 StatefulKnowledgeSeesion(ksession) 启动了一个 Jbpm 进程
ksession.startProcess(processName);
现在我想知道进程是否结束了。
如何获取结束状态?..请帮助
如果您想在流程结束时收到通知,您可以注册自己的侦听器(扩展 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() + "]");
}
或者,您可以执行 ksession.getProcessInstance(id)。如果流程完成,那将 return null (因为不再需要执行已完成的流程实例,请注意有关流程实例执行的信息仍然可用当然是审计日志)。
通过 StatefulKnowledgeSeesion(ksession) 启动了一个 Jbpm 进程
ksession.startProcess(processName);
现在我想知道进程是否结束了。 如何获取结束状态?..请帮助
如果您想在流程结束时收到通知,您可以注册自己的侦听器(扩展 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() + "]");
}
或者,您可以执行 ksession.getProcessInstance(id)。如果流程完成,那将 return null (因为不再需要执行已完成的流程实例,请注意有关流程实例执行的信息仍然可用当然是审计日志)。