Моделювання та внесення змін до бізнес-процесу
- 1. Передумови
- 2. Моделювання бізнес-процесу
- 2.1. Створення нової BPMN-діаграми
- 2.2. Додавання елемента Create pool/Participant
- 2.3. Налаштування початкової події
- 2.4. Створення та налаштування Користувацької задачі (User Task) "Внести запис довідника"
- 2.5. Створення та налаштування Сервісної задачі "Пошук запису довідника"
- 2.6. Додавання XOR-шлюзу
- 2.7. Створення та налаштування сервісної задачі "Формування помилки"
- 2.8. З’єднання сервісної задачі "Формування помилки" з користувацькою задачею "Внести запис довідника"
- 2.9. Створення та налаштування користувацької задачі "Підписати дані КЕП"
- 2.10. Створення та налаштування скрипт-задачі "Підписати дані КЕП"
- 2.11. Створення та налаштування операції Call Activity
- 2.12. Створення та налаштування сервісної задачі "Зберегти дані до фабрики даних"
- 2.13. Створення та налаштування сервісної задачі "Результат виконання "Запис довідника створено"
- 2.14. Додавання події EndEvent для завершення бізнес-процесу
- 2.15. Збереження BPMN-діаграми до Gerrit-репозиторію
- 3. Внесення змін до бізнес-процесу
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
Опис механізму моделювання та внесення змін до бізнес-процесу наведений на прикладі бізнес-процесу оновлення довідника хімічних факторів довільних.
Моделювання бізнес-процесів відбувається у застосунку Camunda Modeler. Для розширення функціональності застосунку необхідно встановити плагін BPMN Linter.
1. Передумови
-
Встановіть застосунок Camunda Modeler та плагін BPMN Linter — зверніться до відповідної інструкції за посиланням.
-
Встановіть локальний git-клієнт Atlassian SourceTree — зверніться до відповідної інструкції за посиланням.
-
Встановіть каталог типових розширень
business-process-modeler-extensions
, що зберігається у захищеному сховищі артефактів Nexus — зверніться до відповідної інструкції за посиланням.
За потреби, зверніться до адміністратора Платформи для надання архіву із каталогом розширень business-process-modeler-extensions останньої версії (тека типу version.build — наприклад, 0.0.1-SNAPSHOT.12 )).
|
2. Моделювання бізнес-процесу
Моделювання бізнес-процесу є послідовною процедурою. Будь ласка, дотримуйтеся кроків, описаних у цьому розділі. |
2.1. Створення нової BPMN-діаграми
Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN, натиснувши кнопку BPMN diagram
.
В результаті з`явиться вікно нової діаграми.
2.2. Додавання елемента Create pool/Participant
З панелі інструментів, що знаходиться зліва, необхідно перетягнути елемент Create pool/Participant до панелі моделювання.
У правому вікні з параметрами необхідно заповнити поля відповідними значеннями:
-
в полі
Name
введіть значенняСтворення довідника хімічний довільні
; -
в полі
Process id
введіть значенняupdate-dict
; -
в полі
Process name
введіть значенняСтворення довідника хімічний довільні
.
В результаті елемент Create pool/Participant додається та заповнюється необхідними параметрами.
2.3. Налаштування початкової події
На початковій події необхідно заповнити поля у вікні параметрів, натиснувши на цю подію:
-
в полі
Name
введіть значенняПочаток процесу
; -
в полі
Initiator
введіть значенняinitiator
.
В результаті початкова подія заповнюється необхідними параметрами.
2.4. Створення та налаштування Користувацької задачі (User Task) "Внести запис довідника"
Для того, щоб додати користувацьку задачу Внести запис довідника, необхідно натиснути на початкову подію та обрати Append Task
в меню, що з’явиться.
Альтернативно можна перетягнути задачу з палетки до області моделювання діаграми та з’єднати початкову подію із задачею. |
Після натискання іконки Create Task
(Створити задачу
), в зоні моделювання буде додана задача, яку необхідно заповнити відповідними параметрами.
-
Вкажіть тип задачі, натиснувши на іконку ключа (
Change Type
); -
Далі оберіть
User Task
(Користувацька задача
);
-
В зоні параметрів, справа, натисніть
Open Catalog
(Відкрити каталог
), оберіть шаблон User Form (Користувацька форма) та натиснітьApply
для підтвердження.
-
Заповніть параметри задачі в меню справа:
-
в полі
Id
введіть значенняActivity_update-dict-bp-add-name
; -
в полі
Name
введіть значенняВнести запис довідника
; -
в полі
Form key
введіть значенняupdate-dict-bp-add-name
; -
в полі
Assignee
введіть значення${initiator}
(передзаповнюється при обранні шаблону).
-
В результаті Користувацька задача додається на діаграмі та є налаштованою.
2.5. Створення та налаштування Сервісної задачі "Пошук запису довідника"
Додайте наступну сервісну задачу Пошук запису довідника до бізнес-процесу. Для цього натисніть на користувацьку задачу Внести запис довідника та оберіть Append Task
в меню.
Вкажіть тип задачі, натиснувши на іконку ключа (Change type) та оберіть з меню пункт Service Task.
-
натисніть кнопку
Open Catalog
(Відкрити каталог
), оберіть налаштований шаблон Search for entities in data factory та натиснітьApply
для підтвердження;
-
далі, у полі
name
введіть значенняПошук запису довідника
; -
заповніть у випадному меню Resource поле
Variable Assignment Value
значеннямfactor-equal-factor-type-name-count
; -
заповніть у випадному меню Search Variables поле
Variable Assignment Type
значеннямMap
; -
додайте змінну у випадному меню Search Variables — для цього натисніть кнопку
Add Entry
та заповніть наступні параметри:-
у полі
Key
введітьname
; -
у полі
Value
введіть${submission('Activity_update-dict-bp-add-name').formData.prop('name').value()}
;
-
-
у випадному меню X-Access-Token, у полі
Variable Assignment Value
зазначте змінну${completer('Activity_update-dict-bp-add-name').accessToken}
;Після відпрацювання першої користувацької задачі (User Task), намагайтеся використовувати функцію
completer('<task_id>')
для отримання даних користувача, замістьinitiator()
.Токен доступу береться з АБО ініціатора (наприклад,
$initiator().accessToken}
), АБО виконавця останньої користувацької задачі (наприклад,${completer('taskDefinitionId').accessToken}
).JWT-токен має свій термін дії, який триває 300 секунд. Якщо вказати токен ініціатора, який запустив бізнес-процес, а користувач довго не виконував задачу, то термін дії токена спливе, й бізнес-процес необхідно буде запускати повторно.
Детальніше про JUEL-функції ви можете переглянути на сторінці JUEL-функції у бізнес-процесах.
-
у випадному меню Result Variable, в полі
Assign to Process Variable
додайте зміннуresponse
.
В результаті Сервісна задача додається на діаграмі та є налаштованою.
2.6. Додавання XOR-шлюзу
Додайте XOR-шлюз Запис довідника присутній?, натиснувши на задачу Пошук запису довідника та оберіть Append Gateway
в меню.
Заповніть параметри шлюзу в меню справа:
-
Заповніть поле
Name
значеннямЗапис довідника присутній?
.
2.7. Створення та налаштування сервісної задачі "Формування помилки"
Додайте наступну сервісну задачу Формування помилки, натиснувши на XOR-шлюз Запис довідника присутній? → далі оберіть Append Task
в меню.
Вкажіть тип задачі, натиснувши на іконку ключа, та оберіть з меню пункт Service Task.
Заповніть параметри задачі у вікні справа:
-
оберіть шаблон (Template), натиснувши кнопку
Open Catalog
; -
у вікні каталогу, що відкриється, оберіть налаштований шаблон Throw validation error;
-
Натисніть
Apply
для підтвердження;
-
Далі, у полі
Name
введіть значенняФормування помилки
; -
заповніть у випадному меню Validation errors поле
Variable Assignment Type
значеннямList
; -
додайте змінну, натиснувши кнопку
Add Value
, та для параметраValue
введіть наступну JSON-структуру:
{"field": "name", "value": "${submission('Activity_update-dict-bp-add-name').formData.prop('name').stringValue().replaceAll("\"", "\\\\\"")}", "message": "Такий запис вже існує"}
На стрілочці, що з’єднує XOR-шлюз Запис довідника присутній? та сервісну задачу Формування помилки, заповніть параметри у правому меню:
-
у полі
Name
введіть значеннятак
; -
у полі
Condition Type
введіть значенняExpression
; -
у полі
Expression
введіть значення${!response.value.responseBody.elements().isEmpty()}
.
В результаті Сервісна задача додається на діаграмі та є налаштованою.
2.8. З’єднання сервісної задачі "Формування помилки" з користувацькою задачею "Внести запис довідника"
-
На панелі меню оберіть елемент Create Gateway і, натиснувши та утримуючи ліву клавішу миші, перетягніть задачу Внести запис довідника до області діаграми поміж початковою подією та користувацькою задачею.
-
З’єднайте сервісну задачу Формування помилки з користувацькою задачею Внести запис довідника обравши в меню стрілку.
2.9. Створення та налаштування користувацької задачі "Підписати дані КЕП"
Додайте наступну користувацьку задачу Підписати дані КЕП, натиснувши на XOR-шлюз Запис довідника присутній? та оберіть Append Task
у меню.
-
Вкажіть тип задачі, натиснувши на іконку ключа, та оберіть з меню пункт User Task.
-
Заповніть параметри задачі у вікні справа:
-
оберіть шаблон (Template), натиснувши кнопку
Open Catalog
; -
у новому вікні оберіть налаштований шаблон Officer Sign Task та натисніть
Apply
для підтвердження; -
у полі
id
введіть значенняActivity_update-dict-bp-sign-add-name
; -
у полі
Name
введіть значенняПідписати дані КЕП
; -
у полі
Form key
введіть значенняupdate-dict-bp-sign-add-name
; -
у полі
Assignee
введіть значення${initiator}
(передзаповнюється при обранні шаблону).
-
-
У полі
Form data pre-population
введіть значення${submission('Activity_update-dict-bp-add-name').formData}
.
На стрілочці, що з’єднує XOR-шлюз Запис довідника присутній? та задачу Підписати дані КЕП, заповніть параметри в меню справа:
-
у полі
Name
зазначтені
; -
у полі
Condition Type
зазначтеExpression
; -
у полі
Expression
вкажіть змінну${response.value.responseBody.elements().isEmpty()}
.
В результаті користувацька задача додається на діаграмі та є налаштованою.
2.10. Створення та налаштування скрипт-задачі "Підписати дані КЕП"
Додайте наступну скрипт-задачу Підготовка даних для запису (transient var), натиснувши на задачу Підписати дані КЕП та оберіть Append Task
в меню.
Вкажіть тип задачі, натиснувши на іконку ключа, та оберіть з меню пункт Script Task.
Заповніть параметри задачі відповідними значеннями у вікні справа:
-
у полі
Name
введіть значенняПідготовка даних для запису (transient var)
; -
у полі
Script Format
введіть значенняgroovy
; -
у полі
Script Type
оберітьInline Script
; -
у полі
Script
введіть необхідний скрипт:
def signedFormData = submission('Activity_update-dict-bp-sign-add-name').formData signedFormData.prop('factorType', 'Хімічний: довільні') execution.removeVariable('dataPayload') execution.setVariableLocalTransient('dataPayload', signedFormData)
В результаті скрипт-задача додається на діаграмі та є налаштованою.
2.11. Створення та налаштування операції Call Activity
Додайте наступну задачу Підписати дані системним ключем, натиснувши на задачу Підготовка даних для запису (transient var) та оберіть Append Task
в меню.
-
Вказати тип задачі, натиснувши на іконку ключа, та оберіть з меню пункт
Call Activity
. -
Заповніть параметри у вікні справа:
-
на вкладці General:
-
у полі
Name
введіть значенняПідписати дані системним ключем
; -
у полі
CallActivity Type
введіть значенняBPMN
; -
у полі
Called element
введіть значенняsystem-signature-bp
; -
у полі
Binding
введіть значенняLatest
;
-
-
-
на вкладці Variables:
-
у полі
In Mapping
введіть значенняdataToSign :=dataPayload
; -
у полі
Out Mapping
введіть значенняsystem_signature_ceph_key := system_signature_ceph_key
.
-
В результаті Call Activity додано на діаграмі та налаштовано.
2.12. Створення та налаштування сервісної задачі "Зберегти дані до фабрики даних"
Додайте наступну сервісну задачу Зберегти дані до фабрики даних, натиснувши на задачу Підписати дані системним ключем, та оберіть Append Task
в меню.
Вкажіть тип задачі, натиснувши на іконку ключа, та оберіть з меню пункт Service Task.
Заповніть наступні параметри у вікні справа:
-
оберіть шаблон (Template), натиснувши кнопку
Open Catalog
; -
У вікні обрати налаштований шаблон Create entity in data factory та натисніть
Apply
для підтвердження;
-
у полі
Name
введіть значенняЗберегти дані до фабрики даних
; -
у полі
Resource
введіть значенняfactor
; -
у полі
Payload
введіть значення${dataPayload}
; -
у полі
X-Access-Token
введіть значення${completer('Activity_update-dict-bp-sign-add-name').accessToken}
;Після відпрацювання першої користувацької задачі (User Task), намагайтеся використовувати функцію
completer('<task_id>')
для отримання даних користувача, замістьinitiator()
.Токен доступу береться з АБО ініціатора (наприклад,
$initiator().accessToken}
), АБО виконавця останньої користувацької задачі (наприклад,${completer('taskDefinitionId').accessToken}
).JWT-токен має свій термін дії, який триває 300 секунд. Якщо вказати токен ініціатора, який запустив бізнес-процес, а користувач довго не виконував задачу, то термін дії токена спливе, й бізнес-процес необхідно буде запускати повторно.
Детальніше про JUEL-функції ви можете переглянути на сторінці JUEL-функції у бізнес-процесах.
-
у полі
X-Digital-Signature source
введіть значення${sign_submission('Activity_update-dict-bp-sign-add- name').signatureDocumentId}
; -
у полі
X-Digital-Signature-Derived source
введіть значення${system_signature_ceph_key}
; -
у полі
Result variable
введіть значенняresponse
.
В результаті сервісна задача додається на діаграмі та є налаштованою.
2.13. Створення та налаштування сервісної задачі "Результат виконання "Запис довідника створено"
Додайте наступну сервісну задачу Результат виконання "Запис довідника створено", натиснувши на задачу Зберегти дані до фабрики даних, та оберіть Append Task
в меню.
Вкажіть тип задачі, натиснувши на іконку ключа, та оберіть з меню пункт Service Task.
Заповніть параметри задачі у вікні справа:
-
оберіть шаблон (Template), натиснувши кнопку
Open Catalog
. -
у новому вікні оберіть налаштований шаблон Define business process status та натисніть
Apply
для підтвердження;
-
у полі
Name
введіть значенняРезультат виконання "Запис довідника створено"
; -
у полі
Status
введіть значенняЗапис довідника створено
.
В результаті сервісна задача додається на діаграмі та є налаштованою.
2.14. Додавання події EndEvent для завершення бізнес-процесу
Додайте подію, що завершує бізнес-процес, натиснувши на задачу Результат виконання "Запис довідника створено", та оберіть Append EndEvent
в меню.
Заповніть наступні параметри задачі у вікні справа:
-
у полі
Name
введіть значенняЗапис довідника створено
.
В результаті подія, що завершує бізнес-процес, додається на діаграмі та є налаштованою.
2.15. Збереження BPMN-діаграми до Gerrit-репозиторію
Для збереження BPMN-діаграми змодельованого бізнес-процесу виконайте наступні кроки:
-
У додатку Camunda Modeler, в меню File оберіть опцію
Save File
(або затисніть комбінацію клавішCtrl+S
).
-
У вікні, що відкрилося, знайдіть попередньо клонований проєкт registry-regulations та збережіть діаграму до папки
/bpmn
. -
Введіть назву діаграми (тут —
update-dict.bpmn
) та натисніть кнопкуSave
(Зберегти
), як показано на зображенні нижче.
В результаті діаграма зберігається до потрібної директорії у форматі .bpmn
.
3. Внесення змін до бізнес-процесу
Для внесення змін до наявного бізнес-процесу, виконайте наступні кроки:
-
відкрийте попередньо клонований проєкт у локальному git-клієнті Atlassian SourceTree;
-
на вкладці репозиторію натисніть кнопку
Pull
(командаgit pull
) для того, щоб завантажити останні зміни до проєкту; -
у новому вікні, що відрилося, натисніть кнопку
Pull
.
-
на панелі інструментів, у правому верхньому куті, натисніть кнопку
Explorer
; -
у новому вікні файлового провідника перейдіть до папки
/bpmn
та оберіть BPMN-файл, що потребує внесення змін (тут —update-dict.bpmn
). -
відкрийте файл у додатку Camunda Modeler.
Наприклад, необхідно внести зміни до кінцевої події (EndEvent) та змінити її назву. Для цього виконайте наступні кроки:
-
у додатку Camunda Modeler оберіть кінцеву подію, виділивши її на панелі моделювання;
-
у полі
Name
змініть назву події ізЗапис довідника створено
наЗапис довідника створено!
(тут — додано один символ!
(знак оклику) в кінці назви);
-
збережіть зміни: в меню File оберіть опцію
Save File
(або затисніть комбінацію клавішCtrl+S
).
В результаті вносяться зміни до процесу.
Внесення змін до гілки в репозиторії Gerrit
Для внесення змін до відповідної гілки в репозиторії Gerrit, виконайте настанови, описані нижче.
-
відкрийте попередньо клонований проєкт у локальному git-клієнті Atlassian SourceTree.
-
на панелі зліва перейдіть до розділу File Status:
-
у нижньому вікні введіть текстове повідомлення про те, які зміни відбулися, тобто commit message (тут —
"MDTUDDM-TEST"
); -
у вікні Unstaged files показано файли, до яких внесено зміни. Безпосередньо зміни зображуються у вікні справа, при виборі таких файлів (в нашому випадку — це один файл
update-dict.bpmn
; -
натисніть клавішу
Stage All
.
-
Таким чином файл update-dict.bpmn
переміститься до розділу Staged files, при цьому стане доступною кнопка Commit
(команда git commit
);
-
на панелі інструментів, розташованій зверху, натисніть кнопку
Push
; -
у новому вікні, що відкрилося, у полі
master
, змініть значенняmaster
наrefs/for/master
та натиснітьPush
.
Перейдіть на сторінку у віддаленому репозитарії для перегляду вхідних змін MDTUDDM-TEST
: https://gerrit-mdtu-ddm-edp-cicd-integration-uat-env.apps.cicd.mdtu-ddm.projects.epam.com/dashboard/self
.