Налаштування бізнес-ключів у бізнес-процесах
- 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-функцій. В результаті змодельовані ключі відображатимуться у Кабінеті користувача як ідентифікатори послуг або задач.
Таким чином, користувач має змогу швидко відрізнити бізнес-процес, за виконання якого він відповідає, або виокремити певну задачу у цьому процесі, серед тисяч інших записів, що доступні на сторінках інтерфейсу. |