Skip to content

Latest commit

 

History

History
159 lines (115 loc) · 8.31 KB

ecos_bpmn_components_notifications.rst

File metadata and controls

159 lines (115 loc) · 8.31 KB

Уведомление

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

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

_static/notifications/48.png
Указать Имя,
Тип уведомления указан по умолчанию Электронная почта.
_static/notifications/49.png
Можно выбрать :ref:`шаблон уведомления<notification_templates>` или напрямую указать Заголовок и Тело сообщения напрямую.
При прямом использовании Заголовка и Тела возможно указывать только текст, без использования динамических переменных из процесса или документа.
_static/notifications/50.png

_static/notifications/51.png
Получатели могут быть выбраны из:

Роли
Роли, заполненные в :ref:`типе данных<data_types_main>`.

Выражение
Имя, 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
_static/notifications/send_task_recipient_roles.png
_static/notifications/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.

_static/notifications/send_task_settings_panel.png

Important

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

  • «Шаблон» или «Тело сообщения»;
  • «Получатели» (Роли или Выражение)

Иначе в :ref:`линтере<bpmn_linter>` будет выдана ошибка.

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

  1. Переменные из базового record. По умолчанию это документ, по которому идет бизнес-процесс. Обращение происходит напрямую к атрибутам record.
  2. Переменные процесса. Через переменную $process доступны переменные процесса на момент отправки уведомления.
  3. Переменные :ref:`событий Ecos<ecos_bpmn_events>`. Доступны через переменную $process.event.
  4. Контекстные переменные Records API

Также в самом шаблоне уведомлений доступны :ref:`сервисы шаблонизатора<notification_template_services>`

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

_static/notifications/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"
}

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

_static/notifications/bpmn_notification_example_text.png

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

_static/notifications/bpmn_notification_example_result.png

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

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