Налаштування бізнес-ключів у бізнес-процесах
- 1. Загальний опис
- 2. Налаштування бізнес-ключа на старті процесу
- 3. Налаштування бізнес-ключа на старті процесу, що ініційований стартовою подією «Повідомлення»
- 4. Налаштування бізнес-ключа на етапі виконання процесу
- 5. Налаштування бізнес-ключів на прикладі екземпляра користувацької задачі
- 6. Відображення бізнес-ключів у Кабінеті користувача
1. Загальний опис
Бізнес-ключ або Ключ бізнес-процесу (Business Key) — це специфічний для домену ідентифікатор екземпляра бізнес-процесу у Camunda BPM. Він є додатковим атрибутом, що застосовується при моделюванні бізнес-процесів для їх однозначної ідентифікації, а також ідентифікації користувацьких задач процесу.
- Розглянемо абстрактний приклад:
-
У нас є процес, який відправляє замовлення книжок, і ми керуємо своїми замовленнями у вторинній базі даних, де кожне замовлення ідентифікується за ID. Тепер, коли ми починаємо процес доставлення замовлення, ми можемо пов’язати екземпляр процесу безпосередньо із замовленням, використовуючи ідентифікатор замовлення як бізнес-ключ.
Коли необхідно знайти екземпляр процесу, ми можемо просто зробити запит за ідентифікатором нашого замовлення:
RuntimeService runtimeService = ..; String orderId = ..; ProcessInstance shipmentInstance = runtimeService .createProcessInstanceQuery() .processInstanceBusinessKey(orderId) .singleResult();Аргумент orderIdі є бізнес-ключем для пошуку замовлення.
В реальному житті доставка замовлення може бути набагато складнішим процесом та включати кілька процесів або підпроцесів. Ми можемо пов’язати їх усі разом за допомогою одного бізнес-ключа.
Таким чином, ми можемо знайти всі екземпляри процесу, пов’язані з конкретним замовленням клієнта, за допомогою простого запита.
Бізнес-ключем може виступати будь-який один атрибут або сполучення бізнес-значимих атрибутів конкретного бізнес-процесу чи користувацької задачі.
За допомогою бізнес-ключа користувач може відрізнити один бізнес-процес від іншого (або одну користувацьку задачу від іншої) в переліку бізнес-задач особистих Кабінетів посадової особи та отримувача послуг.
| Детальніше про бізнес-ключі — за посиланням. |
- Випадки використання бізнес-ключів
-
При моделюванні бізнес-ключ може застосовуватись для:
2. Налаштування бізнес-ключа на старті процесу
Для налаштування бізнес-ключа на старті бізнес-процесу необхідно виконати наступні кроки:
-
Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN, натиснувши кнопку
BPMN diagram. В результаті з`явиться вікно нової діаграми.
-
Перетягніть елемент Create Pool/Participant до панелі моделювання (див. Додавання елемента Create pool/Participant).
| Моделювання діаграми бізнес-процесу має відбуватися в рамках елемента Create Pool/Participant. |
-
Додайте та налаштуйте початкову подію:
-
З панелі інструментів зліва перетягніть елемент коло (Create StartEvent) до панелі моделювання.
-
Виділіть елемент Create StartEvent та на панелі налаштувань справа сконфігуруйте початкову подію:
-
На вкладці General налаштуйте основні параметри для старту бізнес-процесу (див. Налаштування початкової події).
-
На вкладці Forms, у полі
Form key, вкажіть службову назву форми, параметри якої передаватимуться функціїsubmission()при виконанні процесу.
-
На вкладці Extensions налаштуйте параметри бізнес-ключів:
-
У полі
Add Propertyнатисніть+(позначку плюса) та зазначте такі налаштування:-
для параметра
NameвкажітьbusinessKeyExpression; -
у полі
Valueвкажіть вираз, що встановлює значення бізнес-ключа, використовуючи функціюsubmission()(див. Функція submission()).
Example 2. Приклад. Функція submission()${submission('<id початкової події>').formData.prop('<Property Name атрибут1>').value()+" "+submission('<id початкової події>').formData.prop('<Property Name атрибут2>').value()}
-
-
-
Для створення виразу
businessKeyExpressionнеобхідно попередньо визначити, який саме атрибут чи сполучення атрибутів ідентифікуватиме цей бізнес-процес.Для Кабінетів користувача (посадової особи та отримувача послуг реєстру) результатом виразу
businessKeyExpressionє текстове поле, що складається із конкатенованих, тобто поєднаних, значень атрибутів полів, вказаних у виразі. -
- Розглянемо приклад
-
Налаштуємо бізнес-ключі у процесі внесення паспортних даних особи із використанням функції
submission().-
При моделюванні вказуємо для параметра
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).
-
-
Підставимо необхідні значення змінних та отримаємо такий вираз:
Приклад. Функція submission() із підстановкою параметрів${submission('StartEvent_1').formData.prop('surname').value()+" "+submission('StartEvent_1').formData.prop('name').value()}
-
В результаті, на інтерфейсі користувацьких форм сформований бізнес-ключ буде представлено двома полями:
Прізвище(API-атрибут —surname) таІм’я(API-атрибут —name).
-
3. Налаштування бізнес-ключа на старті процесу, що ініційований стартовою подією «Повідомлення»
Для налаштування бізнес-ключа на старті бізнес-процесу, що ініційований стартовою подією «Повідомлення», необхідно виконати наступні кроки:
-
Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN, натиснувши кнопку
BPMN diagram. В результаті з`явиться вікно нової діаграми.
-
Перетягніть елемент Create Pool/Participant до панелі моделювання (див. Додавання елемента Create pool/Participant).
| Моделювання діаграми бізнес-процесу має відбуватися в рамках елемента Create Pool/Participant. |
-
Додайте та налаштуйте початкову подію:
-
З панелі інструментів зліва перетягніть елемент коло (Create StartEvent) до панелі моделювання.
-
Виділіть елемент Create StartEvent, натисніть на іконку ключа та оберіть тип стартової події, що ініціює бізнес-процес, — Message Start Event.

