JUEL-функції у бізнес-процесах
Документ у процесі оновлення. |
1. Загальний опис
У Camunda ви можете використовувати скрипти в різних місцях бізнес-процесу. Наприклад, при роботі зі Script Task. Camunda Engine підтримує скриптування мовами JavaScript, Groovy або JUEL тощо.
У розрізі Платформи реєстрів реалізовано підтримку скриптування за допомогою Groovy та JUEL (Java Unified Expression Language) — уніфікованої скриптової мови виразів Java — з використанням спеціальних розроблених JUEL-функцій.
Використовуйте платформні JUEL-функції для спрощення моделювання бізнес-процесів. Наразі імплементовано такі функції та їх автодоповнення у візуальному редакторі коду:
-
get_variable()
-
set_variable()
-
set_transient_variable()
-
process_caller()
-
message_payload()
Детальніше про використання редактор коду ви можете переглянути на сторінці Редагування скриптів бізнес-процесів у візуальному редакторі коду. |
2. Функція initiator()
Функція initiator()
призначена для отримання та подальшого використання ініціатора (initiator
) в процесі.
Повертає клас UserDto
.
UserDto — клас, що є обгорткою даних користувача (тут — ініціатора).
Завжди містить у собі userName , токен і JwtClaimsDto (дані для авторизації) до першої задачі користувача.
|
Методи взаємодії
Функція надає наступні методи:
-
getUserName()
— повертає ім’я користувача, що можна використовувати в поляхAssignee
таCandidate Users
задач користувача. -
getAccessToken()
— повертає токен користувача, що можна використовувати в інтеграційних конекторах для інтеграції від імені користувача. -
getDrfo()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутdrfo
користувача. -
getEdrpou()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутedrpou
користувача. -
getFullName()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутfullName
користувача.
Токен ініціатора, а разом з ним і всі атрибути Keycloak, будуть доступні тільки до першої користувацької задачі (User Task) у бізнес-процесі. |
3. Функція completer()
Функція completer(<task_id>)
дозволяє отримати виконавця користувацької задачі для подальшого використання у процесі.
Повертає клас UserDto
.
UserDto — клас, що є обгорткою даних користувача (тут — ініціатора).
Завжди містить у собі userName , токен і JwtClaimsDto (дані для авторизації).
|
Методи взаємодії
Функція надає наступні методи:
-
getUserName()
— повертає ім’я користувача, що можна використовувати в поляхAssignee
таCandidate Users
задач користувача. -
getAccessToken()
— повертає токен користувача, що можна використовувати в інтеграційних конекторах для інтеграції від імені користувача. -
getDrfo()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутdrfo
користувача. -
getEdrpou()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутedrpou
користувача. -
getFullName()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутfullName
користувача.
Функція completer(<task_id>) доступна для використання після успішного завершення користувацької задачі.
|
4. Функція submission()
Функція submission(<activity_id|event_id>)
дозволяє отримати дані форми користувацької задачі та повертає клас UserFormDataDto
.
UserFormDataDto — клас, що є обгорткою даних форми користувача.
|
Функція submission(<activity_id|event_id>) доступна для використання після успішного завершення користувацької задачі або стартової форми.
|
5. Функція sign_submission()
Функція sign_submission(<activity_id|event_id>)
використовується для отримання підпису та даних форми користувацьких задач.
Повертає клас SignUserFormDataDto
.
SignUserFormDataDto — клас, що є обгорткою для даних форми користувача, підпису та ключа CEPH-документа, де зберігається підпис.
|
Функція sign_submission(<activity_id|event_id>) доступна для використання після успішного завершення задачі, що потребує валідації підписом користувача, або стартової форми.
|
6. Функція system_user()
Функція system_user()
необхідна для отримання системного користувача з Keyclock.
Повертає клас UserDto
.
UserDto — клас, що є обгорткою даних користувача (тут — ініціатора).
Завжди містить у собі userName , токен і JwtClaimsDto .
|
Методи взаємодії
Функція надає наступні методи:
-
getUserName()
— повертає ім’я користувача, що можна використовувати в поляхAssignee
таCandidate Users
задач користувача. -
getAccessToken()
— повертає токен користувача, що можна використовувати в інтеграційних конекторах для інтеграції від імені користувача. -
getDrfo()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутdrfo
користувача. -
getEdrpou()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутedrpou
користувача. -
getFullName()
— делегує виклик наJwtClaimsDto
та повертає Keycloak-атрибутfullName
користувача.
7. Функція save_digital_document_from_url()
Функція save_digital_document_from_url()
дозволяє отримувати цифрові файли/документи за віддаленою адресою від публічних API, тобто таких, що не потребують автентифікації. ЇЇ можна використовувати для спрощення моделювання бізнес-процесів у скриптах.
- Функція може приймати 2 вхідні параметри:
-
-
URL цифрового документа
-
Назва файлу
Можливо отримати лише один документ за один запит до зовнішнього джерела. Обидва параметри є рядком (
String
), тому моделювальник може передати функції фактично будь-який аргумент:Приклад 1. Шаблон функціїsave_digital_document_from_url(String remoteFileUrl, String targetFileName)
-
Детальніше про роботу функції та її використання у бізнес-процесах ви можете переглянути на сторінці Завантаження цифрових документів за зовнішнім посиланням. |
8. Функція get_trembita_auth_token()
Функція get_trembita_auth_token()
дозволяє отримати токен авторизації для доступу до сервісів СЕВ ДЕІР "Трембіта", з якими попередньо налаштовано взаємодію. Така взаємодія конфігурується в інтерфейсі адміністративної панелі Control Plane (див. детальніше — Налаштування взаємодії з реєстрами через ШБО "Трембіта" у Control Plane).
Функція застосовується у скрипт-задачах (Script Task) бізнес-процесів і приймає один параметр (String
) — назву системи/сервісу, до якої необхідно виконати запит. Наприклад:
def registryAuthSecretValue = get_trembita_auth_token('trembita-registry-test')
-
trembita-registry-test
— назва системи у СЕВ ДЕІР "Трембіта".
Детальніше про роботу функції та її використання у бізнес-процесах ви можете переглянути у статті Загальний Trembita SOAP-конектор. |