Відправлення повідомлень користувачам: Send User Notification v2
1. Загальна інформація
Інтеграційне розширення Send User Notification v2 дозволяє налаштовувати автоматичне надсилання повідомлень користувачам через внутрішні та зовнішні канали в рамках бізнес-процесу. Делегат дозволяє адаптувати формат і зміст повідомлень на основі динамічних шаблонів у регламенті, а також вибирати Keycloak-реалми доставлення. Використовується у завданнях типу Send Task.
Назва | Пояснення |
---|---|
Бізнес-назва інтеграційного розширення |
Send User Notification v2 |
Службова назва інтеграційного розширення |
|
Назва файлу у бібліотеці розширень |
|
2. Перед початком
Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. |
3. Налаштування
Делегат Send User Notification v2 призначений для використання у завданнях типу Send Task бізнес-процесу. Він дозволяє налаштувати ключові параметри відправки повідомлень, включаючи отримувача, шаблон, мовні налаштування, та реалми доставлення.
Повідомлення можуть надсилатися через кілька каналів, включаючи inbox, електронну пошту або мобільний додаток "ДіЯ" (за умови їхньої активації). |
3.1. Налаштування завдання
-
Створіть завдання типу Send Task у бізнес-процесі.
-
Назвіть завдання, наприклад,
Відправлення повідомлення в inbox
. -
Застосуйте шаблон делегата, обравши Send User Notification v2 у списку налаштувань завдання.
3.2. Налаштування делегата
Для налаштування делегата вкажіть наступні параметри:
- Recipient
-
У полі Recipient вкажіть ідентифікатор отримувача повідомлення. Наприклад, для відправки повідомлення ініціатору процесу, можна використати JUEL-функцію
initiator()
:${initiator().userName}
Для надсилання повідомлення користувачу, який завершив попереднє завдання, використовуйте функцію
completer()
:${completer('taskDefinitionId').userName}
де
taskDefinitionId
— ID попередньої задачі. - Realm
-
Виберіть Realm для відправлення повідомлень, залежно від типу користувача, наприклад,
CITIZEN
для отримувачів послуг абоOFFICER
для надавачів. - Notification message template
-
У полі Notification message template вкажіть шаблон повідомлення. Для динамічного визначення шаблону за значенням форми, використовуйте JUEL-функцію
submission()
. Наприклад, цей вираз отримає значення шаблону зі стартової форми у бізнес-процесі:${submission('start').formData.prop('templateName').value()}
Шаблон можна налаштувати як константний, вказавши назву шаблону повідомлення напряму. Головне, щоб значення цього поля збігалося із назвою шаблону у регламенті реєстру. Наприклад, business-process-notification-template
. - 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. Опис бізнес-процесу
Цей бізнес-процес автоматизує відправлення повідомлень у канали користувача, якщо вони увімкнені. Процес включає два ключові етапи:
-
Підготовка шаблону повідомлення.
-
Відправлення повідомлення користувачеві.
Де можна знайти приклад бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Еталонний регламент з прикладами для України зберігається в репозиторії Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Send User Notification v2 — делегат, який використовується у всіх бізнес-процесах, які потребують відправлення повідомлень користувачам у різні канали зв’язку. Ви можете використати один із багатьох прикладів процесів за пошуком по ключовим словам — feature-bpmn-send-inbox-with-form. У Кабінеті користувача бізнес-процес буде доступний у розділі Доступні послуги. |
4.2. Кроки процесу
-
Старт процесу:
-
Процес розпочинається подією Start Event, де завантажуються необхідні дані з форми, заповненої користувачем.
-
На цьому етапі визначаються динамічні параметри, як-от назва шаблону повідомлення
templateName
.
-
-
Підготовка шаблону повідомлення:
-
Виконується завдання Script Task з Groovy-скриптом для підготовки даних шаблону.
-
Скрипт формує об’єкт
templateModel
зі значеннями, отриманими з форми:import groovy.json.JsonSlurper def formData = submission('start').formData println "formData: " + formData def templateModel = S([:], 'application/json') templateModel.prop("dateCredOpen", formData.prop("dateCredOpen").value()) templateModel.prop("creditor", formData.prop("creditor").value()) execution.removeVariable('templateModel') set_transient_variable('templateModel', S(templateModel, 'application/json'))
Цей скрипт виконує такі кроки:
-
Отримує дані з форми
formData
, зокрема поляdateCredOpen
іcreditor
. -
Створює JSON-об’єкт
templateModel
із зазначеними даними. -
Зберігає змінну
templateModel
як транзитну, щоб зробити її доступною для наступного етапу.
-
-
Відправка повідомлення:
Виконується завдання Send Task з делегатом Send User Notification v2 для відправки сформованого повідомлення користувачу. Опис налаштувань див. у розділі вище.
4.3. Результат виконання
Цей бізнес-процес автоматизує відправлення повідомлень, що містить дані про відкриття кредиту. Користувач отримає повідомлення у скриньку повідомлень (inbox) Кабінету, а також через інші канали зв’язку (якщо вони активовані), із відповідною мовною локалізацією та контекстуально налаштованим змістом повідомлення.
Детальніше про локалізовані повідомлення у реєстрі див. на сторінці registry-admin/user-notifications/localized-notifications.adoc. |