среда, 30 декабря 2015 г.

Пользовательские задачи Oracle BPM 12c: роли и подразделения пользователей

Участником задачи могут быть:
  • пользователь (user);
  • группа пользователей (group);
  • роль пользователей (app.role), в контексте Oracle BPM.
Взаимосвязь между участниками указана ниже:

Орг.единицы (Organization Unit) определяют структуру организации, например:

Важно отметить, что орг.единицы логически связанны только с ролями пользователей (т.е. не для группы пользователей и тем более не для пользователя).

Рассмотрим на примере как работает механизм орг.единиц:

В соответствии со схемой выше, в организации есть 3 бухгалтера по одному в каждом отделении и аналогично 3 инженера в каждом отделении.
Создадим две роли "Бухгалтер" и "Инженер" и три орг.подразделения и добавим в них соответствующих сотрудников. Таким образом получается:
Роль
Пользователь
Организационное подразделение
Бухгалтер
Иванова
Западносибирское отд.
Сидирова
Уральское отделение
Кузнецова
Дальневосточное отд.
Инженер
Петрова
Западносибирское отд.
Алексеева
Уральское отделение
Борисова
Дальневосточное отд.

Создадим простейший BPMN-процесс с одной задачей:

Но данная задача должна назначаться на роль "Бухгалтер" уральского подразделения, для этого добавляем перед назначением задачи добавим script-активность, в которой укажем необходимое орг.подразделение (Process / Predefined Variables / Organization Unit):
Если бы мы не указали орг.подразделение, то задача назначилась на всех участников роли "Бухгалтер", т.е. доступ был бы у 3-х сотредников. 
Так как мы указали орг.подразделение, то задача назначится на того сотрудника роли "Бухгалтер", который входит в указанное подразделение, т.е. Сидорову.

Данная функциональность позволяет сильно сократить количество ролей (без неё потребовалось бы 6 ролей вместо 2).