Универсальный процесс согласования. Настройка шаблонов, процессов и сценария
Во многих процессах есть одинаковый блок согласования: например, заявку на закупку нужно сперва согласовать, а затем направить на оценку и закупку; договор перед подписанием также проходит согласование.
Ниже приведён пример настройки универсального процесса согласования, который можно переиспользовать для разных объектов: заявок, договоров и других мастер-данных.
Настройка шаблона истории согласований
- Создайте шаблон записи «История согласований».
- Создайте в нём следующие атрибуты:
| Атрибут | Настройка |
|---|---|
| Решение | Атрибут типа «Запись», связанный с шаблоном, где хранятся варианты решений для согласования. |
| Комментарий к решению | Атрибут типа «Текст». |
| Ответ на запрос | Атрибут типа «Текст». |
| Дата и время начала | Атрибут типа «Дата и время». |
| Дата и время завершения | Атрибут типа «Дата и время». |
| ID объекта согласования | Атрибут типа «Текст». |
| Название объекта согласования | Атрибут типа «Текст». |
| Объект согласования | Атрибут типа «Текст» с форматом отображения «HTML-текст», вычисляемый по формуле, приведённой ниже. |
| Инициатор | Атрибут типа «Аккаунт». |
| Согласующий | Атрибут типа «Аккаунт». |
| Статус | Атрибут типа «Запись», связанный с шаблоном, где хранятся статусы согласования. |
| Повторное согласование | Атрибут типа «Запись», связанный с шаблоном История согласований, с взаимной связью по новому атрибуту Изначальное согласование. |
| История согласования | Атрибут типа «Запись», связанный с шаблоном История согласований, с несколькими значениями и вычислением по формуле, приведённой ниже. |
| Атрибуты для мастер-данных | Атрибуты типа «Запись», связанные с шаблонами, где хранятся ваши мастер-данные (например, заявки или договоры), с взаимной связью по новому атрибуту История согласования с несколькими значениями. |
- Для атрибута «Объект согласования» задайте следующую формулу:
FORMAT("<a href='/#Resolver/{0}' target='_blank'>{1}</a>", LIST($idobektasoglasovaniya,$Nazvanieobektasoglasovaniya))
- Для атрибута «История согласования» задайте следующую формулу:
from a in db->Istoriyasoglasovanij where (a->idobektsoglasovaniya == $idobektsoglasovaniya) select a->id
-
В шаблоне «История согласований» настройте формы:
- форму для отображения по умолчанию;
- форму для задачи согласующему;
- форму для задачи инициатору.
Настройка процесса согласования
-
Настройте диаграмму процесса по образцу:

Пример диаграммы процесса согласования -
Добавьте сценарий на входе у первой задачи.
- В сценарии на входе добавьте действие «Изменить значения атрибутов» и настройте его:
| Атрибут | Значение |
|---|---|
| Статус | Используйте функцию OBJECT, чтобы найти необходимый статус. |
| Дата и время начала | Используйте функцию NOW. |
- Добавьте сценарий на выходе у первой задачи.
- В сценарии на выходе добавьте действие «Изменить значения атрибутов» и настройте его:
| Атрибут | Значение |
|---|---|
| Статус | Используйте функцию OBJECT, чтобы найти необходимый статус. |
| Дата и время завершения | Используйте функцию NOW. |
- Аналогично настройте изменение статуса строки истории согласования на других элементах процесса.
Настройка повторного согласования
-
Добавьте сценарий на входе в элемент вызова процесса и настройте его:

Сценарий на входе -
Добавьте действие «Создать запись» и настройте его:
| Поле | Значение |
|---|---|
| Целевой шаблон записи | Шаблон записи История согласований. |
| Ссылка на новую запись | Ссылка на целевой шаблон записи в текущем шаблоне: Повторное согласование. |
| Операция со значениями | «Добавить». |
- Добавьте действие «Изменить значения атрибутов».
- Настройте передачу данных из контекста изначального согласования в контекст новой строки истории согласования:
| Атрибут | Значение |
|---|---|
| Согласующий | Значение одноимённого атрибута из изначального согласования. |
| Инициатор | Значение одноимённого атрибута из изначального согласования. |
| ID объекта согласования | Значение одноимённого атрибута из изначального согласования. |
| Название объекта согласования | Значение одноимённого атрибута из изначального согласования. |
| Заявка | Значение одноимённого атрибута из изначального согласования. |
Если согласующих несколько
Добавьте действие «Цикл по объектам», укажите в нём атрибут или выражение для поиска согласующих и задайте переменную.
Затем в действии «Изменить значения атрибутов» вместо поля Согласующий используйте созданную переменную. Обращение к переменной начинается с $$.
- Настройте вызов процесса повторного согласования:
| Поле | Значение |
|---|---|
| Записи для запуска процесса | Атрибут Повторное согласование. |
| Шаблон вызываемого процесса | Процесс согласования, настроенный в разделе «Настройка процесса согласования». |
- Настройте логику назначения задач.
- Поместите на задачи соответствующие формы из связанного шаблона записи.
- Опубликуйте процесс.
Настройка основного процесса
- Откройте шаблон записи, где хранятся мастер-данные, например заявки на закупку.
- Поместите атрибут История согласования на все необходимые формы.
- Настройте отображение таблицы для атрибута История согласования.
- Откройте диаграмму процесса, связанного с заявками на закупку.
-
Добавьте вызов процесса:

Диаграмма основного процесса -
Добавьте сценарий на входе в элемент вызова процесса и настройте его:

Сценарий на входе -
Добавьте действие «Создать запись» и настройте его:
| Поле | Значение |
|---|---|
| Целевой шаблон записи | Шаблон записи История согласований. |
| Ссылка на новую запись | Ссылка на целевой шаблон записи в текущем шаблоне: История согласования. |
| Операция со значениями | «Добавить». |
- Добавьте действие «Изменить значения атрибутов».
- Настройте передачу данных из контекста заявки в контекст строки истории согласования:
| Атрибут | Значение |
|---|---|
| Согласующий | Значение необходимого атрибута из заявки. |
| Инициатор | Значение необходимого атрибута из заявки. |
| ID объекта согласования | ID заявки, вычисленный с помощью функции FORMAT. |
| Название объекта согласования | Название заявки. |
- Настройте вызов процесса согласования:
| Поле | Значение |
|---|---|
| Записи для запуска процесса | Атрибут История согласования. |
| Шаблон вызываемого процесса | Процесс согласования, настроенный в разделе «Настройка процесса согласования». |
| Выполнение экземпляров процесса | Параллельное или последовательное выполнение. |
| Условие запуска процесса | EMPTY($Status), чтобы согласования запускались только по новым строкам истории согласования. |
-
Настройте логику последующей развилки.
Например, если в истории согласования нет ни одного отрицательного решения, значит заявка согласована. Можно также настроить отдельный атрибут и передавать в него значение при завершении каждого согласования.
-
Опубликуйте процесс и протестируйте.
Настройки основного процесса можно повторить для всех шаблонов с мастер-данными, где требуется согласование.