Налаштування бізнес-ключів у бізнес-процесах

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

Бізнес-ключ або Ключ бізнес-процесу (Business Key) — це специфічний для домену ідентифікатор екземпляра бізнес-процесу у Camunda BPM. Він є додатковим атрибутом, що застосовується при моделюванні бізнес-процесів для їх однозначної ідентифікації, а також ідентифікації користувацьких задач процесу.

Example 1. Приклад. Пошук екземпляра процесу за бізнес-ключем
Розглянемо абстрактний приклад:

У нас є процес, який відправляє замовлення книжок, і ми керуємо своїми замовленнями у вторинній базі даних, де кожне замовлення ідентифікується за ID. Тепер, коли ми починаємо процес доставлення замовлення, ми можемо пов’язати екземпляр процесу безпосередньо із замовленням, використовуючи ідентифікатор замовлення як бізнес-ключ.

Коли необхідно знайти екземпляр процесу, ми можемо просто зробити запит за ідентифікатором нашого замовлення:

RuntimeService runtimeService = ..;
String orderId = ..;

ProcessInstance shipmentInstance = runtimeService
  .createProcessInstanceQuery()
  .processInstanceBusinessKey(orderId)
  .singleResult();
Аргумент orderId і є бізнес-ключем для пошуку замовлення.

В реальному житті доставка замовлення може бути набагато складнішим процесом та включати кілька процесів або підпроцесів. Ми можемо пов’язати їх усі разом за допомогою одного бізнес-ключа.

Таким чином, ми можемо знайти всі екземпляри процесу, пов’язані з конкретним замовленням клієнта, за допомогою простого запита.

Бізнес-ключем може виступати будь-який один атрибут або сполучення бізнес-значимих атрибутів конкретного бізнес-процесу чи користувацької задачі.

За допомогою бізнес-ключа користувач може відрізнити один бізнес-процес від іншого (або одну користувацьку задачу від іншої) в переліку бізнес-задач особистих Кабінетів посадової особи та отримувача послуг.

Детальніше про бізнес-ключі — за посиланням.

2. Налаштування бізнес-ключа на старті процесу

Для налаштування бізнес-ключа на старті бізнес-процесу необхідно виконати наступні кроки:

  1. Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN, натиснувши кнопку BPMN diagram. В результаті з`явиться вікно нової діаграми.

    bp 1

  1. Перетягніть елемент Create Pool/Participant до панелі моделювання (див. Додавання елемента Create pool/Participant).

Моделювання діаграми бізнес-процесу має відбуватися в рамках елемента Create Pool/Participant.
  1. Додайте та налаштуйте початкову подію:

    • З панелі інструментів зліва перетягніть елемент коло (Create StartEvent) до панелі моделювання.

      bp keys create start event
      bp keys create start event 1
    • Виділіть елемент Create StartEvent та на панелі налаштувань справа сконфігуруйте початкову подію:

      • На вкладці General налаштуйте основні параметри для старту бізнес-процесу (див. Налаштування початкової події).

      • На вкладці Forms, у полі Form key, вкажіть службову назву форми, параметри якої передаватимуться функції submission() при виконанні процесу.

        bp keys create start event 02
      • На вкладці Extensions налаштуйте параметри бізнес-ключів:

        • У полі Add Property натисніть + (позначку плюса) та зазначте такі налаштування:

          • для параметра Name вкажіть businessKeyExpression;

          • у полі Value вкажіть вираз, що встановлює значення бізнес-ключа, використовуючи функцію submission() (див. Функція submission()).

            bp keys create start event 2
            Example 2. Приклад. Функція submission()
            ${submission('<id початкової події>').formData.prop('<Property Name атрибут1>').value()+" "+submission('<id початкової події>').formData.prop('<Property Name атрибут2>').value()}

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

    Для Кабінетів користувача (посадової особи та отримувача послуг реєстру) результатом виразу businessKeyExpression є текстове поле, що складається із конкатенованих, тобто поєднаних, значень атрибутів полів, вказаних у виразі.

Example 3. Приклад. Налаштування бізнес-ключів у процесі внесення паспортних даних особи
Розглянемо приклад

Налаштуємо бізнес-ключі у процесі внесення паспортних даних особи із використанням функції submission().

  1. При моделюванні вказуємо для параметра businessKeyExpression (вираз бізнес-ключа) наступне значення:

    Приклад. Функція submission()
    ${submission('<id початкової події>').formData.prop('<Property Name  атрибут1>').value()+" "+submission('id початкової події ').formData.prop('<Property Name атрибут2>').value()}
    • Змінній <Property Name атрибут1> може відповідати, наприклад, параметр surname (прізвище користувача).

    • Змінній <Property Name атрибут2> може відповідати, наприклад, параметр name (ім’я користувача).

    • Змінна <id початкової події> повинна містити ідентифікатор початкової події, в рамках якої застосовуються бізнес-ключі. ID призначається автоматично при моделюванні події, але може також визначатися вручну (наприклад, StartEvent_1).

  1. Підставимо необхідні значення змінних та отримаємо такий вираз:

    Приклад. Функція submission() із підстановкою параметрів
    ${submission('StartEvent_1').formData.prop('surname').value()+" "+submission('StartEvent_1').formData.prop('name').value()}
  1. В результаті, на інтерфейсі користувацьких форм сформований бізнес-ключ буде представлено двома полями: Прізвище (API-атрибут — surname) та Ім’я (API-атрибут — name).

3. Налаштування бізнес-ключа на старті процесу, що ініційований стартовою подією «Повідомлення»

Для налаштування бізнес-ключа на старті бізнес-процесу, що ініційований стартовою подією «Повідомлення», необхідно виконати наступні кроки:

  1. Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN, натиснувши кнопку BPMN diagram. В результаті з`явиться вікно нової діаграми.

    bp 1

  1. Перетягніть елемент Create Pool/Participant до панелі моделювання (див. Додавання елемента Create pool/Participant).

