2015-03-03 3 views
2

Я работаю над процессом, который требует отправки электронной почты всем пользователям, выполнившим задачу во время процесса.Как получить информацию о пользователе после завершения задачи пользователя

Мой первоначальный план состоял в том, чтобы добавить код в метод afterNodeLeft моей реализации ProcessEventListener; однако, кажется, что интерфейс ProcessNodeLeftEvent не имеет метода поиска исполняющего пользователя.

После удара в тупик я решил посмотреть таблицы базы данных на то, что было записано для истории. Похоже, что таблицы NODEINSTANCELOG не отслеживают пользователя.

Как последняя попытка канавы, я решил, что могу добавить выходной параметр для каждой пользовательской задачи, чтобы я мог добавить идентификатор пользователя в карту результатов. Кажется, это работает, но он чувствует себя очень kludgey.

Есть ли какая-либо служба аудита, которую я мог бы использовать для поиска этой информации, или я вынужден обновлять каждую пользовательскую задачу, чтобы отслеживать, какой пользователь выполнил каждую задачу.

ответ

4

Задача человека имеет выходной параметр «ActorId», который можно сопоставить с переменной процесса для использования. Вы также можете получить доступ к нему (в на-выходе скриптов или слушателей), когда у вас есть доступ к nodeInstance с помощью:.

((HumanTaskNodeInstance) nodeInstance) .getWorkItem() GetResult ("ActorId")

+0

спасибо за помощь. Я смог получить NodeInstance из параметра ProcessNodeLeftEvent метода ProcessEventListener.beforeNodeLeft. Я оригинал размещал код внутри afterNodeLeft, но я обнаружил, что afterProcessCompleted выполнялся до выполнения моего последнего afterNodeLeft. – Mike

2

Да, вы можете использовать механизм аудита задачи, чтобы подключить уведомления по электронной почте и полностью отделить их от ваших процессов. Найдите интерфейс TaskEventListener. HTH

+0

Я использую JBPM 6.1.0.Final. У моего компилятора нет интерфейса TaskEventListener, и он не отображается в [JBPM JavaDocs] (http://docs.jboss.org/jbpm/v6.1/javadocs/). Удалился или переименован этот интерфейс? – Mike

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