Формулировка проблемы: необходима возможность более гибкой настройки таких процессов, как работа, согласование, утверждение, ознакомление, возможность настройки нескольких однотипных процессов (например, процесса подписания на основе согласования). Кроме того, для улучшения удобства взаимодействия необходима возможность их централизованной настройки.
Связанные задачи: BPM22, часть 1
Содержание:
Решение: необходимо перенести и доработать текущий подраздел "Настройки процессов". Новый подраздел должен называться "Конструктор процессов" и находиться в разделе конфигуратора "Процессы" до подраздела "Пользовательские компоненты".
При открытии подраздела "Конструктор процессов" методологу откроется экран со следующей структурой.
Навигатор экрана представлен двумя панелями:
Объекты;
Структура (имеется только для конструируемых и простых процессов).
Сам навигатор можно свернуть и развернуть нажатием на соответствующую кнопку, располагающуюся в его области. Также имеется возможность отдельного сворачивания и разворачивания панели "Структура". Между панелями, а также навигатором и рабочей областью имеются разделители, позволяющие изменять ширину и высоту панелей. Минимальные ширина навигатора и высота одной из панелей - 100px. Изменение размеров панелей и навигатора влияет на наличие в них скроллов.
Панель "Объекты" содержит дерево с тремя типами объектов:
"Процессы по умолчанию";
"Процессы" (выбран по умолчанию) - объектами данного узла являются все неудаленные процессы, имеющиеся в системе (и конструируемые, и обычные). Процессы отображаются в панели в том порядке, что и в таблице управления процессами.
"Справочники" - узел содержит два справочника:
send_items;
resolution_work_types.
Если размеры дерева выходят за пределы панели, то в нее добавляется скролл (вертикальный, либо горизонтальный).
Панель "Структура" по умолчанию раскрыта и содержит список свойств, отличный для разных процессов. Она отображается только при выборе конструируемого или простого процесса. По нажатию на свойство из списка рабочая область перемещается на эту группу свойств.
Содержимое основной рабочей области зависит от выбранного объекта в навигаторе.
Объект "Процессы по умолчанию"
"Процессы по умолчанию" представлены выпадающими списками. Каждый список содержит все неудаленные конструируемые процессы, созданные по соответствующему шаблону. Значение списков по умолчанию:
Работа - процесс "Работа";
Согласование - процесс "Согласование";
Утверждение - процесс "Утверждение";
Ознакомление - процесс "Ознакомление".
Также данный объект содержит пояснительный текст:
Эти настройки используются в тех местах Системы, где нет явного указания процесса работы, согласования, утверждения и ознакомления (например, методы API), а также при создании новых объектов конфигурации, для которых должны указываться процессы (например, реестры)
Объект "Процессы"
Если был выбран корневой узел "Процессы", то в рабочей области отображается таблица управления процессами со следующими заголовками:
"Код" - код процесса.
"Шаблон" - шаблон конструируемого процесса. Для обычных процессов данная ячейка пуста.
"Наименование" - название процесса;
"Отображать в редакторе маршрутов" - флаг, определяющий отображение данного процесса во всех типах редактора маршрутов системы (по умолчанию включен).
В шапке таблицы имеются следующие элементы:
флаг "Показать удаленные" (по умолчанию выключен);
кнопки изменения порядка следования процессов;
кнопка "Добавить".
Состояние флага "Показать удаленные" влияет на список процессов, отображаемых в таблице. Если флаг включен, то таблица также содержит процессы, которые были удалены. При этом флаги "Отображать в редакторе маршрутов" для таких процессов выключены и неактивны.
Ячейки таблицы имеют контекстное меню с пунктами:
"Редактировать";
"Переместить выше";
"Переместить ниже"
"Удалить". Для удалённых процессов вместо этого пункта должен быть пункт "Восстановить".
Если количество процессов такое, что они не помещаются в таблице полностью, то в нее добавляется вертикальный скролл.
При помощи кнопок и контекстного меню таблицы для процессов доступны следующие действия:
добавление процесса;
удаление и восстановление процесса;
изменение порядка следования процессов;
изменение самого процесса.
Добавление процесса
Добавление процесса осуществляется нажатием на кнопку "Добавить". Открывшееся окно содержит элементы:
поле "Код";
выпадающий список "Шаблон";
переключатели, определяющие значения свойств и параметров будущего процесса по умолчанию;
кнопка "Создать".
Поле "Код" обязательно для заполнения. Оно заполняется только на данном этапе и в последствии не может быть изменено. Значение этого поля должно быть уникальным и не содержать пробелов. Нельзя повторно указывать код удаленного процесса.
Выпадающий список "Шаблон" определяет шаблон, по которому будет создан процесс. Шаблон процесса задается только при создании процесса и после этого не может быть изменен. Список содержит пункты:
"Работа" (выбран по умолчанию);
"Согласование";
"Ознакомление".
Новый процесс создается со свойствами и параметрами шаблона либо существующего процесса. Если выбран пункт "Новый процесс", то будущий процесс будет создан со значениями свойств и параметров выбранного шаблона по умолчанию. При создании процесса этот пункт выбран по умолчанию.
При выборе пункта "Из текущего" новый процесс будет создан на основе уже существующего, который выбирается в выпадающем списке пункта. Данный список содержит все неудаленные процессы согласно выбранному шаблону. По умолчанию выбран первый из списка. Если выбран пункт "Новый процесс", данный список неактивен.
По нажатию на кнопку "Создать" процесс создается согласно выбранным значениям. Новый процесс добавляется в конец таблицы и автоматически выбирается в панели "Объекты".
Удаление и восстановление процесса
Удаление и последующее восстановление процесса осуществляется из контекстного меню таблицы. При удалении процесса отобразится модальное браузерное окно с текстом:
Вы действительно хотите удалить данный процесс?
Удаленный процесс более не будет отображаться во всех выпадающих списках выбора процессов. При этом он продолжает использоваться в настроенных местах системы.
Изменение порядка следования процесса
Порядок следования процессов в таблице влияет на их расположение в выпадающем списке выбора процессов в следующих местах системы:
Процессы по умолчанию;
процессы "Работа" и "Резолюция";
редактор маршрутов (включая специальный процесс "Работа по форме");
Документооброт:
Журналы;
Типы документов;
Настройки протокола;
Фильтры потоков работ;
Настройки диалогов создания;
Проекты → Настройки проектов;
Процессы → Реестры;
Форма → Лист подписей.
Активность кнопок перемещения процессов и пунктов контекстного меню выглядит следующим образом:
ни один процесс не выбран - обе кнопки неактивны;
выбран первый процесс в таблице - кнопка и пункт "Переместить выше" неактивны;
выбран последний процесс в таблице - кнопка и пункт "Переместить ниже" неактивны.
Изменение процесса
Изменение процесса осуществимо:
по двойному клику на процесс в таблице;
при вызове соответствующего пункта контекстного меню таблицы;
при выборе процесса в панели "Объекты".
Единичный процесс
Если в навигаторе был выбран определенный процесс, то рабочая область отображает все его свойства и параметры одним списком. Расположение списка зависит от выбранного свойства в панели. Группы свойств и параметров, а также их состав различны для каждого процесса и будут рассмотрены отдельно.
Объект "Справочники"
При выборе объекта "Справочники" в основной рабочей области отображается таблица с кодами и наименованиями справочников, предназначенных для настройки процессов. В данном подразделе конфигуратора нельзя ни удалить эти справочники, ни создать новые. На данный момент таблица должна содержать лишь два справочника:
send_items;
resolution_work_types.
Если в панели "Объекты" был выбран справочник, то в рабочей области содержится текущий интерфейс данного справочника на момент открытия экрана "Конструктор процессов". Интерфейс и функциональность справочника идентичен текущему (Процессы → Справочники). Записи справочника можно добавить, редактировать, удалить.
Если количество свойств, либо интерфейс выбранного справочника такой, что содержимое рабочей области не отображаются полностью, то в ней содержится вертикальный скролл.
Кнопка "Сохранить" отображается в рабочей области только для объектов "Процесс" или "Процессы по умолчанию". Ее расположение фиксировано.
В связи с существенным отличием конструируемых процессов от обычных имеет смысл рассматривать наборы их свойств раздельно.
Для конструируемых процессов определены следующие группы свойств:
Общие свойства
Параметры
Сообщения
Рассмотрим каждое из них отдельно.
"Общие свойства" представляют собой базовый набор свойств данного процесса. Набор этих свойств отличен и зависит от шаблона.
Все конструируемые процессы имеют общие свойства:
"Шаблон" - определяет шаблон, по которому был создан процесс. Представлен в виде неизменяемого лейбла.
"Код";
"Наименование".
Дополнительно для конструируемого процесса "Работа" имеются свойства, представленные выпадающими списками:
"Процесс для запроса на участие";
"Процесс для запроса на передачу".
Эти списки отображают наименования всех неудаленных процессов, созданных по шаблону "Согласование". Если выбранный процесс был скрыт, то он остается выбранным, но при этом будет отсутствовать в выпадающем списке.
Свойства, которые необходимо перенести из глобальных настроек документооборота и потоков работ
Для более гибкой настройки процесса необходимо вынести некоторые из настроек документооборота в свойства "Общие свойства".
Подраздел "Настройки документооборота":
Убрать настройку "Закрывать окно просмотра работы после утверждения" и перенести следующие настройки согласно типам процессов:
Закрывать окно просмотра работы после согласования - для конструируемых процессов по шаблону "Согласование";
Закрывать окно просмотра работы после ознакомления - для конструируемых процессов по шаблону "Ознакомление";
Закрывать окно просмотра работы после завершения работы - для конструируемых процессов по шаблону "Работа".
Также переименовать эти настройки в "Закрывать окно после завершения".
Убрать настройку "Подписывать утверждения" и перенести следующие настройки согласно типам процессов:
Подписывать согласования - для конструируемых процессов по шаблону "Согласование";
Подписывать ознакомления - для конструируемых процессов по шаблону "Ознакомление".
Также переименовать эти настройки в "Требовать подпись для завершения".
Подраздела "Доп. настройки потоков работ":
Добавить свойства для конструируемого процесса "Работа":
"Разрешить передавать работы другим исполнителям" - переименовать в "Разрешить передавать другим исполнителям";
"Разрешить добавлять соисполнителей к работам, не являющихся подчиненными" - переименовать в "Разрешить выбор исполнителей, не являющихся подчиненными".
Значения этих добавленных настроек для отдельных процессов и настроек в документообороте не должны быть связаны. При изменении их значений в документообороте не должно изменяться значение настроек для процессов, и наоборот.
Для конструируемых процессов "Согласование" и "Ознакомление" перенести настройку "Максимальный уровень иерархии вверх, которому можно отправить документ (0 - все уровни структуры)". Это свойство должно иметь новое название: "Максимальный уровень иерархии вверх для исполнителей". Также для него необходимо добавить кнопку "?", по нажатию на которую раскроется всплывающая подсказка с текстом:
Максимальный уровень иерархии вверх, которому можно документ при помощи этого процесса (0 - все уровни структуры)
Перенести настройки требования ввода комментариев для конструируемого процесса "Согласование". Настройки будут иметь общий заголовок "Требовать ввода комментария" и переименованы следующим образом:
"Требовать ввода комментария при согласовании/утверждении" - "При положительном ответе";
"Требовать ввода комментария при отказе в согласовании/утверждении" - "При отрицательном ответе".
Группа данных параметров определяет значения по умолчанию для подэтапов маршрута и экземпляров процесса и возможность их блокирования от изменений пользователем. Набор всех перечисленных параметров также отличен и зависит от шаблона. Возможность блокирования параметров от изменений пользователями доступна для каждого параметра и представлена в виде флажка . Если флажок некоторого свойства был включен, то для такого процесса данное поле при создании подэтапа маршрута будет неактивно. А именно для следующих мест:
диалоги создания работ, проекта документа и проекта документа по шаблону;
диалоги отправки на согласование и ознакомление;
диалог редактирования работы;
редактор маршрутов (включая специальный процесс "работа по форме");
диалог принятия резолюции;
диалог решений протокола.
Примечание
В резолюциях (только для выключенной настройки "Подставлять дату завершения документа в пункты резолюции") и решениях протокола (всегда) дата завершения не заполняется. В связи с этим свойство процесса "Длительность" в таких случаях игнорируется (независимо от того, заблокировано ли оно от изменений).
Все конструируемые процессы имеют общие параметры:
"Приоритет" - представлен в виде выпадающего списка. Пунктами списка представлены нескрытые приоритеты из подраздела "Настройки приоритетов" (Документооборот → Настройки Потоков Работ → Настройки приоритетов).
"Нагрузка" - представлен в виде выпадающего списка и поля. Пункты этого списка и их соответствующие значения в поле представляют собой неудаленные значения из подраздела "Настройки нагрузок" (Документооборот → Настройки Потоков Работ → Настройки нагрузок). Поле параметра обязательно для заполнения.
Дополнительно для конструируемых процессов "Работа" имеется параметр "Повторять", представленный компонентом "Период повторения".
Параметры, которые необходимо перенести из глобальных настроек потоков работ
Для группы настроек "Время на выполнение работ по-умолчанию" осуществить следующее:
"Создание и перепоручение работы (в том числе по маршруту)" и "Работа по проекту документа (в том числе по шаблону)" - объединить и перенести для конструируемого процесса "Работа";
"Согласование" - перенести для конструируемого процесса "Согласование";
"Утверждение" - убрать настройку;
"Ознакомление" - перенести для конструируемого процесса "Ознакомление".
Также переименовать эти настройки в "Длительность". Данное поле обязательно для заполнения.
Для процесса "Работа" добавить настройку "Форма завершения". Значения этих настроек в глобальных настройках потоков работ и для отдельного процесса не должны быть связаны. При изменении их значений в настройках потоков работ не должно изменяться значение настроек для процессов, и наоборот.
Набор данных свойств также определяется конкретным типом процесса. Те сообщения, которые не имеют подзаголовков должны быть объединены в одну группу "Подстановки". Все поля свойств "Сообщения" имеют динамические размеры и растягиваются на всю ширину экрана. Для группы сообщений "Уведомления" названия полей и сами поля располагаются на отдельных строках.
Все свойства "Сообщения" обязательны для заполнения.
Также необходимо добавить подгруппу свойств "Лист процесса". Сообщения этой подгруппы используются в карточке документа и компоненте формы "Лист подписей". Эти поля с кнопкой переводов по умолчанию имеют значения:
Для процесса по шаблону "Согласование":
Свойство | Значение |
---|---|
Подпись листа процесса в РКК |
Лист согласования |
Положительный ответ |
Согласовано |
Положительный ответ с комментарием |
Согласовано с комментарием |
Для процесса по шаблону "Ознакомление":
Свойство | Значение |
---|---|
Подпись листа процесса в РКК |
Лист ознакомления |
Положительный ответ |
Ознакомлен |
Также для конструируемого процесса "Работа" необходимо добавить новое свойство "Формулировка запроса для передачи". Это поле с кнопкой переводов должно иметь следующее значение по умолчанию:
Свойство | Значение |
---|---|
Формулировка запроса для передачи |
Прошу Вас взять на исполнение работу "${summary}" |
Такие процессы имеют две группы свойств (за исключением процесса "Резолюция"). Группа "Общие свойства" всех простых процессов содержит два свойства:
"Код" - показывает код процесса, который присваивается ему в момент создания процесса. Представлен в виде неизменяемого лейбла.
"Наименование" - является названием процесса. Представлено в виде поля с кнопкой переводов, которое обязательно для заполнения.
Свойства "Сообщения" содержат все текущие сообщения процессов. При этом те сообщения, которые не имеют подзаголовков, необходимо объединить в одну группу "Подстановки".
Резолюция
Процесс "Резолюция" должен дополнительно содержать следующие свойства и параметры:
Группа свойств "Общие свойства":
выпадающий список "Процесс для запроса на участие";
флаг "Разрешить выбор исполнителей, не являющихся подчиненными".
Группа параметров "Параметры":
"Длительность";
"Приоритет";
"Нагрузка".
Опишем значения всех вышеперечисленных свойств по умолчанию при создании нового процесса.
Примечание
Если значение ячейки в таблице отсутствует, то процесс не имеет этого свойства или параметра.
Группа свойств "Общие свойства"
Свойство | Процесс "Работа" | Процесс "Согласование" | Процесс "Ознакомление" |
---|---|---|---|
Шаблон |
Работа |
Согласование |
Ознакомление |
Код |
значение, указанное при создании процесса |
значение, указанное при создании процесса |
значение, указанное при создании процесса |
Название |
пусто |
пусто |
пусто |
Процесс для запроса на участие |
Согласование | ||
Процесс для запроса на передачу |
Согласование | ||
Максимальный уровень иерархии вверх для исполнителей |
0 |
0 | |
Разрешить передавать другим исполнителям |
выключен | ||
Разрешить выбор исполнителей, не являющихся подчиненными |
выключен | ||
Закрывать окно после завершения |
выключен |
выключен |
выключен |
Требовать подпись для завершения |
выключен |
выключен | |
Требовать ввода комментария | |||
При положительном ответе |
выключен | ||
При отрицательном ответе |
выключен |
Группа параметров "Параметры"
Параметр | Процесс "Работа" | Процесс "Согласование" | Процесс "Ознакомление" |
---|---|---|---|
Длительность |
8 |
8 |
8 |
Приоритет |
приоритет по умолчанию (Документооборот → Настройки Потоков Работ → Настройки приоритетов) |
приоритет по умолчанию (Документооборот → Настройки Потоков Работ → Настройки приоритетов) |
приоритет по умолчанию (Документооборот → Настройки Потоков Работ → Настройки приоритетов) |
Нагрузка |
первое значение нагрузки в таблице (Документооборот → Настройки Потоков Работ → Настройки нагрузок) |
первое значение нагрузки в таблице (Документооборот → Настройки Потоков Работ → Настройки нагрузок) |
первое значение нагрузки в таблице (Документооборот → Настройки Потоков Работ → Настройки нагрузок) |
Период повторения |
Нет | ||
Форма завершения |
значение глобальной настройки формы завершения (Документооборот → Настройки Потоков Работ → Доп. настройки потоков работ) |
Флажки "Заблокировать от изменений пользователем" у всех параметров выключены для всех процессов.
Группа свойств "Сообщения"
Для конструируемого процесса "Работа":
Свойство | Значение |
---|---|
Подстановки | |
Заголовок работы в карточке документа |
В работу |
Кнопка завершения |
Завершить |
Кнопка диалога отправки |
Перепоручить |
Текст подтверждения действия при смене ответственного |
Вы действительно хотите изменить ответственного? Данная работа будет удалена. Вместо нее будет создана аналогичная для нового пользователя с датой начала от текущего числа |
Текст подтверждения действия при смене ответственного с дочерними работами |
Вы действительно хотите изменить ответственного? Данная работа, а также все дочерние работы будут удалены. Вместо нее будет создана аналогичная для нового пользователя с датой начала от текущего числа |
Формулировка запроса на участие |
Запрос на участие в работе "${summary}" |
Формулировка запроса для передачи |
Прошу Вас взять на исполнение работу "${summary}" |
Уведомления | |
Создание работы |
Пользователь
|
Создания работы по документу |
Пользователь
|
Изменение прогресса |
Пользователь
|
Завершение работы |
Пользователь
|
Для конструируемого процесса "Согласование":
Свойство | Значение |
---|---|
Сообщения для хода исполнения | |
Работа, которая будет создана |
Согласование |
Работа в прогрессе |
На согласовании |
Положительный ответ |
Согласовано |
Отрицательный ответ |
Не согласовано |
Прервано |
Согласование отменено |
Состояние работы в списке работ | |
Ожидание |
ожидание |
Положительный ответ |
согласен |
Отрицательный ответ |
не согласен |
Форма процесса | |
Заголовок окна |
Согласовать |
Положительный ответ |
Согласен |
Отрицательный ответ |
Не согласен |
Лист процесса | |
Подпись листа процесса в РКК |
Лист согласования |
Положительный ответ |
Согласовано |
Положительный ответ с комментарием |
Согласовано с комментарием |
Подстановки | |
Подстановка при создании работы |
Согласовать |
Подстановка при создании работы в редакторе маршрутов |
Прошу согласовать |
Заголовок работы в карточке документа |
На согласование |
Кнопка завершения |
Согласовать |
Кнопка диалога отправки |
На согласование/рассмотрение |
Текст подтверждения действия при смене ответственного |
Вы действительно хотите изменить ответственного? Данное согласование будет удалено. Вместо него будет создано аналогичное для нового пользователя с датой начала от текущего числа |
Текст подтверждения действия при смене ответственного с дочерними работами |
Вы действительно хотите изменить ответственного? Данное согласование, а также все дочерние работы будут удалены. Вместо него будет создано аналогичное для нового пользователя с датой начала от текущего числа |
Уведомления | |
Создание работы |
Пользователь
|
Создание работы по документу |
Пользователь
|
Положительный ответ |
Пользователь
|
Отрицательный ответ |
Пользователь
|
Положительный ответ с комментарием |
Пользователь
|
Отрицательный ответ с комментарием |
Пользователь
|
Для конструируемого процесса "Ознакомление":
Свойство | Значение |
---|---|
Сообщения для хода исполнения | |
Работа, которая будет создана |
Ознакомление |
Работа в прогрессе |
На ознакомлении |
Положительный ответ |
Ознакомлен |
Прервано |
Ознакомление отменено |
Состояние работы в списке работ | |
Ожидание |
ожидание |
Положительный ответ |
ознакомился |
Форма процесса | |
Заголовок окна |
Ознакомиться |
Положительный ответ |
Ознакомлен |
Лист процесса | |
Подпись листа процесса в РКК |
Лист ознакомления |
Положительный ответ |
Ознакомлен |
Подстановки | |
Подстановка при создании работы |
На ознакомление |
Подстановка при создании работы в редакторе маршрутов |
На ознакомление |
Заголовок работы в карточке документа |
На ознакомление |
Кнопка завершения |
Ознакомиться |
Кнопка диалога отправки |
На ознакомление |
Текст подтверждения действия при смене ответственного |
Вы действительно хотите изменить ответственного? Данное ознакомление будет удалено. Вместо него будет создано аналогичное для нового пользователя с датой начала от текущего числа |
Текст подтверждения действия при смене ответственного с дочерними работами |
Вы действительно хотите изменить ответственного? Данное ознакомление, а также все дочерние работы будут удалены. Вместо него будет создано аналогичное для нового пользователя с датой начала от текущего числа |
Уведомления | |
Создание работы |
Пользователь
|
Создания работы по документу |
Пользователь
|
Положительный ответ |
Пользователь
|
где:
{0}
- Фамилия И.О. пользователя;
{1}
- название работы / документа;
{2}
- срок выполнения, результат
завершения и статус работы;
{2}%
- значение прогресса;
{3}
- комментарий к работе;
{8}, {3}, {4}
- ссылки на документ
работы.
При сохранении процесса необходимо проводить валидацию. В случае, если обязательные поля не были заполнены, то необходимо подсвечивать их красным цветом и отображать ошибку с текстом:
Заполните обязательные поля
Если же введенный код не уникален, то поле также будет подсвечено красным цветом и отобразится ошибка:
Данный код уже используется
Если процесс имеет несохраненные изменения, то при выборе иного объекта необходимо отображать модальное диалоговое окно с текстом:
Все несохраненные изменения будут потеряны! Вы действительно хотите продолжить?
При сохранении конструируемого процесса "Работа" и процессов по умолчанию необходимо проводить проверку выбранных процессов. Если для этих объектов выбран процесс, который в последствии был удален, то необходимо необходимо подсвечивать выпадающий список и отображать ошибку с текстом:
Выбранный процесс был удален. Выберите другое значение
Все действия над процессами должны логироваться в системе. Поэтому для источника "Конфигуратор" необходимо добавить следующие события:
Событие | Описание |
---|---|
Создание процесса |
Идентификатор: %код_процесса%. Объект: перечисление свойств и параметров процесса |
Изменение процесса |
Идентификатор: %код_процесса%. Объект: перечисление измененных свойств и параметров процесса |
Удаление процесса |
Идентификатор: %код_процесса%. Объект: %название_процесса% |
Изменение процесса по умолчанию |
Изменен процесс по умолчанию %процесс%[a]. Идентификатор: %код_процесса%. Объект: %название_процесса% |
[a] где %процесс% - "Работа", "Согласование", "Утверждение" или "Ознакомление". |