Моделювання діаграми бізнес-процесу має відбуватися в рамках елемента Create Pool/Participant.
  1. Додайте та налаштуйте початкову подію:

    • З панелі інструментів зліва перетягніть елемент коло (Create StartEvent) до панелі моделювання.

      bp keys create start event
      bp keys create start event 1
    • Виділіть елемент Create StartEvent, натисніть на іконку ключа та оберіть тип стартової події, що ініціює бізнес-процес, — Message Start Event.

      bp keys create start message event

    • На панелі налаштувань справа сконфігуруйте початкову подію:

      • На вкладці General налаштуйте параметри події.

        За детальною інформацією щодо налаштування події «Повідомлення» зверніться до сторінки Налаштування стартової події «Повідомлення».
      • На вкладці Extensions налаштуйте параметри бізнес-ключа:

        • У полі Add Property натисніть + (позначку плюса) та вкажіть такі налаштування:

          • для параметра Name вкажіть businessKeyExpression;

          • у полі Value вкажіть вираз, що встановлює значення бізнес-ключа, використовуючи функцію submission() (див. Функція submission()).

    bp keys create start message event 1

Приклад використання бізнес-ключів за допомогою функції submission() дивіться у розділі Приклад. Налаштування бізнес-ключів у процесі внесення паспортних даних особи.

4. Налаштування бізнес-ключа на етапі виконання процесу

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

Для моделювання та налаштування бізнес-ключа, бізнес-процес має містити хоча б одну попередньо змодельовану користувацьку форму (користувацька задача або стартова подія).

Для налаштування бізнес-ключа на етапі виконання процесу, необхідно виконати наступні кроки:

  1. Додайте сервісну задачу до бізнес-процесу:

    • Вкажіть тип задачі, натиснувши іконку ключа (Change type) та оберіть з меню пункт Service Task.

      bp keys process stage service task
  2. Виділіть сервісну задачу, відкрийте вкладку General та перейдіть до каталогу шаблонів. Для цього у полі Template натисніть кнопку Open Catalog та оберіть відповідний шаблон Define process business key.

  3. Натисніть Apply для підтвердження.

    bp keys process stage
    bp keys process stage 1
  4. На панелі налаштувань сконфігуруйте наступні параметри:

    • У полі Name введіть назву сервісної задачі (тут — Сервісна задача 1).

    • У полі Business key вкажіть вираз, що встановлює значення бізнес-ключа, використовуючи функцію submission() (див. Функція submission()):

      Example 4. Приклад. Функція submission()
      ${submission('<id початкової події/ User Form id>').formData.prop('<Property Name атрибут1>').value()+" "+submission('<id початкової події/ User Form id').formData.prop('<Property Name атрибут2>').value()}
      Приклад використання бізнес-ключів у функції submission() дивіться у розділі Приклад. Налаштування бізнес-ключів у процесі внесення паспортних даних особи.

      bp keys process stage template params