-
На панелі налаштувань справа сконфігуруйте початкову подію:
-
На вкладці General налаштуйте параметри події.
За детальною інформацією щодо налаштування події «Повідомлення» зверніться до сторінки Налаштування стартової події «Повідомлення». -
На вкладці Extensions налаштуйте параметри бізнес-ключа:
-
У полі
Add Propertyнатисніть+(позначку плюса) та вкажіть такі налаштування:-
для параметра
NameвкажітьbusinessKeyExpression; -
у полі
Valueвкажіть вираз, що встановлює значення бізнес-ключа, використовуючи функціюsubmission()(див. Функція submission()).
-
-
-

-
Приклад використання бізнес-ключів за допомогою функції submission() дивіться у розділі Приклад. Налаштування бізнес-ключів у процесі внесення паспортних даних особи.
|
4. Налаштування бізнес-ключа на етапі виконання процесу
Існує також можливість змоделювати та налаштувати бізнес-ключ на етапі виконання бізнес-процесу.
|
Для моделювання та налаштування бізнес-ключа, бізнес-процес має містити хоча б одну попередньо змодельовану користувацьку форму (користувацька задача або стартова подія). |
Для налаштування бізнес-ключа на етапі виконання процесу, необхідно виконати наступні кроки:
-
Додайте сервісну задачу до бізнес-процесу:
-
Вкажіть тип задачі, натиснувши іконку ключа (Change type) та оберіть з меню пункт Service Task.
-
-
Виділіть сервісну задачу, відкрийте вкладку General та перейдіть до каталогу шаблонів. Для цього у полі Template натисніть кнопку
Open Catalogта оберіть відповідний шаблон Define process business key. -
Натисніть
Applyдля підтвердження.
-
На панелі налаштувань сконфігуруйте наступні параметри:
-
У полі
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()дивіться у розділі Приклад. Налаштування бізнес-ключів у процесі внесення паспортних даних особи.
-
В результаті сервісна задача є налаштованою та доступною у бізнес-процесі.
5. Налаштування бізнес-ключів на прикладі екземпляра користувацької задачі
5.1. Налаштування бізнес-ключів за допомогою функції submission()
Ключі бізнес-процесів, налаштовані в рамках моделювання BPMN-діаграм, відображаються у користувацьких формах під час проходження процесу користувачем.
Розглянемо приклад такого відображення бізнес-ключів у користувацьких формах із застосуванням JUEL-функції 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.

Змінні <Property Name атрибут1> та <Property Name атрибут2> — параметри поля Property Name, що використовуються для API-форм користувача (вкладка API) в Кабінеті адміністратора регламентів.
5.2. Моделювання користувацьких форм для налаштування бізнес-ключів
| За детальною інформацією щодо процесу моделювання форм дивіться на сторінці Процес моделювання форм. |
Щоб змоделювати користувацькі форми для подальшого налаштування ключів бізнес-процесу, необхідно виконати наступні кроки:
-
Увійдіть до Кабінету адміністратора регламентів та створіть користувацьку форму до бізнес-процесу.
-
На панелі компонентів зліва оберіть компонент Text Field та перетягніть його до панелі моделювання.

-
У вікні, що відкрилося, перейдіть на вкладку Display та у полі
Labelвведіть значення змінної<Property Name атрибут 1>—Прізвище.
-
Перейдіть на вкладку API та у полі
Property Nameвведіть службову назву атрибутаПрізвище, що використовуватиметься у функціїsubmission()при моделюванні бізнес-процесу в Camunda, тобто параметр для API-ендпоінту (тут —surname). -
Натисніть кнопку
Save, щоб зберегти зміни.
-
На панелі компонентів зліва оберіть новий компонент Text Field та перетягніть його до панелі моделювання.
-
У вікні, що відкрилося, на вкладці Display, у полі
Labelвведіть значення змінної<Property Name атрибут 2>—Ім’я.
-
Перейдіть на вкладку API та у полі
Property Nameвведіть службову назву атрибутаІм’я, що використовуватиметься у функціїsubmission()при моделюванні бізнес-процесу в Camunda, тобто параметр для API-ендпоінту (тут —name). -
Натисніть кнопку
Save, щоб зберегти зміни.
В результаті отримаємо форму бізнес-процесу із двома полями для вводу даних користувача, що виконуватимуть роль бізнес-ключів (
surnameтаname). -
Збережіть змодельовану користувацьку форму, натиснувши кнопку
Створити формуу правому верхньому куті.
-
Приєднайте створену форму до бізнес-процесу за службовою назвою форми:
-
У полі
Form keyпри моделюванні бізнес-процесу введіть значення параметраСлужбова назва форми(тут —add-usertask).
-
6. Відображення бізнес-ключів у Кабінеті користувача
Як було зазначено у попередніх розділах, бізнес-ключ є додатковим атрибутом, що застосовується при моделюванні бізнес-процесів для їх однозначної ідентифікації, а також ідентифікації користувацьких задач процесу.
Бізнес-ключі визначаються та налаштовуються на формах, і застосовуються при моделюванні процесів із використанням JUEL-функцій. В результаті змодельовані ключі відображатимуться у Кабінеті користувача як ідентифікатори послуг або задач.
| Таким чином, користувач має змогу швидко відрізнити бізнес-процес, за виконання якого він відповідає, або виокремити певну задачу у цьому процесі, серед тисяч інших записів, що доступні на сторінках інтерфейсу. |

