Пример 5. Ответственные за подписание договоров¶
В данном примере в текущий процесс добавляются новые этапы процесса - подготовка к подписанию и подписание.
Ответственные за подписание, которые выполняют подготовку, настраиваются в рамках подразделения для каждого подписанта.
Когда процесс доходит до этапа подготовки к подписанию, на всех участников приходит одно задание. Если в настройках список участников поменялся, должны поменяться и исполнители всех текущих заданий. Доступ к карточке получают ответственные за подписание получают на момент выполнения задания, а завершивший задание сотрудник - сохраняет доступ к карточке и после завершения задания.
Подписант определяется по новому полю в карточке договора, а ответственные за подписание уже определяются по настройкам подразделения, которое указано в карточке договора.
Данный пример состоит из:
-
Доработки типа карточки “Подразделение”.
-
Доработки типа карточки “Договор”.
-
Доработка шаблона бизнес-процесса “ACL Example” из примера 3.
-
Генератор умных ролей “Ответственные за подписание договоров”.
В данном примере также используются карточки правил расчёта ACL “Роли заданий” и “Исполнители заданий”, которые обеспечивают доступ к карточке для исполнителей этапов подготовка к подписанию и подписание, а также сотрудникам, фактически завершившим задания.
Доработка типа карточки “Подразделени唶
В карточку подразделения добавлена таблица с настройками подписантов по договорам.
Данная таблица содержит подписанта и список ролей, которые являются ответственным за подписание. Подписант является обязательным для заполнения.
Для мапинга подразделения и подписанта к идентификатору владельца умной роли используется идентификатор строки таблицы “Подписанты по договорам”.
Доработки типа карточки “Договор”¶
В карточку договора во вкладку “Настройки согласования” добавлено поле “Подписант”.
В данное поле указывается сотрудник, который будет являться подписантом данного договора. В рамках процесса согласования данному сотруднику будет отправлено задание на подписание, если он входит в число подписантов подразделения, указанного в поле “Подразделение” карточки.
Доработка шаблона бизнес-процессов “ACL Example”¶
В шаблон бизнес-процесса “ACL Example”, добавленный в рамках примера 3, добавлены новые узлы и действия.
Данный процесс содержит следующие значимые для примера узлы и действия:
-
В узел с действием смены состояния после успешного согласования добавлен сценарий, который рассчитывает роль ответственных за подписание. Система берет подписанта, указанного в договоре и ищёт ответственных за подписание в настройках карточки подразделения, указаной в договоре. Если для подписанта по указанному подразделению не удаётся определить ответственных за подписание, система повторяет попытку поиска по родительскому подразделению, пока не найдёт. Если для всех родительских подразделений по цепочке для подписанта не удалось найти ответственных за подписание, процесс выдаст ошибку.
-
Узел “Подготовка к подписанию” с действием “Настраиваемое задание”. В качестве исполнителя задания берется роль, определённая в предыдущем узле в действии расчёта ответственных за подписание.
-
Узлы с действием смены состояния при завершении подготовки к подписанию.
-
Узел “Подписание” с действием “Подписание”. В качестве исполнителя задания берется сотрудник, указаный в поле “Подписант” в карточке договора.
-
Узлы смены состояния после успешного подписания и отказа в подписании.
Генератор умных ролей “Ответственные за подписание договоро┶
Данный генератор формирует набор умных ролей по подразделением в разрезе подписантов. Для каждого подразделения и каждого подписанта из таблицы “Подписанты по договорам” генератор формирует умную роль, которая содержит ответственных за подписание для указанного подписанта.
Идентификатором владельца умной роли является идентификатор строки таблицы “Подписанты по договорам”.
Данная карточка имеет следующие запросы и триггеры:
-
Запрос на получение списка ролей, который возвращает по идентификатору владельца умной роли всех ответственных за подписание. По идентификатору владельца умной роли определяется подразделение и строка из таблицы “Подписанты по договорам”, по которой уже определяется набор ответственных за подписание. Запрос также работает в режиме множественной выборки.
-
Запрос на получение всех владельцев умной роли, который возвращает все идентификаторы владельцев умных ролей и данные, необходимые для генерации умных ролей. В качестве идентификатора владельца умной роли используется идентификатор строки таблицы “Подписанты по договорам”. В качестве имени владельца умной роли используется имя подразделения с добавленным к нему имени подписанта. В качестве календаря используется календарь подразделения. В качетсве временной зоны используется временная зона подразделения.
-
Запрос на получение данных владельца умной роли, который возвращает данные, необходимые для генерации умной роли по идентификатору владельца умной роли.
-
Триггеры, которые запускают обновление умных ролей в следующих ситуациях:
-
При изменении подписанта в таблице “Подписанты по договорам” в картчоке подразделения - перерасчитываются умные роли для текущего подразделения.
-
При добавлении или удалении строки с настройками подписантов по договорам в карточке подразделения - перерасчитываются умные роли для текущего подразделения.
-
При добавлении или удалении строки с ответственным за подписание в настройках подписантов по договорам в карточке подразделения - перерасчитываются умные роли для текущего подразделения.
-