Задача [BPM22, часть 1]: Конструктор процессов

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

Связанные задачи: BPM22, часть 2.

Решение.

Общим решением является расширение функциональности раздела конфигуратора "Настройки процессов": теперь в нем настраивается не только заранее определенный список процессов, но и добавляется возможность создания новых процессов.

В итоге, задача разбивается на несколько подзадач:

Приведем определения основных терминов, используемых в данной задаче:

Рисунок 316. Схема

Схема

Общие возможности конструктора процессов
Основной конструктор

Конструктор процессов реализуется на основе текущего раздела конфигуратора "Документооборот" → "Настройки потоков работ" → "Настройки процессов". В нем по прежнему доступно изменение текущих (на момент реализации задачи) настроек девяти процессов, а также добавляется возможность создания / редактирования новых на основе следующих трех шаблонов:

  • работа

  • согласование

  • ознакомление

либо на основе уже существующего процесса.

"Работа" - это шаблон неальтернативного процесса, который всегда завершается успешно. Работа характеризуется наличием прогресса выполнения, формы завершения и привилегий (т.е. не каждый пользователь может создать работу ответственному). Завершить работу может только его автор либо пользователь, обладающий такими привилегиями. Процессы, создаваемые по данному шаблону, будут обладать следующими параметрами:

Параметры
ответственный
длительность
приоритет
нагрузка
период повторения
форма завершения

"Согласование" - это шаблон альтернативного процесса, который может завершиться как успешно, так и неуспешно.

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

Параметры
ответственный
длительность
приоритет
нагрузка
возврат

"Ознакомление" - это шаблон неальтернативного процесса. В отличие от работы, характеризуется отсутствием прогресса и наличием только одного варианта завершения (но также всегда успешно). Завершить ознакомление может сам ответственный. Процессы, создаваемые по данному шаблону, будут обладать следующими параметрами:

Параметры
ответственный
длительность
приоритет
нагрузка

Ввиду возможности наличия в системе более одного настроенного процесса по каждому из шаблонов вводится процесс по умолчанию для:

  • работы

  • согласования

  • утверждения

  • ознакомления

Настройка процесса по шаблону осуществляется следующим образом:

  • новый процесс на основе шаблона содержит соответствующие настройки по умолчанию;

  • новый процесс на основе существующего содержит все свойства, заданные в исходном процессе.

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

Конструируемые процессы можно удалять. Удаленный процесс продолжает использоваться в настроенных местах Системы, но более недоступен для выбора при последующей настройке.

Перенос глобальных настроек процессов в локальные

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

Свойства процессов и их блокирование от изменений

В целом, преднастройка процессов по шаблону заключается в следующем.

  • Код процесса вводится единожды при создании, является уникальным и нередактируемым при последующем редактировании.

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

  • Настройка отображения позволяет указать, в каких местах Системы использовать данный процесс.

  • Свойства процессов можно блокировать от изменений - в этом случае при создании подэтапа маршрута их будет нельзя изменить.

    Пример 1.

    Создан процесс "работа" для диалога создания проекта документа, в котором свойство "Приоритет" заблокировано от изменений пользователем. При вызове данного диалогового окна поле с приоритетом будет нередактируемым.

  • Свойства процессов, заблокированные от изменений, имеют больший приоритет перед их настройкой в месте использования. Исключением является особенность поведения Системы, описанная далее.

    Пример 2.

    Создан процесс "работа" для работы по форме, в котором свойства "Период повторения" и "Форма завершения" заблокированы от изменений. В настройках такой работы по форме соответствующие поля изменять нельзя (как и задать "из компонента").

  • Блокирование от изменений свойств процессов не распространяется на все существующие методы API. Т.е. передача значения для всех свойств (даже заблокированных), как и ранее, будет фактически их применять при создании экземпляра процесса.

Перечислим список мест создания подэтапов маршрута:

  • диалоги создания работ, проекта документа и проекта документа по шаблону;

  • диалоги отправки на согласование и ознакомление;

  • диалог редактирования работы;

  • редактор маршрутов (включая специальный процесс "работа по форме", см. пример 2);

  • диалог принятия резолюции;

  • диалог решений протокола.

Особенность поведения Системы. В резолюциях (только для выключенной настройки "Подставлять дату завершения документа в пункты резолюции") и решениях протокола (всегда) дата завершения не заполняется. В связи с этим свойство процесса "Длительность" в таких случах игнорируется (независимо от того, заблокировано ли оно от изменений).

Места использования процесса

Место использования процесса задается непосредственно в самой сущности либо группе сущностей, если есть соответствующий для этого интерфейс. Исключением являются редактор маршрутов и справочники send_items и resolution_work_types - они настраиваются в самом конструкторе процессов.

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

Документооборот → Журналы

