Відправлення повідомлень користувачам: 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. | 
