2015-02-21 2 views

ответ

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

+2

Я писал точно такой же ответ, в то время как уведомление о том, что новый ответ был опубликован всплывающим меню здесь :). Второй вариант - получить ProcessInstance от ksession, но обычно это не рекомендуется для постоянных процессов. – salaboy

1

в качестве альтернативы, вы можете сделать ksession.getProcessI nstance (ID). Если процесс завершен, он вернет null (поскольку завершенные экземпляры процесса больше не требуются для выполнения, обратите внимание, что информация о выполнении экземпляра процесса по-прежнему доступна в журнале аудита).

Смежные вопросы