Две настройки про запрет отправки зарегистрированных документов данного журнала на согласование и утверждение объединяются в одну (в виде флажка) - Запрет отправки зарегистрированных документов. При его включении справа добавляется выпадающий список с множественным выбором, который содержит все процессы по шаблону "Согласование".

Кроме того, в настройках журнала дорабатывается настройка Тип работы для исполнителя: выпадающий список с единичным выбором содержит все конструируемые процессы и, всегда последним, пункт "Резолюция". Значением по умолчанию является "процесс по умолчанию" для шаблона "Работа".

При обновлении системы:

  • включенный флажок "Запретить отправлять зарегистрированные документы данного журнала на согласование" соответствует выбранному значению "Согласование" в списке "Запрет отправки зарегистрированных документов";

  • включенный флажок "Запретить отправлять зарегистрированные документы данного журнала на утверждение" соответствует выбранному значению "Утверждение" в списке "Запрет отправки зарегистрированных документов";

  • и, соответственно - оба включенных флажка - оба значения в списке выбраны;

  • "Тип работы для исполнителя" не изменяется.

Рисунок 317. Настройки журнала

Настройки журнала

Документооборот → Типы документов

Дорабатывается настройка Наличие утверждения: при включении флажка справа добавляется выпадающий список с множественным выбором, который содержит все процессы по шаблону "Согласование".

При обновлении системы для включенного флажка в выпадающем списке будет выбрано значение "Утверждение".

Документооборот → Шаблоны протокола

Во-первых, добавляется новая настройка Процесс для решений протокола: выпадающий список с единичным выбором содержит все процессы по шаблону "Работа". Значением по умолчанию является "процесс по умолчанию" для шаблона "Работа".

Во-вторых, в данный раздел переносятся следующие настройки документооборота:

  • Требовать согласование протокола

  • Требовать утверждение протокола

  • Требовать регистрацию протокола

Первые две настройки объединяются в одну (в виде флажка) - Требовать согласование протокола. При его включении справа добавляется выпадающий список с множественным выбором, который содержит все процессы по шаблону "Согласование".

В-третьих, в связи с расширением функциональности раздела, он переименовывается в Настройки протоколов и переносится внутрь подраздела "Настройки потоков работ" после пункта "Настройки резолюций".

При обновлении системы:

  • "Процесс для решений протокола" содержит значение "Работа";

  • включенный флажок "Требовать согласование протокола" соответствует выбранному значению "Согласование" в списке "Требовать согласование протокола";

  • включенный флажок "Требовать утверждение протокола" соответствует выбранному значению "Утверждение" в списке "Требовать согласование протокола";

  • и, соответственно - оба включенных флажка - оба значения в списке выбраны.

Рисунок 318. "Настройки протоколов" в Конфигураторе

"Настройки протоколов" в Конфигураторе

Рисунок 319. Настройки протоколов

Настройки протоколов

Документооборот → Фильтры потоков работ

Дорабатывается выпадающий список условия фильтра "Тип": список с множественным выбором содержит все конструируемые процессы.

При обновлении системы значения условия "Тип" не изменятся.

Документооборот → Настройки диалогов создания

В настройках каждого диалога создания добавляется новая настройка, в зависимости от типа диалога:

  • Процесс для работы

  • Процесс для проекта документа

  • Процесс для проекта документа по шаблону

Данная настройка представляет собой выпадающий список с единичным выбором, который содержит все процессы по шаблону "Работа". Значением по умолчанию является "процесс по умолчанию" для шаблона "Работа".

При обновлении системы:

  • во всех диалогах создания работы "Процесс для работы" содержит значение "Работа";

  • во всех диалогах создания проекта документа "Процесс для проекта документа" содержит значение "Работа";

  • во всех диалогах создания проекта документа по шаблону "Процесс для проекта документа по шаблону" содержит значение "Работа".

Рисунок 320. Диалог создания работы

Диалог создания работы

Рисунок 321. Диалог создания проекта документа

Диалог создания проекта документа

Рисунок 322. Диалог создания проекта документа по шаблону

Диалог создания проекта документа по шаблону

Проекты → Настройки проектов

В настройки проектов добавляется 2 новые группы настроек.

Первая - Процесс для добавления проекта в портфель, содержит 2 выпадающих списка:

  • Корневая работа - список с единичным выбором содержит все процессы по шаблону "Работа";

  • Согласование - список с единичным выбором содержит все процессы по шаблону "Согласование".

Примечание: сюда относится как создание проекта напрямую в портфеле, так и перенос личного проекта в общекорпоративное дерево.

Вторая - Процесс для согласования проекта, также содержит 2 выпадающих списка:

  • Корневая работа - список с единичным выбором содержит все процессы по шаблону "Работа";

  • Согласование - список с единичным выбором содержит все процессы по шаблону "Согласование".

