Загрузка...

3.04. Маршрут

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

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

Если нажать на точку в левой части вкладки Маршрут, то справа откроются настройки этой точки. По сути все настройки точек маршрута сводятся к размещению действий, которые будут выполняться над документом. Действия могут запускаться системой либо пользователем. Действия, запускаемые системой, размещаются в блоке "Выполнить", а действия для пользователей в блоке "Делегировать". Начнем с пользовательской части.

Блок Делегировать

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

  • Основное
  • Действие
  • Дополнительное

На вкладке Основное настраиваются:

  • Локализованные (то есть отдельно для каждого установленного в системе языка) название и подсказка (будут появляться при наведении пользователем курсора на кнопку).
  • Описание кнопки для администратора.
  • Группа кнопки. Однотипные кнопки могут собираться в группы. Группы отображаются пользователю в виде кнопок с выпадающим списком. Используя группы, можно упростить интерфейс и место на панели кнопок. Отнести кнопку к существующей группе, можно просто выбрав эту группу в выпадающем списке. Для создания новой группы рядом со списком расположена кнопка с пиктограммой в виде +. В окне создания новой группы можно ввести ее название (локализованное), выбрать пиктограмму, ввести настройки скрытия названия группы (если выбрана пиктограмма), указать цвет фона и шрифта названия.
  • Кому нужно показать кнопку - здесь можно указать одно или несколько полей, в которых система будет искать идентификаторы сотрудников (подразделений), которым должна быть показана кнопка. Наиболее целесообразно использовать здесь ссылочные поля, но при необходимости можно использовать и строковое, и текстовое и т.д., лишь бы поле было способно вернуть один или несколько (перечисленных через запятую) идентификаторов Структуры (сотрудников или подразделений).
  • Переместить текущий документ. После нажатия на кнопку и выполнения действия (если оно есть) будет выполнено перемещение на эту точку.

Вкладка Действие позволяет выбрать и настроить действие, которое будет выполнено при нажатии на кнопку. Действие можно и не выбирать. Обработку нажатия кнопки можно через контекст Активности и действия Условие, которое позволяет получить идентификатор нажатой кнопки. А можно использовать кнопки без действия ради ее атрибута "Переместить текущий документ".

На вкладке Дополнительное можно настроить внешний вид кнопки (Пиктограмма и Цвет шрифта и фона; при выбранной пиктограмме становится доступна возможность скрытия заголовка кнопки на пользовательских экранах с шириной меньше заданной), установить запись факта нажатия на кнопку в Ход работы (запись будет осуществлять в поле, которое выбрано в параметры Ход работы на вкладке Поля типа документа), а также настроить, что показать после выполнения кнопки - документ или журнал (настройка будет работать только в том случае, если документ открывается через журнал; в системе есть возможность открытия документа по прямой ссылке).

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

Блок Выполнить

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

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

Переход. Этот контекст доступен на любой точке маршрута. Действия, размещенные в этом контексте, выполняются всякий раз в момент перехода документа на данную точку. Например, сразу после того, как пользователь нажмет Сохранить в созданном документе, но до отображения документа пользователю.

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

Изменение. Когда в начале этой статьи в полях упоминался атрибут "При изменении поля - Запустить контекст изменения", речь шла именно об этом контексте. Фактически, это некий механизм подписки на изменение значения поля. О том, какое именно поле изменилось, узнать можно при помощи, например, действия Условие - записав куда-то предыдущее значение, либо анализируя на пустое значение, или используя соответствующую переменную некоторых действий, например, Записи.
Здесь следует немного рассказать о порядке обработки сохранения данных полей в системе. Когда сохраняется шаблон с полями (например, шаблон документа или шаблон действия Диалог) сохранение полей осуществляется последовательно, одно за другим. Например, если в шаблоне было три поля: П1, П2, П3 и они в таком же порядке расположены на вкладке "Поля" типа документа, то после сохранения значения будут в них записаны в таком же порядке. Если на поле П2 установить атрибут запуска контекста изменения, то следует учитывать, что в этот момент уже будет записаны значения в поля П1 и П2, но не в П3 - его очередь еще впереди. 

Настройки Этот контекст запускается при изменении настроечных полей типа документа с установленным атрибутом запуска маршрута при изменении значения поля. Контекст доступен только на нулевой точке и запускается для всех документов данного типа. Поэтому при запущенном сервисе "Демон" обработка контекста возлагается на него. Если "Демон" отключен, то время ожидания пользователя после изменения настроечного поля может быть довольно продолжительным, в зависимости от количества документов и действий, размещенных в контексте.

Удаление. Контекст срабатывает перед удалением документа. Он также будет запущен если пользователь создал новый документ, и, не сохраняя его, нажал на кнопку "Отмена". Такое поведение вызвано тем, что когда пользователь нажимает на кнопку создания документа (например, через действие "Создание"), этот документ создается в системе еще до нажатия на кнопку сохранения в виде черновика. Поэтому нажатие на кнопку "Отмена" приводит к удалению черновика и запуску контекста "Удаление". Удаление документа может быть отменено, если будет осуществлено перемещение на другую точку маршрута. Например, пользователь удаляет документ, находящийся на точке А. В контексте удаления этой точки осуществляется перемещение на точку Б, где выполняются какие-то действия, и обработка завершается. В этом случае удаление документа будет отменено. Однако, если на точке Б окажется "Перемещение", которое переместит документ обратно на точку А, где и завершится обработка, документ будет удален, поскольку он окажется на  той же точке А.

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