Відправлення повідомлень користувачам: Send User Notification (v1)

1. Загальна інформація

Інтеграційне розширення Send User Notification дозволяє налаштовувати автоматичне надсилання повідомлень користувачам через внутрішні та зовнішні канали в рамках бізнес-процесу. Делегат дозволяє адаптувати формат і зміст повідомлень на основі динамічних шаблонів у регламенті, а також вибирати Keycloak-реалми доставлення. Використовується у завданнях типу Send Task.

Таблиця 1. Короткі відомості про делегат
Назва Пояснення

Бізнес-назва інтеграційного розширення

Send User Notification

Службова назва інтеграційного розширення

${sendUserNotificationDelegate}

Назва файлу у бібліотеці розширень

sendUserNotification.json

2. Перед початком

Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки.

При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень.

3. Налаштування

Делегат Send User Notification призначений для використання у завданнях типу Send Task бізнес-процесу. Він дозволяє налаштувати ключові параметри відправки повідомлень, включаючи отримувача, шаблон, тему повідомлення, мовні налаштування та реалми доставлення.

Повідомлення можуть надсилатися через кілька каналів, включаючи inbox, електронну пошту або мобільний додаток "ДіЯ" (за умови їхньої активації).

3.1. Налаштування завдання

  1. Створіть завдання типу Send Task у бізнес-процесі.

  2. Назвіть завдання, наприклад, Відправка повідомлення в inbox.

  3. Застосуйте шаблон делегата, обравши Send User Notification у списку налаштувань завдання.

    send user notification 4

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 користувача. Процес включає два ключові етапи:

  1. Підготовка шаблону повідомлення.

  2. Відправлення повідомлення користувачеві.

Де можна знайти приклад бізнес-процесу?

Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого.

Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами.

Send User Notification — делегат, який використовується у всіх бізнес-процесах, що потребують автоматичного надсилання повідомлень.

Процес можна знайти за ключовими словами — feature-auto-send-inbox.

send user notification 0

У Кабінеті користувача бізнес-процес буде доступний у розділі Доступні послуги.

4.2. Кроки процесу

  1. Старт процесу:

    • Процес розпочинається подією Start Event, де ініціатором визначається користувач, який отримає повідомлення. У полі Start initiator вкажіть initiator.

      send user notification 1

  2. Підготовка шаблону повідомлення:

    • Виконується завдання Script Task з Groovy-скриптом для підготовки даних шаблону.

      send user notification 2

    • Скрипт формує об’єкт 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 як транзитну змінну для використання у наступному завданні.

  3. Відправка повідомлення:

    Виконується завдання Send Task з делегатом Send User Notification для відправки сформованого повідомлення користувачу. Опис налаштувань див. у розділі вище.

    send user notification 3

4.3. Результат виконання

Цей бізнес-процес автоматизує відправлення повідомлення, яке містить дані про поточну дату та кредитора. Користувач отримує повідомлення у скриньку повідомлень (inbox) Кабінету із контекстуально налаштованим змістом та визначеним заголовком.

Детальніше про локалізовані повідомлення у реєстрі див. на сторінці registry-admin/user-notifications/localized-notifications.adoc.