Формулировки работ для данных случаев остаются ненастраиваемыми.

При обновлении системы:

  • "Корневая работа" в обеих настройках содержит значение "Работа";

  • "Согласование" в настройке "Процесс для добавления проекта в портфель" содержит значение "Утверждение";

  • "Согласование" в настройке "Процесс для согласования проекта" содержит значение "Согласование".

Важное примечание!

До обновления системы при добавлении проекта в портфель работа-утверждение менеджеру порфтеля создавалась с длительностью, равной времени на выполнение "работы" по умолчанию (а не "утверждения"). После же обновления утверждения будут создаваться на основе длительности процесса "Утверждения".

До обновления системы при согласовании проекта и корневая работа, и все согласования создавались с длительностью в 5 рабочих часов. После же обновления все работы будут создаваться на основе длительности процессов "Работа" и "Согласование" соответственно.

Рисунок 323. Настройки проектов

Настройки проектов

Процессы → Реестры

В настройках корневой работы каждого из реестров после флажка "Создавать корневую работу для маршрутов по реестру" добавляется новая настройка Процесс для корневой работы маршрута реестра: выпадающий список с единичным выбором содержит все процессы по шаблону "Работа". Формулировка такой работы, как и ранее, берется из соответствующей настройки реестра.

При обновлении системы для включенного флажка "Создавать корневую работу для маршрутов по реестру" в выпадающем списке будет выбрано значение "Работа".

Рисунок 324. Настройки журнала

Настройки журнала

Специальные процессы → Работа по форме

Текущая настройка работы по форме "Тип работы" заменяется двумя:

  • Шаблон - выпадающий список с единичным выбором содержит список шаблонов:

    • Работа (выбран по умолчанию)

    • Согласование

    • Ознакомление

  • Процесс - выпадающий список с единичным выбором содержит все процессы по выбранному шаблону. Заполняется значением "процесса по умолчанию" данного шаблона.

Кроме того, у параметров "Период повторения" и "Форма завершения" упраздняются флажки.

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

При обновлении системы для уже существующих этапов маршрута с данным процессом:

  • значение настройки "Тип работы" преобразовывается:

    • "Работа" - шаблон "Работа", процесс "Работа";

    • "Согласование" - шаблон "Согласование", процесс "Согласование";

    • "Утверждание" - шаблон "Согласование", процесс "Утверждение";

    • "Ознакомление" - шаблон "Ознакомление", процесс "Ознакомление";

  • выключенный флажок "Период повторения" интерпретируется как значение "Указать" = "Нет";

  • выключенный флажок "Форма завершения" интерпретируется как значение "Указать" = "Нет".

Рисунок 325. Работа по форме

Работа по форме

Рисунок 326. Работа по форме

Работа по форме

Листы подписей

Карточка документа.

Для каждого процесса по шаблонам "Согласование" и "Ознакомление" в карточке документа создается свой лист (если имеются успешно завершенные экземпляры процессов). Заголовок этого листа определяется в свойствах конструируемого процесса.

Удаление процесса не затрагивает ход выполнения и, при наличии, соответствующий лист подписей. Т.е. удаленный процесс, который запускали в маршрутах данного документа, продолжает отображаться в его ходе выполнения. В свою очередь, листы подписей, согласования и ознакомления, а вместе с ними и их печатные версии, xml-сервисы, настроенные компоненты формы, продолжают отображать данные об удаленном процессе.

При обновлении системы в настройках уже существующих процессов добавится свойство с заголовком:

  • для процесса "Согласование" - Лист согласования;

  • для процесса "Утверждение" - Лист утверждения;

  • для процесса "Ознакомление" - Лист ознакомления.

Форма → Лист подписей.

Дорабатывается настройка "Тип данных": после пункта "Лист подписей" (выбран по умолчанию) отображается динамически формируемый список, составленный по формату:

Лист процесса %название_процесса%

где %название_процесса% - это название процесса по шаблону "Согласование" либо "Ознакомление".

Кроме того, значения столбцов результата согласования (сообщения "Согласовано", "Согласовано с комментарием") и ознакомления (сообщение "Ознакомлен") настраиваются в соответствующем конструируемом процессе.

При обновлении системы для уже существующих форм с настроенным компонентом "Лист подписей" значение настройки "Тип данных" преобразовывается:

  • "Лист согласования" - в Лист процесса "Согласование";

  • "Лист утверждения" - в Лист процесса "Утверждение";

  • "Лист ознакомления" - в Лист процесса "Ознакомление".

Новые сообщения в настройках процессов принимают значения:

  • Согласовано - для сообщения "Положительный ответ" в процессе "Согласование";

  • Согласовано с комментарием - для сообщения "Положительный ответ с комментарием" в процессе "Согласование";

  • Утверждено - для сообщения "Положительный ответ" в процессе "Утверждение";

  • Утверждено с комментарием - для сообщения "Положительный ответ с комментарием" в процессе "Утверждение";

  • Ознакомлен - для сообщения "Положительный ответ" в процессе "Ознакомление".

