Started процесс Jbpm через StatefulKnowledgeSeesion (ksession)Как узнать, закончился ли процесс в JBPM
ksession.startProcess(processName);
Теперь я хочу знать, закончился ли процесс. Как получить статус конца? .. Пожалуйста, помогите
Started процесс 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.getProcessI nstance (ID). Если процесс завершен, он вернет null (поскольку завершенные экземпляры процесса больше не требуются для выполнения, обратите внимание, что информация о выполнении экземпляра процесса по-прежнему доступна в журнале аудита).
Я писал точно такой же ответ, в то время как уведомление о том, что новый ответ был опубликован всплывающим меню здесь :). Второй вариант - получить ProcessInstance от ksession, но обычно это не рекомендуется для постоянных процессов. – salaboy