JUEL-функції у бізнес-процесах

Документ у процесі оновлення.

1. Загальний опис

У Camunda ви можете використовувати скрипти в різних місцях бізнес-процесу. Наприклад, при роботі зі Script Task. Camunda Engine підтримує скриптування мовами JavaScript, Groovy або JUEL тощо.

У розрізі Платформи реєстрів реалізовано підтримку скриптування за допомогою Groovy та JUEL (Java Unified Expression Language) — уніфікованої скриптової мови виразів Java — з використанням спеціальних розроблених JUEL-функцій.

Використовуйте платформні JUEL-функції для спрощення моделювання бізнес-процесів. Наразі імплементовано такі функції та їх автодоповнення у візуальному редакторі коду:

Детальніше про використання редактор коду ви можете переглянути на сторінці Редагування скриптів бізнес-процесів у візуальному редакторі коду.

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) — назву системи/сервісу, до якої необхідно виконати запит. Наприклад:

Приклад 2. Використання get_trembita_auth_token() у скрипті
def registryAuthSecretValue = get_trembita_auth_token('trembita-registry-test')
  • trembita-registry-test — назва системи у СЕВ ДЕІР "Трембіта".

Детальніше про роботу функції та її використання у бізнес-процесах ви можете переглянути у статті Загальний Trembita SOAP-конектор.