Важное примечание!

До обновления системы при добавлении на форму компонента "Лист утверждения" столбцы содержали столбцы и переводы для утверждений. Например, "ФИО утверждающего" или "Дата утверждения".

После же обновления при добавлении компонента Лист процесса "Утверждение" он будет содержать дефолтные подписи столбцов для согласования (т.к. теперь процесс утверждения основан на шаблоне "Согласование"). Например, "ФИО согласующего" или "Дата согласования".

Делегирование полномочий по работам

Права по делегированию работ "Изменение процента выполнения" и "Изменение статуса" теперь относятся ко всем экземплярам процессов, созданным по шаблону "Работа".

Кроме того, в настройках делегирования работ объединяются 2 настройки:

  • "Согласование/Рассмотрение"

  • "Утверждение"

в одну - Согласование. Ее включение позволяет завершать все экземпляры процессов, созданные на основе шаблона "Согласование".

Остальные же права ("Создание", "Редактирование", "Удаление") относятся ко всем создаваемым процессам.

Рисунок 327. Делегирование работ

Делегирование работ

XML и API сервисы

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

Разберем на примере следующих методов API.

  1. Метод API для запуска маршрута реестра.

    Среди входных параметров имеется typeID - тип операции, один из следующих вариантов:

    • ASSIGNMENT_ITEM - работа;

    • AGREEMENT_ITEM - согласование;

    • APPROVAL_ITEM - утверждение;

    • ACQUAINTANCE_ITEM - ознакомление;

    • RESOLUTION_ACTION - резолюция;

    • SEND_DOCUMENT - отправка документа;

    • BLOCKING_PROCESS - блокирующий процесс;

    • REGISTRATION_ITEM - регистрация;

    • ROUTE_ITEM - маршрут.

    При обновлении системы передача параметра

    typeID = APPROVAL_ITEM

    означает необходимость использования процесса "Утверждение" по умолчанию. Аналогично для остальных конструируемых процессов.

  2. Метод API для наложения резолюции на документ без работ.

    Среди входных параметров имеется typeID - тип рабоы, один из следующих вариантов:

    • 0 - согласование;

    • 1 - утверждение;

    • 2 - ознакомление;

    • 3 - работа;

    • 17 - отправка документа;

    • 33 - резолюция.

    При обновлении системы передача параметра

    typeID = 0

    означает необходимость использования процесса "Согласование" по умолчанию. Аналогично для остальных конструируемых процессов.

Кроме того, в существующем слушателе процессов имеется обработчик для процессов:

  • «согласование» (agreement-single);

  • «утверждение» (approval-single);

  • «ознакомление» (acquaintance-single);

  • «работа» (assignment-single);

  • «общий процесс при запуске по формам» (common-process-by-form);

  • «отправка документа» (send-document);

  • «отправка документа по форме» (send-document-by-form).

В данном случае использование процесса, например, acquaintance-single означает использование всех процессов, созданных на основе шаблона "Ознакомление". Аналогично для остальных конструируемых процессов, с учетом того, что процессы agreement-single и approval-single теперь одинаково означают все процессы по шаблону "Согласование".

Разберем несколько примеров

Пример 3.

После создания процесса на основе шаблона "работа" имеется необходимость его использования в качестве корневой работы реестра.

Методолог переходит в настройки конкретного реестра и в подразделе про корневую работу выбирает только что настроенный процесс.

Пользователю, создающему запись в данном реестре и запускающему по нему маршрут, создастся "работа" со свойствами, заданными именно в этом процессе.

Пример 4.

После создания процесса на основе шаблона "согласование" имеется необходимость его использования в качестве пункта маршрута.

Ввиду отсутствия единого интерфейса настройки редактора маршрутов методолог переходит в настройки процесса и указывает там использование процесса в редакторе маршрута.

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

Действия при обновлении системы

При обновлении системы в конструкторе процессов будут отображаться 9 процессов (в таблице указаны дефолтные наименования процессов):

Код Шаблон Наименование

assignment

Работа

Работа

agreement

Согласование

Согласование

approval

Согласование

Утверждение

acquaintance

Ознакомление

Ознакомление

resolution

Резолюция

send-document

Отправка документа

blocking

Блокирующий процесс

registration

Регистрация

route

Маршрут...

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

Порядок следования тоже не изменяется. Все 9 процессов используются в редакторе маршрутов.

При обновлении системы процессами по умолчанию станут процессы:

Процесс Значение

Работа

Работа

Согласование

Согласование

Утверждение

Утверждение

Ознакомление

Ознакомление