Как кастомизировать напоминания элемента [Выполнить действие процесса]
Glossary Item Box
Общие сведения
Элемент процесса [Выполнить действие процесса] ([User Task]) может создавать напоминание на панели[Задачи по бизнес-процессам] ([Business Process Tasks]), как и любое другое действие процесса. Для активации механизма создания напоминания по шагу бизнес-процесса необходимо, чтобы у пользовательского действия процесса было установлено свойство [Сериализовать в БД] и определен логический параметр ShowExecutionPage.
Предустановленные действия бизнес-процесса уже умеют создавать напоминания по шагам. Для пользовательских действий бизнес-процесса этот параметр необходимо добавлять вручную.
Пример создания пользовательского действия процесса с напоминанием
Описание кейса
Создать простое пользовательское действие процесса, перед выполнением которого будет автоматически создаваться оповещение с заголовком "Внимание" ("Attention"), и содержимым "Очень важно" ("Very important!"). Напоминание должно отображаться на панели[Задачи по бизнес-процессам].
Последовательность реализации кейса
1. Создать схему действия процесса
Для этого необходимо перейти в раздел [Конфигурация] ([Configuration]) дизайнера системы, выбрать пользовательский пакет и на вкладке [Схемы] ([Schemas]) выполнить команду меню [Добавить] ([Add]) — [Действие процесса] ([UserTask]) (рис. 1).
Рис. 1. — Создание схемы действия процесса
Для создаваемой схемы необходимо установить значения свойств, указанные в таблице 1.
Табл.1. — Свойства пользовательского действия процесса
Свойство | Значение |
---|---|
Заголовок (Title) | Кастомизированное действие процесса (Customized User Task) |
Название (Name) | UsrCustomizedUserTask |
Маленькое векторное изображение (Small vector image) | Векторное изображение в формате SVG (Scalable Vector Graphics). Будет отображаться на панели[Задачи по бизнес-процессам]. В этом примере используется SVG-изображение, доступное по ссылке. |
Изображение для нотификаций (54x54 px) (Notification Icon (54x54 px)) | Изображение для всплывающего окна напоминания в формате PNG (Portable Network Graphics), размером 54 на 54 пикселя. В этом примере используется такое PNG-изображение: . |
Сериализовать в БД (Serialize in DB) | Признак должен быть установлен. |
Пользовательское действие (User task) | Признак должен быть установлен. |
После внесения изменений, необходимо сохранить метаданные схемы.
2. Добавить параметр ShowExecutionPage
Чтобы при выполнении действия создавалось напоминание, необходимо в секцию Parameters схемы пользовательского действия процесса добавить новый параметр ShowExecutionPage (рис. 2). Его основные свойства приведены в таблице 2.
Рис. 2. — Добавление параметра схемы
Табл. 2. — Свойства параметра ShowExecutionPage
Свойство | Значение |
---|---|
Заголовок (Title) | ShowExecutionPage |
Название (Name) | ShowExecutionPage |
Тип данных (Data type) | Логическое (Boolean) |
Значение параметра ShowExecutionPage для создания напоминаний не имеет значения. Если указанный параметр присутствует в действии бизнес-процесса, то перед выполнением любого шага бизнес-процесса, реализуемого этим действием, будет автоматически создаваться напоминание по такому шагу.
После внесения изменений необходимо сохранить метаданные схемы.
3. Переопределить метод GetNotificationData()
Содержимое напоминания по шагу бизнес-процесса формируется с помощью метода GetNotificationData(), который пользователь имеет возможность переопределить.
Метод должен возвращать экземпляр класса Terrasoft.Core.Process.ProcessElementNotification, содержащий данные для напоминания шага бизнес-процесса. Настоятельно рекомендуется вначале вызвать базовый метод, который вернет экземпляр класса ProcessElementNotification, заполненный по умолчанию, а затем кастомизировать этот экземпляр. Полное описание свойств класса ProcessElementNotification можно найти в разделе Библиотеки классов серверной части ядра платформы.
Наибольший интерес для кастомизации представляют свойства, представленные в таблице 3.
Табл. 3. — Основные свойства класса Terrasoft.Core.Process.ProcessElementNotification
Свойство | Значение |
---|---|
Title | Заголовок уведомления о шаге бизнес-процесса. Значение по умолчанию — название действия бизнес-процесса на диаграмме. |
Subject | Описание уведомления о шаге бизнес-процесса. Здесь можно предоставить пользователю уточняющую информацию о данном шаге бизнес-процесса. Значение по умолчанию — значение параметра NotificationCaption бизнес-процесса, содержащего шаг. Таким образом, для всех шагов одного бизнес-процесса значение Subject по умолчанию одинаковое. |
StartDate | Дата и время отображения уведомления для пользователя системы. Значение по умолчанию — момент создания данного уведомления о шаге бизнес-процесса. Т. е. уведомление отобразится пользователю сразу после его создания, в момент начала выполнения шага бизнес-процесса. |
Чтобы выполнить условия кейса, необходимо переопределить метод GetNotificationData() созданной схемы. Для этого нужно выделить узел GetNotificationData в структуре схемы. И в поле [Скрипт] ([Script]) добавить следующий исходный код (рис. 3):
// Выполнение базового метода и получение сформированного по умолчанию экземпляра класса ProcessElementNotification. ProcessElementNotification notification = base.GetNotificationData(); //Кастомизация элемента нотификации. notification.Subject = "Very important! " + notification.Subject; notification.Title = "Attention"; // Можно отложить дату и время начала отображения уведомления. // notification.StartDate = notification.StartDate.AddDays(2); // Метод возвращает кастомизированный экземпляр ProcessElementNotification return notification;
Рис. 3. — Переопределение метода GetNotificationData()
После внесения изменений необходимо опубликовать схему.
4. Использовать созданный элемент в бизнес-процессе
После публикации схемы пользовательского действия процесса это действие становится доступным для использования в бизнес-процессах bpm'online. Чтобы его использовать, необходимо в бизнес-процесс добавить элемент [Выполнить действие процесса] ([User Task]). Для этого элемента в поле [Пользовательское действие] ([Which user task to perform?]) нужно выбрать действие "Кастомизированное действие процесса" ("Customized User Task"). После этого отобразится логический параметр ShowExecutionPage (рис. 4). Значение параметру присваивать не обязательно.
Рис. 4. — Параметр ShowExecutionPage пользовательского действия процесса
Чтобы корректно использовать созданное пользовательское действие, для него необходимо установить признак [Сериализовать в БД] ([Serialize in DB]). Для этого нужно перейти в расширенный режим свойств элемента (рис. 5) и установить необходимый признак (рис. 6, 1).
Рис. 5. — Переход в расширенный режим свойств элемента
Рис. 6. — Признак [Сериализовать в БД]
После этого бизнес-процесс нужно сохранить (рис. 6, 2) и запустить на выполнение (рис. 6, 3).
В результате отобразится сообщение о запуске процесса, а также появится уведомление, сконфигурированное в методе GetNotificationData() (рис. 7).
Рис. 7. — Результат выполнения кейса. Пользовательское уведомление
Кроме того, на панели[Задачи по бизнес-процессам] будет отображаться напоминание с такими же свойствами (рис. 8).
Рис. 8. — Результат выполнения кейса. Пользовательское напоминание