Функція completer()

1. Опис

JUEL-функція completer(String taskDefinitionKey): UserDto використовується для отримання даних про виконавця / завершувача завдання користувача (User Task) в рамках бізнес-процесу.

2. Параметри

Таблиця 1. Параметри функції

Аргумент

Опис

taskDefinitionKey

Ключ завдання, для якого потрібно отримати дані завершувача.

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

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

Таблиця 2. UserDto

Поле

Опис

userName

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

accessToken

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

language

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

drfo

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

edrpou

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

fullName

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

roles

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

subjectType

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

isRepresentative

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

attributes

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

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

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

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

Таблиця 3. Методи взаємодії

Метод

Опис

getUserName()

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

getAccessToken()

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

getLanguage()

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

getDrfo()

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

getEdrpou()

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

getFullName()

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

getRoles()

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

getSubjectType()

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

isRepresentative()

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

getAttributes()

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

Функція completer() доступна для використання після успішного завершення користувацької задачі.

Ця функція корисна, коли вам потрібно отримати інформацію про користувача, який завершив певне завдання у бізнес-процесі. Замість того, щоб робити прямі запити до API контексту виконання, ви можете використовувати цю JUEL-функцію прямо в Groovy-редакторі.

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

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

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

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

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

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

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

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

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

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

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

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

Приклад. Отримання токена доступу завершувача процесу для виконання наступного завдання
${completer('Task definition ID').accessToken}
  • 'Task definition ID' — ID попередньої задачі користувача.

Застосування функції completer() детально представлено у референтному прикладі на сторінці Вибір та виконання дій з одного чи декількох рядків у таблиці.

Приклад 2. Отримання мови виконавця завдання

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

Приклад. Отримання мови завершувача завдання для налаштування локалізації
${completer('Task definition ID').language}
  • 'Task definition ID' — ID попередньої задачі користувача.

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