В результаті сервісна задача є налаштованою та доступною у бізнес-процесі.

5. Налаштування бізнес-ключів на прикладі екземпляра користувацької задачі

5.1. Налаштування бізнес-ключів за допомогою функції submission()

Ключі бізнес-процесів, налаштовані в рамках моделювання BPMN-діаграм, відображаються у користувацьких формах під час проходження процесу користувачем.

Розглянемо приклад такого відображення бізнес-ключів у користувацьких формах із застосуванням JUEL-функції submission(), що використовується при моделюванні бізнес-процесів.

Застосування такої функції у процесі наочно показано в рамках розділу Налаштування бізнес-ключа на старті процесу.
Example 5. Приклад. Використання атрибутів бізнес-ключів у функції submission()
${submission('Usertask').formData.prop('<Property Name атрибут1>').value()+" "+submission('Usertask').formData.prop('<Property Name атрибут2>').value()}

Параметр Usertask є ідентифікатором користувацької задачі Користувацька задача 1 (див. зображення нижче).

Таким чином для бізнес-ключів, що налаштовуються у Сервісній задачі 1, використовуються атрибути із Користувацької задачі 1. Дані налаштовуються за допомогою функції submission().

Заповніть поле Form key значенням службової назви попередньо змодельованої форми — add-usertask.

bp keys process stage template params userform

Змінні <Property Name атрибут1> та <Property Name атрибут2> — параметри поля Property Name, що використовуються для API-форм користувача (вкладка API) в Кабінеті адміністратора регламентів.

5.2. Моделювання користувацьких форм для налаштування бізнес-ключів

За детальною інформацією щодо процесу моделювання форм дивіться на сторінці Процес моделювання форм.

Щоб змоделювати користувацькі форми для подальшого налаштування ключів бізнес-процесу, необхідно виконати наступні кроки:

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

  2. На панелі компонентів зліва оберіть компонент Text Field та перетягніть його до панелі моделювання.

    bp keys admin portal form 1

  3. У вікні, що відкрилося, перейдіть на вкладку Display та у полі Label введіть значення змінної <Property Name атрибут 1> — Прізвище.

    bp keys admin portal form 4

  4. Перейдіть на вкладку API та у полі Property Name введіть службову назву атрибута Прізвище, що використовуватиметься у функції submission() при моделюванні бізнес-процесу в Camunda, тобто параметр для API-ендпоінту (тут — surname).

  5. Натисніть кнопку Save, щоб зберегти зміни.

    bp keys admin portal form 5

  6. На панелі компонентів зліва оберіть новий компонент Text Field та перетягніть його до панелі моделювання.

  7. У вікні, що відкрилося, на вкладці Display, у полі Label введіть значення змінної <Property Name атрибут 2> — Ім’я.

    bp keys admin portal form 2

  8. Перейдіть на вкладку API та у полі Property Name введіть службову назву атрибута Ім’я, що використовуватиметься у функції submission() при моделюванні бізнес-процесу в Camunda, тобто параметр для API-ендпоінту (тут — name).

  9. Натисніть кнопку Save, щоб зберегти зміни.

    bp keys admin portal form 3

    В результаті отримаємо форму бізнес-процесу із двома полями для вводу даних користувача, що виконуватимуть роль бізнес-ключів (surname та name).

  10. Збережіть змодельовану користувацьку форму, натиснувши кнопку Створити форму у правому верхньому куті.

    bp keys admin portal form 6

  11. Приєднайте створену форму до бізнес-процесу за службовою назвою форми:

    • У полі Form key при моделюванні бізнес-процесу введіть значення параметра Службова назва форми (тут — add-usertask).

6. Відображення бізнес-ключів у Кабінеті користувача

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

Бізнес-ключі визначаються та налаштовуються на формах, і застосовуються при моделюванні процесів із використанням JUEL-функцій. В результаті змодельовані ключі відображатимуться у Кабінеті користувача як ідентифікатори послуг або задач.

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

bp keys officer portal bp

Приклад. Відображення бізнес-ключа/ідентифікатора задачі бізнес-процесу в Кабінеті посадової особи

bp keys officer portal task