Расширение процесса заявки на закупку оборудования: использования динамической роли DMN в бизнес-процессе

Примечание

Данная статья является продолжением работы с бизнес-процессом Заявка на закупку оборудования.

Если вы продолжаете по статье Процесс заявки на закупку оборудования. Добавление справочника. Журнал и форма не по умолчанию, удалите Script task «Сохранение комментария».

Используйте пользователей из набора демо-данных или добавьте их, как описано в статье Создание пользователей для Citeck Community.

Используйте группы из набора демо-данных или добавьте их, как описано в Создание группы.

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

Для этого необходимо:

  1. Создать таблицу принятия решений (DMN).

  2. Добавить в тип данных динамическую роль DMN для согласующего.

Таблица DMN

Примечание

Для создания модели в локальном рабочем пространстве перейдите в раздел Администрирование → Модели DMN и нажмите + — Создать DMN модель.

Для таблицы необходимо определить критерии, по которым будет приниматься решение. Основные критерии — наименование оборудования и согласующий.

Перейдите в рабочее пространство администратора. В разделе Управление процессами выберите пункт Модели DMN:

../_images/017.png

Нажмите «+ — Создать DMN модель»:

../_images/026.png

../_images/034.png

Заполните поля:

1

Идентификатор

approve-equipment

2

Имя

Согласование заявки на оборудование

Нажмите «Сохранить».

Для перехода к редактору разверните раздел «По умолчанию», наведите курсор на созданную модель и нажмите кнопку редактирования:

../_images/043.png

Откроется редактор решения:

../_images/052.png

В правой части модели необходимо определить входные данные для вычисления роли на основе DMN. По ключу модели будут доступны вычисленные данные в контексте DMN.

../_images/063.png

Задайте сопоставление ключа и значения:

Ключ

name

Входной элемент для решения. Указывается далее в поле Expression.

Значение

name

Атрибут типа данных — условие, по которому вычисляется роль.

Примечание

Ключ-значений (условий) может быть несколько. Для каждого условия будет вычисляться соответствующая роль.

Для ввода данных в таблицу нажмите кнопку редактирования:

../_images/073.png

../_images/083.png

Двойным кликом по наименованию решения (1) перейдите в режим редактирования и задайте имя Decision_furniture.

Hit policy (2)политика выбора. Установите значение Unique (по умолчанию).

(3) — входные элементы, (4) — выходные элементы. Совокупность входных и выходного элементов формирует решение.

Входные элементы

Дважды кликните поле под When и введите наименование входного элемента — «Наименование»:

../_images/091.png

В свойствах укажите:

Поле

Значение

Пояснение

Expression

name

Ключ из модели

Type

string

Соответствует типу атрибута name из типа данных

Выходной элемент

Дважды кликните поле под Then и введите наименование выходного элемента — «Согласующий»:

../_images/10.png

В свойствах укажите:

Поле

Значение

Пояснение

Type

string

Решение DMN вернёт строку (String) с именами реципиентов

Правила

Добавьте три правила, сопоставляющие наименование оборудования с соответствующим согласующим.

Примечание

Системное имя пользователя можно найти в Оргструктуре, открыв профиль пользователя:

../_images/org_1.png

Группы:

../_images/org_2.png

../_images/org_3.png

Примечание

  • Если указывается группа, перед её именем необходимо добавить префикс GROUP_.

  • Значения типа string (поля Наименование и Согласующий) обязательно заключаются в кавычки.

  • Несколько значений указываются через запятую без пробелов внутри одних кавычек.

Добавьте первое правило: для наименования «Ноутбук» — согласующий «alexandra.filchenko» и группа «GROUP_company_chief_accountant»:

../_images/111.png

Нажмите кнопку + внизу таблицы для добавления следующего правила.

Добавьте второе правило: для наименования «Компьютер» — согласующий «elvira.danilenko»:

../_images/12.png

Итоговая таблица правил:

Наименование

Согласующий


"Ноутбук"

"alexandra.filchenko,GROUP_company_accountant"

"Компьютер"

"elvira.danilenko"

"Сервер"

"GROUP_production_director"

Сохраните и опубликуйте таблицу принятия решений:

../_images/13.png

Тип данных

Во вкладке «Роли» созданного ранее типа данных назначьте согласующему динамическую роль:

../_images/16.png

В форме выберите тип DMN и решение — Decision_furniture:

../_images/17.png

Нажмите «Подтвердить».

Проверка процесса

Перейдите в журнал, создайте новую заявку, заполните карточку и нажмите «Сохранить»:

../_images/28.png

На статусе «На согласовании» исполнителями назначены Александра Фильченко (аккаунт alexandra.filchenko) и Главный бухгалтер (группа company_accountant):

../_images/29.png

Проверка прав через консоль браузера

Назначенную роль можно проверить через консоль браузера командой:

await Records.get('emodel/type-id@local-id').load('_roles.assigneesOf.approver[]?str', true)

где:

  • approver — id роли из типа данных;

  • emodel/type-id@local-id — идентификатор записи из строки браузера:

../_images/31.png

Система выдаст список пользователей, которым назначена задача согласования:

../_images/30.png