Уведомление
Общее описание
Элемент используется для отправки уведомлений пользователям. На данный момент поддерживается только уведомление по электронной почте.
Уведомления отправляются через микросервис ecos-notifications, см. подробнее — уведомления и шаблоны уведомлений.
Атрибуты и форма
Имя и тип уведомления
Указать Имя, Тип уведомления указан по умолчанию Электронная почта.
Шаблон или текст сообщения
При прямом использовании Заголовка и Тела возможно указывать только текст, без использования динамических переменных из процесса или документа.
Можно выбрать шаблон уведомления.
Отправка писем-встреч в календарь
Название и Описание могут быть указаны напрямую или через expression ${someVariable}.
Настройки события могут быть выбраны как значениями, так и указаны в виде выражений.
Организатор выбирается из ролей, заполненных в типе данных. Конечным результатом обработки поля будет являться email. Если в роли содержится несколько пользователей, то будет выбран первый вычисленный email.
Дата начала события. При создании события будет указан часовой пояс организатора из профиля пользователя.
Продолжительность события выберите из списка.
Организатор — имя, recordRef или емейл организатора. Конечным результатом обработки поля будет являться email.
Поддерживаются expression для получения данных из переменных или сервисов. Например:
ivan.petrovGROUP_company_accountantemodel/authority-group@company_accountantemodel/person@ivanivan.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.petrovGROUP_company_accountantemodel/authority-group@company_accountantemodel/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.
Важно
При сохранении, сохранении/публикации процесса проверяется обязательность заполнения следующих полей:
«Шаблон» или «Тело сообщения»;
«Получатели» (Роли или Выражение).
Иначе в линтере будет выдана ошибка.
Доступные переменные
В модели шаблона уведомлений есть доступ к следующим переменным:
Переменные из базового record. По умолчанию это документ, по которому идет бизнес-процесс. Обращение происходит напрямую к атрибутам record.
Переменные процесса. Через переменную
$processдоступны переменные процесса на момент отправки уведомления.Переменные событий Citeck. Доступны через переменную
$process.event.Контекстные переменные Records API
Также в самом шаблоне уведомлений доступны сервисы шаблонизатора.
Пример использования переменных в шаблоне
Для примера используем event sub process, который реагирует на событие добавления нового комментария и отправляет уведомление.
Шаблон уведомления содержит модель:
"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"
}
Шаблон уведомления содержит текст:
В результате получим следующее уведомление:
Если необходимо отправить сообщение о добавлении комментария с вложением (реакция на событие добавления комментария), то нужно добавить в модель уведомления атрибут:
"model": {
"_attachments": "$process.event.attachments[]._as.ref._content{bytes, meta:?json}"
}