Назначение задачи на группу исполнителей, выбранную на форме. Пример настройки
Содержание
Введение
При проектировании бизнес-процессов можно назначить исполнителями пользовательской задачи аккаунты и (или) роли:
- выбрать определённые аккаунты и роли;
- указать атрибут типа «Аккаунт» или «Роль», содержащий ID исполнителей;
- вычислить ID аккаунтов или ролей при помощи формулы или выражения на N3.
Однако на этапе проектирования бизнес-процесса нет возможности назначить исполнителем задачи конкретную группу без использования формул или языка N3.
Кроме того, в некоторых случаях необходимо дать возможность бизнес-пользователю выбрать группу, на которую будут назначены задачи, не предоставляя ему доступ к ролевой модели приложения.
В этой статье представлен пример настройки приложения для назначения группы в качестве исполнителя задачи с помощью селектора группы на форме.
Прикладная задача
- Имеется бизнес-процесс «Оформление заявок», связанный с шаблоном записи «Заявка».
- Менеджер должен назначить группу исполнителей заявки на форме.
- Участники группы исполнителей получат задачу «Обработать заявку».
Настройка выбора группы исполнителей с помощью селектора на форме
Алгоритм выбора группы исполнителей для задачи с помощью формы
Так как в Comindware Business Application Platform не предусмотрен атрибут типа «Группа», по значению которого можно было бы назначить исполнителей пользовательской задачи, мы настроим приложение следующим образом:
- Создадим вспомогательный шаблон «Справочник групп» и скопируем в него названия имеющихся групп.
- Создадим атрибут «Группа исполнителей» типа «Запись», ссылающийся на Справочник групп.
- Создадим вычисляемый атрибут «Исполнители задачи» и укажем его в качестве исполнителей в свойствах задачи.
- Когда пользователь выберет на форме Группу исполнителей из Справочника групп, значение атрибута «Исполнители задачи» будет заполнено ID аккаунтов исполнителей, входящих в группу с таким же названием, как у выбранной Группы исполнителей.
- Создайте группы на странице «Администрирование» — «Администрирование аккаунтов» — «Группы» и добавьте в них аккаунты.
- Создайте шаблон записи «Справочник групп».
- Создайте атрибут «Название группы» типа «Текст» и установите у него флажок «Использовать как заголовок записей».
- Создайте несколько записей и в поле «Название группы» введите названия групп, указанные на странице «Группы», с точностью до прописных и строчных букв.
- В шаблоне записи «Заявка» создайте следующие атрибуты:
Название Тип данных Свойства Группа исполнителей Запись Связанный шаблон: Справочник групп Исполнители задачи Аккаунт Хранить несколько значений: флажок установлен
Вычислять автоматически: флажок установлен
Вычисляемое выражение: N3
- В поле «Вычисляемое выражение» атрибута «Исполнители задачи» вставьте следующее выражение на N3:
# Импортируем функции для работы с записями, аккаунтами и базой данных
@prefix object: <http://comindware.com/ontology/object#>.
@prefix account: <http://comindware.com/ontology/account#>.
@prefix cmw: <http://comindware.com/logics#>.
{
# Находим атрибут Nazvaniegruppy (Название группы) в шаблоне Spravochnikgrupp (Справочник групп)
# и помещаем его в переменную nazvaniegruppyAttribute
("Spravochnikgrupp" "Nazvaniegruppy") object:findProperty ?nazvaniegruppyAttribute.
# Находим атрибут Zayavka (Заявка) в шаблоне Gruppaispolniteley (Группа исполнителей)
# и помещаем его в переменную gruppaispolniteleyAttribute
("Zayavka" "Gruppaispolniteley") object:findProperty ?gruppaispolniteleyAttribute.
# Помещаем значение атрибута Gruppaispolniteley, то есть группу,
# выбранную в текущей заявке item,
# в переменную gruppaispolniteleyValue,
?item ?gruppaispolniteleyAttribute ?gruppaispolniteleyValue.
# Находим название выбранной группы шаблоне Spravochnikgrupp,
# то есть значение атрибута Nazvaniegruppy,
# и помещаем его в переменную nazvaniegruppy
?gruppaispolniteleyValue ?nazvaniegruppyAttribute ?nazvaniegruppy.
# Находим группу по названию из переменной nazvaniegruppy
# и помещаем группу в переменную gruppaispolniteley
?gruppaispolniteley account:groupName ?nazvaniegruppy.
# Находим все аккаунты в группе из переменной gruppaispolniteley
# и помещаем их в переменную value,
# то есть заполняем значение атрибута «Исполнители задачи»
?gruppaispolniteley account:groupUsers ?value.
} - Создайте процесс «Оформление заявок» и добавьте на диаграмму пользовательскую задачу «Обработать заявку».
- На стартовую форму процесса добавьте атрибуты «Группа исполнителей» и «Исполнители задачи» шаблона записи «Заявка».
- В свойствах пользовательской задачи «Обработать заявку» выберите в поле «Исполнители» атрибут «Исполнители задачи».
- Опубликуйте диаграмму процесса «Оформление заявок».
Диаграмма процесса «Оформление заявок»
Тестирование
- Создайте экземпляр процесса «Оформление заявок».
- На стартовой форме выберите группу из раскрывающегося списка «Группа исполнителей».
- В поле «Исполнители задачи» отобразятся аккаунты, которые входят в выбранную группу.
- Нажмите кнопку «Создать».
- Задача «Обработать заявку» отобразится только у аккаунтов, которые входят в выбранную группу. У других аккаунтов задача отображаться не будет.
Связанные статьи
Группы. Создание, настройка, выбор участников, синхронизация с AD, удаление