Уведомление

Общее описание

Элемент используется для отправки уведомлений пользователям. На данный момент поддерживается только уведомление по электронной почте.

Уведомления отправляются через микросервис ecos-notifications, см. подробнее - уведомления и шаблоны уведомлений.

../../../../../_images/481.png

Атрибуты и форма

Указать Имя,
Тип уведомления указан по умолчанию Электронная почта.
../../../../../_images/49.png

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

../../../../../_images/50.png

../../../../../_images/51.png

Получатели могут быть выбраны из:

Роли
Роли, заполненные в типе данных.

Выражение
Имя, recordRef или емейл получателя. Поддерживаются expression для получения данных из переменных или сервисов. Expression может вернуть множественное значение - строки разделенные запятой: ivan@mail.com,user2,user3.

Например:
ivan.petrov
GROUP_company_accountant
emodel/authority-group@company_accountant
emodel/person@ivan
${someVariable}
${someService.getEmails()},petya.voks

../../../../../_images/send_task_recipient_roles.png
../../../../../_images/send_task_recipient_expression.png

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

Например:
someAddress@mail.com
"Some Name" <someAddress@mail.com>
${someExpressionToGetAddress}

Получение адреса из Ecos Конфигурации:
${Config.getNotNull("app/you-app$you-config-key").asText()}

Record уведомления:
Базовый record для заполнения шаблона. Если в этом поле ничего не указано, то берется документ, по которому запущен бизнес процесс.

Язык:
Указывается язык шаблона уведомления в формате ru, en и т.д. Если язык не указан, то берется язык по умолчанию.

Дополнительная модель (additional meta):
Описание дополнительной мета информации, где
ключ (string) - по ключу становится доступна информация в модели шаблона уведомления.
значение (object) - если в значении передана строка и начинается с префикса !str_, то символы после префикса записываются как строка, иначе строка считается как recordRef.

../../../../../_images/send_task_settings_panel.png

Важно

При сохранении, сохранении/публикации процесса проверяется обязательность заполнения следующих полей:

  • «Шаблон» или «Тело сообщения»;

  • «Получатели» (Роли или Выражение)

Иначе в линтере будет выдана ошибка.

Доступные переменные

В модели шаблона уведомлений есть доступ к следующим переменным:

  1. Переменные из базового record. По умолчанию это документ, по которому идет бизнес-процесс. Обращение происходит напрямую к атрибутам record.

  2. Переменные процесса. Через переменную $process доступны переменные процесса на момент отправки уведомления.

  3. Переменные событий Ecos. Доступны через переменную $process.event.

  4. Контекстные переменные Records API

Также в самом шаблоне уведомлений доступны сервисы шаблонизатора

Пример использования переменных в шаблоне

Для примера используем event sub process, который реагирует на событие добавления нового комментария и отправляет уведомление.

../../../../../_images/bpmn_notification_example_process.png

Шаблон уведомления содержит модель:

"model": {
       "documentDisp": ".disp",
       "documentCreated": "_created",
       "documentFio": "fio",
       "now": "$now",
       "user": "$user",
       "processAtt": "$process.someAttr",
       "str": "$str",
       "commentText": "$process.event.text",
       "eventId": "$process.event._meta.id",
       "eventType": "$process.event._meta.type",
       "eventRecord": "$process.event.eventRecord",
       "eventRecordCreated": "$process.event.eventRecordCreated",
       "currentRunAsUser": "$process.currentRunAsUser"
}

Шаблон уведомления содержит текст:

../../../../../_images/bpmn_notification_example_text.png

В результате получим следующее уведомление:

../../../../../_images/bpmn_notification_example_result.png

Если необходимо отправить сообщение о добавлении комментария с вложением (реакция на событие добавления комментария), то нужно добавить в модель уведомления атрибут:

"model": {
       "_attachments": "$process.event.attachments[]._as.ref._content{bytes, meta:?json}"
}