Відправлення повідомлень користувачам: Send User Notification (v1)
1. Загальна інформація
Інтеграційне розширення Send User Notification дозволяє налаштовувати автоматичне надсилання повідомлень користувачам через внутрішні та зовнішні канали в рамках бізнес-процесу. Делегат дозволяє адаптувати формат і зміст повідомлень на основі динамічних шаблонів у регламенті, а також вибирати Keycloak-реалми доставлення. Використовується у завданнях типу Send Task.
Назва | Пояснення |
---|---|
Бізнес-назва інтеграційного розширення |
Send User Notification |
Службова назва інтеграційного розширення |
|
Назва файлу у бібліотеці розширень |
|
2. Перед початком
Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. |
3. Налаштування
Делегат Send User Notification призначений для використання у завданнях типу Send Task бізнес-процесу. Він дозволяє налаштувати ключові параметри відправки повідомлень, включаючи отримувача, шаблон, тему повідомлення, мовні налаштування та реалми доставлення.
Повідомлення можуть надсилатися через кілька каналів, включаючи inbox, електронну пошту або мобільний додаток "ДіЯ" (за умови їхньої активації). |
3.1. Налаштування завдання
-
Створіть завдання типу Send Task у бізнес-процесі.
-
Назвіть завдання, наприклад,
Відправка повідомлення в inbox
. -
Застосуйте шаблон делегата, обравши Send User Notification у списку налаштувань завдання.
3.2. Налаштування делегата
Для налаштування делегата вкажіть наступні параметри:
- Recipient
-
У полі Recipient вкажіть ідентифікатор отримувача повідомлення. Наприклад, для відправки повідомлення ініціатору процесу, можна використати JUEL-функцію
initiator()
:${initiator().userName}
Для надсилання повідомлення користувачу, який завершив попереднє завдання, використовуйте функцію
completer()
:${completer('taskDefinitionId').userName}
де
taskDefinitionId
— ID попередньої задачі. - Realm
-
Виберіть Realm для відправлення повідомлень, залежно від типу користувача, наприклад,
CITIZEN
для отримувачів послуг абоOFFICER
для надавачів. - Subject
-
Вкажіть тему повідомлення як текст. Наприклад,
Автоматичне відправлення повідомлень у inbox-template-ubki
. Це значення визначає заголовок повідомлення уinbox
. - Notification message template
-
У полі Notification message template вкажіть назву шаблону повідомлення напряму, як константу. Наприклад,
feature-inbox-template-ubki
. Важливо, щоб назва збігалася із наявним шаблоном у регламенті вашого реєстру.Шаблон повідомлення можна також отримати динамічно, наприклад, як значення з форми процесу. Докладніше про це ви можете дізнатися на сторінці Відправлення повідомлень користувачам: Send User Notification v2.
- Notification template model
-
У полі Notification template model вкажіть змінну
${templateModel}
, яка зберігає дані для заповнення шаблону. Ця змінна створюється попереднім Groovy-скриптом і включає значення полів форми, наприклад, дату відкриття кредиту (dateCredOpen
) та ім’я кредитора (creditor
). - Notification Language
-
У полі Notification Language вкажіть мову, наприклад,
de
для німецької.Значення має відповідати стандарту ISO 639-1. Якщо поле порожнє, буде використана мова за замовчуванням у реєстрі. Для автоматичного вибору мови, обраної користувачем у Кабінеті, скористайтеся JUEL-функцією
completer()
і методомlanguage
. Наприклад:${completer(<task_id>).language}
де
<task_id>
— ідентифікатор завдання користувача у бізнес-процесі.
4. Приклад використання у бізнес-процесі
4.1. Опис бізнес-процесу
Цей бізнес-процес автоматизує відправлення повідомлень у inbox
користувача. Процес включає два ключові етапи:
-
Підготовка шаблону повідомлення.
-
Відправлення повідомлення користувачеві.
Де можна знайти приклад бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Send User Notification — делегат, який використовується у всіх бізнес-процесах, що потребують автоматичного надсилання повідомлень. Процес можна знайти за ключовими словами — feature-auto-send-inbox. У Кабінеті користувача бізнес-процес буде доступний у розділі Доступні послуги. |
4.2. Кроки процесу
-
Старт процесу:
-
Процес розпочинається подією Start Event, де ініціатором визначається користувач, який отримає повідомлення. У полі Start initiator вкажіть
initiator
.
-
-
Підготовка шаблону повідомлення:
-
Виконується завдання Script Task з Groovy-скриптом для підготовки даних шаблону.
-
Скрипт формує об’єкт
templateModel
з поточною датою та ім’ям кредитора:import java.text.SimpleDateFormat def date = new Date() def dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss") def templateModel = S([:], 'application/json') templateModel.prop("dateCredOpen", dateFormat.format(date)) templateModel.prop("creditor", "Monobank") execution.removeVariable('templateModel') set_transient_variable('templateModel', S(templateModel, 'application/json'))
Цей скрипт виконує такі кроки:
-
Створює об’єкт
templateModel
та додає до нього поляdateCredOpen
(з поточною датою) таcreditor
(значення —Monobank
). -
Зберігає
templateModel
як транзитну змінну для використання у наступному завданні.
-
-
Відправка повідомлення:
Виконується завдання Send Task з делегатом Send User Notification для відправки сформованого повідомлення користувачу. Опис налаштувань див. у розділі вище.
4.3. Результат виконання
Цей бізнес-процес автоматизує відправлення повідомлення, яке містить дані про поточну дату та кредитора. Користувач отримує повідомлення у скриньку повідомлень (inbox) Кабінету із контекстуально налаштованим змістом та визначеним заголовком.
Детальніше про локалізовані повідомлення у реєстрі див. на сторінці registry-admin/user-notifications/localized-notifications.adoc. |