Функція initiator()

1. Опис

JUEL-функція initiator(): UserDto використовується для отримання та подальшого використання ініціатора (initiator) в процесі.

2. Параметри

Ця функція не приймає параметрів.

3. Що повертає

Ця функція повертає об’єкт типу UserDto, що містить дані про ініціатора процесу.

Таблиця 1. UserDto

Поле

Опис

userName

Ім’я користувача.

accessToken

Токен користувача.

language

Мова користувача.

drfo

Ідентифікаційний код користувача.

edrpou

Код ЄДРПОУ користувача.

fullName

Повне ім’я користувача.

roles

Ролі користувача.

subjectType

Тип суб’єкта користувача.

isRepresentative

Чи є користувач представником.

attributes

Інші атрибути користувача у вигляді ключів-значень.

Клас UserDto є обгорткою даних користувача.

4. Методи взаємодії

Функція надає наступні методи:

Метод

Опис

getUserName()

Повертає ім’я користувача, що можна використовувати в полях Assignee та Candidate Users задач користувача.

getAccessToken()

Повертає токен користувача, що можна використовувати в інтеграційних конекторах для інтеграції від імені користувача.

getLanguage()

Повертає мову користувача, що можна використовувати для налаштування інтерфейсу.

getDrfo()

Делегує виклик на JwtClaimsDto та повертає Keycloak-атрибут drfo користувача.

getEdrpou()

Делегує виклик на JwtClaimsDto та повертає Keycloak-атрибут edrpou користувача.

getFullName()

Делегує виклик на JwtClaimsDto та повертає Keycloak-атрибут fullName користувача.

getRoles()

Повертає ролі користувача.

getSubjectType()

Повертає тип суб’єкта користувача.

isRepresentative()

Повертає, чи є користувач представником.

getAttributes()

Повертає інші атрибути користувача у вигляді ключів-значень.

Токен ініціатора, а разом з ним і всі атрибути Keycloak, будуть доступні ЛИШЕ до першої користувацької задачі (User Task) у бізнес-процесі. Надалі використовуйте токен completer().

5. Приклади використання

Цей розділ демонструє приклади використання JUEL-функцій у завданнях бізнес-процесу для налаштування локалізації та отримання інформації про користувача.

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

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

Еталонний регламент з прикладами для України зберігається в репозиторії ua-registry-demo-regulation.

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

Застосування функції initiator() представлено у багатьох бізнес-процесах.

Ви можете використати один із багатьох прикладів процесів за пошуком по ключовим словам — officer-selfregistration-handmoderation.

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

Існує декілька варіантів використання функції initiator() у бізнес-процесі.

Приклад 1. Використання функції initiator().accessToken

Один із найбільш розповсюджених сценаріїв — застосування функції в інтеграційних розширеннях (делегатах) для передачі X-Access-Token у бізнес-процесі, тобто токена доступу користувача, під яким виконується операція. Цей токен забезпечує повноваження виконавця задачі щодо доступу до даних.

Приклад. Отримання токена доступу ініціатора процесу для виконання завдання
${initiator().accessToken}

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

Другий можливий варіант використання — передача параметрів ключ-значення (map) із даними користувача, наприклад, для автентифікації. Надсилати такі параметри можна через Подію "Повідомлення". Ця подія відправляє інформацію про користувача (ПІБ, РНОКПП, ЄДРПОУ) до іншого учасника процесу або іншого процесу.

Приклад. Отримання імені користувача
${initiator().userName}

Приклад 3. Отримання мови ініціатора процесу

Платформа також надає можливість отримати мову користувача, який ініціював бізнес-процес або виконував операцію над задачею, для використання на наступних етапах процесу як параметр. Значення за замовчуванням береться з поточної локалі реєстру. Коли клієнтський додаток виконує запит до сервісів user-task-management або user-process-management, значення HTTP-заголовка Accept-Language зберігається разом із JWT-токеном користувача в БД Redis для подальшого доступу через JUEL-функцію initiator().language.

Приклад. Отримання мови користувача для налаштування локалізації
${initiator().language}

Ця функція дозволяє використовувати мовні параметри на наступних кроках бізнес-процесу, щоб забезпечити коректне відображення інтерфейсу або повідомлень відповідно до мовних уподобань користувача.