Как получить пользователя, инициировавшего процесс в IBM BPM 8.5?

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


person SikanderAhmed    schedule 01.06.2014    source источник


Ответы (5)


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

  1. Добавьте приватную переменную и назначьте ей tw.system.user_loginName в момент запуска POST. вы можете получить доступ к этой переменной для пользователя, который инициировал процесс. (Она будет нулевой или неопределенной для сценария, если задача инициирована каким-либо REST API или UCA.)

  2. Разместите группу отслеживания после стартового события. Добавьте к нему входную переменную как имя пользователя, присвойте ей значение, такое же, как tw.system.user_loginName. Таким образом, всякий раз, когда процесс запускается, запись будет вставлена ​​в таблицу БД. Вы можете получить это значение из этого представления в PerformanceDB.

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

person Jyoti Yadav    schedule 27.08.2015

Я предлагаю вам посмотреть метод getStarter() API ProcessInstanceData.

Официальная документация по API

Эта ссылка на IBM Developerworks также должна вам помочь: Запуск процесса

К сожалению, не существует готового способа сделать это — в экземпляре процесса ничего не записывается, что указывает на то, кто запустил процесс. Я предполагаю, что это связано с тем, что существует много способов запустить экземпляр процесса — из портала, через событие сообщения, из вызова API и т. д.

Возможно, лучший способ решить эту проблему — добавить обязательный входной параметр в BPD и указать, кто запустил процесс при его запуске. К сожалению, вы не можете предоставить какие-либо входные данные с нового портала OOTB, но вы можете легко создать свой собственный модуль запуска.

person artild    schedule 02.06.2014
comment
Спасибо Артильд!! Я добился этого, сохранив параметр в своем бизнес-объекте и задав имя пользователя, который когда-либо запускал процесс. Это лучший способ сделать это, я думаю. - person SikanderAhmed; 02.06.2014
comment
@SikanderAhmed, вам, вероятно, следует отметить это как ответ, если это решение, которое вы использовали. - person Cleanshooter; 30.09.2015

Если вы хотите направить первую незавершенную задачу пользователю, запустившему процесс, самый простой подход — просто поместить начальную точку в дорожку, а в действии выбрать маршрутизацию к «Последнему пользователю в дорожке». Это позаботится о прецеденте для вас, не требуя от вас ведения бухгалтерского учета для отслеживания пользователя.

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

person Drux    schedule 20.02.2015

Определите переменную как строковый тип и с помощью задачи сценария определите пользователя для входа в систему, который использует эту задачу, и назначьте ее определенной переменной, чтобы сохранить вас во всем процессе в качестве инициатора задачи.

person Ahmed Hatata    schedule 21.11.2014

Вы можете использовать эту строку кода для достижения того же самого:

tw.system.user_loginName

person Kashyap7    schedule 20.02.2015