Получить текущий идентификатор пользователя в jBPM

Я использую jBPM 6.1.0 и пытаюсь запустить службу отдыха из моего jBPM с помощью задачи службы REST.

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


person Pavan Andhukuri    schedule 22.01.2015    source источник


Ответы (2)


Не существует документированного метода для получения пользователя или их коллекции.

Однако, если вы знаете, что пользователь должен выполнить вызов REST API, вы можете передать ту же строку в качестве параметра (переменная процесса) при запуске нового экземпляра процесса, а затем использовать эту переменную в качестве параметра в вашей сервисной задаче REST.

Обозначение для передачи переменных в URL-адрес сервисной задачи REST:

http://server.company.com/rest/service?parameter=#{process_variable}
person ZombieBsAs    schedule 28.01.2015

Прямо сейчас единственный способ вызвать вызовы REST для определенного пользователя — это использовать его учетные данные в каждом вызове, встраивая их в URL-адрес, например:

http://user:[email protected]/business-central/rest

Вы не можете выдавать себя за другого пользователя, чтобы позвонить. Лучшее, что вы можете сделать, это использовать учетную запись "Администратор" для делегирования, пересылки и выпустить задачи.

person ZombieBsAs    schedule 22.01.2015
comment
Привет, я не имею в виду REST API jBPM. У меня есть служба REST, размещенная на другом сервере, которую необходимо вызывать из задачи службы jBPM REST. И мне нужно передать идентификатор вошедшего в систему пользователя в качестве параметра внешней службе REST. Спасибо. - person Pavan Andhukuri; 23.01.2015
comment
Извините, мой плохой... Одна вещь, которую вы можете сделать, это сохранить user_id как переменную процесса при создании процесса, а затем передать эту переменную процесса в параметр URL для задачи REST. Надеюсь, поможет. - person ZombieBsAs; 23.01.2015
comment
Но как мне заполнить значение переменной процесса user_id? - person Pavan Andhukuri; 24.01.2015
comment
В jBPM user_id — это просто строки. Если вы знаете user_id перед запуском процесса, вы можете передать его как переменную процесса. Фактически, вы должны знать это, чтобы создать экземпляр процесса в первую очередь. - person ZombieBsAs; 26.01.2015
comment
BPM Suite и jBPM — это две разные вещи. Экземпляры можно запускать вызовом REST, и вы можете передавать атрибуты этому вызову как переменные процесса. Поля актера/группы представляют собой простые строки, разделенные запятыми. Вам необходимо использовать учетную запись администратора (или другую) для создания экземпляра процесса, но вы можете назначать задачи строковому пользователю, который не входит в иерархию пользователей BPM Suite. - person ZombieBsAs; 26.01.2015
comment
Когда вы говорите, что вы вошли в систему, вы имеете в виду, что вы вошли в систему для чего? BPM Suite/Консоль? Ваше приложение? REST-клиент? - person ZombieBsAs; 27.01.2015
comment
Привет, учитывая пример URL-адреса, которым вы поделились в ответе user:password@server. адрес.com/business-central/rest. Я хочу, чтобы пользователь участвовал в действиях процесса, не передавая его в качестве входных данных. Является ли это возможным? - person Pavan Andhukuri; 27.01.2015
comment
Не существует документированного метода для получения пользователя или их коллекции. Однако, если вы знаете, что пользователь выполняет вызов REST API, вы можете передать ту же строку в качестве параметра (переменная процесса) при запуске нового экземпляра процесса, а затем использовать эту переменную в качестве параметра в своей задаче обслуживания REST. - person ZombieBsAs; 27.01.2015
comment
Да, продолжаем с тем же подходом. Спасибо. Опубликуйте свой ответ как ответ, чтобы я мог пометить эту тему как закрытую. - person Pavan Andhukuri; 28.01.2015