Уведомление

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

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

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

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

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

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

Отправка писем-встреч в календарь пользователя

Название и Описание могут быть указаны напрямую или через expression ${someVariable}
Настройки события могут быть выбраны как значениями, так и указаны в виде выражений.

- Значение

Организатор выбирается из ролей, заполненных в типе данных. Конечным результатом обработки поля будет являться email. Если в роли содержится несколько пользователей, то будет выбран первый вычисленный email.

Дата начала события. При создании события будет указан часовой пояс организатора из профиля пользователя.

Продолжительность события выберите из списка.

- Выражение

Организатор — имя, recordRef или емейл организатора. Конечным результатом обработки поля будет являться email.
Поддерживаются expression для получения данных из переменных или сервисов.
Например:
ivan.petrov
GROUP_company_accountant
emodel/authority-group@company_accountant
emodel/person@ivan
ivan.petrov@citeck.ru
Если передан объект, который содержит несколько емейлов (группа пользователей), то будет выбран первый вычисленный email.

Дата начала события может быть указана в формате ISO или выражение:
2020-06-20T10:30:00Z
${ someDate}
Выражение всегда должно возвращать java.util.Date, java.util.String (ISO 8601) или null.

Продолжительность события указывается в ISO 8601 формате. Например:
- PT15S — 15 секунд
- PT1H30M — 1 час 30 минут
- P14D — 14 дней
Может быть указана напрямую или через expression. Например: ${someVariable}



Получатели могут быть выбраны из:
- Роли — роли, заполненные в типе данных.
- Выражение — имя, 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


Исходящий адрес — исходящий адрес уведомления. Может быть указан напрямую или через expression.
Если пусто, то будет использовано значение по умолчанию.
Например:
someAddress@mail.com
"Some Name" <someAddress@mail.com>
${someExpressionToGetAddress}

Получение адреса из Конфигурации Citeck:
${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. Переменные событий Citeck. Доступны через переменную $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}"
}