如何知道流程是否在 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() + "]");
}

勾选Event Listeners from documentation

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