2015-02-10 4 views
0

Я реализовал пользовательский обработчик workitem, который я хочу выполнить только внешним вызовом REST. Поэтому предметы executeWorkItem() метод НЕ звонит manager.completeWorkItem(workItem.getId(), results); в конце, что отлично. Я также назначил событие сигнала для этого рабочего элемента в своем процессе, который также вызывается внешним вызовом REST. Обе вещи работают так, как ожидалось, но я не понимаю, что каждый раз, когда я сигнализирую рабочий элемент, он также автоматически завершает рабочий элемент, что приводит к проблеме непрерывности процесса с его регулярным путем и сигнальным. Но причиной сигнала является прерывание процесса, чтобы следовать ТОЛЬКО сигнальному пути пути.Событие сигнала jBPM всегда заполняет рабочий элемент

Образ процесса к этому можно найти здесь http://cl.ly/image/0F3L3E2w2l0j. В этом примере я сигнализировал «Fail Transfer», но остальная часть также выполнялась, даже ничего не завершило работу.

Я использую jBPM 6.1 Final.

Заранее благодарим за любую помощь.

+0

Свойство сигналов "CancelActivity" также равно true. Разве этот флаг не говорит двигателю об отмене активности, если сигнал вызван? – Florian

ответ

0

Nevermind, я нашел причину такого поведения. Обработчик рабочий элемент реализован

public void abortWorkItem(WorkItem workItem, WorkItemManager manager) { 
     manager.abortWorkItem(workItem.getId()); 
    } 

После удаления manager.abortWorkItem(workItem.getId()); процесс ведет себя, как и ожидалось.