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

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

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

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

Перелік доступних функцій:
  1. Функція initiator().

  2. Функція completer().

  3. Функція submission().

  4. Функція sign_submission(<activity_id|event_id>).

  5. Функція system_user().

1. Функція 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) у бізнес-процесі.

2. Функція 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>) доступна для використання після успішного завершення користувацької задачі.

3. Функція submission()

Функція submission(<activity_id|event_id>) дозволяє отримати дані форми користувацької задачі та повертає клас UserFormDataDto.

UserFormDataDto — клас, що є обгорткою даних форми користувача.
Функція submission(<activity_id|event_id>) доступна для використання після успішного завершення користувацької задачі або стартової форми.

4. Функція sign_submission()

Функція sign_submission(<activity_id|event_id>) використовується для отримання підпису та даних форми користувацьких задач.
Повертає клас SignUserFormDataDto.

SignUserFormDataDto — клас, що є обгорткою для даних форми користувача, підпису та ключа CEPH-документа, де зберігається підпис.
Функція sign_submission(<activity_id|event_id>) доступна для використання після успішного завершення задачі, що потребує валідації підписом користувача, або стартової форми.

5. Функція 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 користувача.