Skip to content

BPMN нотация описания бизнес-процессов с использованием bpmnjs #26

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
14. [Entity Relationship диаграммы и диаграммы классов](src/DynamicEntityRelationshipDiagrams)
15. [Динамическое изменение группировки компонент в представлении контекста](src/DynamicChangeOfContextGrouping)
16. [Репозиторий чатбота корпоративного ИИ](src/aichatbot)
17. [BPMN нотация описания бизнес-процессов с использованием bpmnjs](src/bpmn)

## Разворачивание

Expand Down
76 changes: 76 additions & 0 deletions src/bpmn/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
## Пример использования возможностей плагина описания бизнес-процессов в BPMN нотации с использованием bpmnjs.

### Цели примера
- Создание модели бизнес-процессов в нотации BPMN (https://dochub.info/entities/docs/blank?dh-doc-id=dochub.bpmn);
- Автоматизированная обработка файлов XML, содержащих описание бизнес-процессов с целью:
- Формирования реестра бизнес-процессов;
- Формирования реестра функциональных дорожек и объектов бизнес-процессов;
- Контроля замкнутости бизнес-процессов с детализацией до объектов бизнес-процессов;
- Использование множественных зависимостей источников данных (datasets) (https://dochub.info/entities/docs/blank?dh-doc-id=dochub.datasets).
- Использование механизма функций (functions) (https://dochub.info/entities/docs/blank?dh-doc-id=dochub.functions).

### Чего нет в примере
- Архитектурных валидаторов (validators) (https://dochub.info/entities/docs/blank?dh-doc-id=dochub.rules.validators), но реализован специализированный отчет для проверки замкнутости;
- Специализированных сущностей (entities) (https://dochub.info/entities/docs/blank?dh-doc-id=dochub.flex_metamodel.entities), расширяющих стандартную метамодель, например, "Функциональныве дорожки" и "Объекты данных" бизнес-процессов.

### Файловая структура примера

```
|- examples - Каталог с файлами бизнес-процессов
| |- test10_1.xml - Описание бизнес-процесса 10.1
| |- test10_2.xml - Описание бизнес-процесса 10.2
| |- test10_3.xml - Описание бизнес-процесса 10.3
|- templates - Шаблоны контекстов
| |- bpmn.md - Описание отчета "20. Контроль заполнения бизнес-процессов"
| |- business_processes_card.md - Расширенная карточка бизнес-процесса со схемой, входящими и исхоящими процессами
|- business_processes.yaml - Расширение атрибутного состава бизнес-процесса, чтобы была возможность использовать дополнительные свойства, которых нет в XML файлах
|- business_processes_extended_card.yaml - Расширенная карточка бизнес-процесса, созданная через entities
|- datasets.yaml - Используемые наборы данных
|- docs.yaml - Используемые документы
|- functions.yam - Используемые документы
|- README.md - Описание репозитория
```
### Особенности реализации в текущей версии плагина
- В качестве уникального идентификатора используется текстовое представление бизнес-процессов, функциональных дорожек и объектов бизнес-процессов, т.к. файлы с описанием бизнес-процессов между собой никак не связаны, соответственно отсутствует возможность использовать идентификаторы, генерируемые плагином (они гарантировано уникальные только в пределах одного файла);
- Описание бизнес-процессов из XML файла напрямую не подключается к озеру данных, а предварительно преобразуется в источник данных (dataset) единого вида, используя универсальный подход (см. `datasets.yaml`):
- `business_processes.dataset.bp_10_1`
- `business_processes.dataset.bp_10_2`
- `business_processes.dataset.bp_10_3`
- Источники данных (dataset) каждого бизнес-процесса объединяются в единый источник данных `business_processes.dataset.main_dataset` через механизм множественных зависимостей (https://dochub.info/entities/docs/blank?dh-doc-id=dochub.datasets) и уже он используется во всех «запросах», в том числе подключатеся к озеру данных;
- Для просмотра карточки бизнес-процесса создана отдельная сущность (entities);
- Во всех отчетах реализованы гиперссылки на расширенную карточку бизнес-процесса.

### Примеры

#### Реестр бизнес-процессов

![business_processes_extended_card.png](images%2Fbusiness_processes_extended_card.png)

#### Расширенная карчтока бизнес-процесса с возможностью редактирования

![business_processes_extended_card.png](images%2Fbusiness_processes_extended_card.png)

#### Реестр объектов бизнес-процессов

![business_processes_objects.png](images%2Fbusiness_processes_objects.png)

#### Отчет по ошибкам замкнуточти бизнес-процессов

![business_processes_errors.png](images%2Fbusiness_processes_errors.png)

Описание ошибок "Замкнутость бизнес-процессов"

| № строки | Ошибка | Способ устранения |
|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
| 1 | В бизнес-процессе "УД.10.2" указан входящий бизнес-процесс "УД.10.два", который не определен | Добавить новый бизнес-процесс, в котором указать связь с 10.2 |
| 2 | В бизнес-процессе "УД.10.1" указан исходящий бизнес-процесс "УД.10.2" с объектом "Рамочный договор депозита в статусе «Утвержден»", НО, в "УД.10.2" нет соответствующего входа | В бизнес-процесс "УД.10.2" добавить вход "УД.10.1" с объектом "Рамочный договор депозита в статусе «Утвержден»" |

Описание ошибок "Входящие или исходящие процессы без объектов или связей с шагами основного процесса"

| № строки | Ошибка | Способ устранения |
|----------|-----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| 1 | В бизнес-процессе "УД.10.3" есть входящий бизнес-процесс "БП без объектов" без указания объекта | Добавить объект входящего бизнес-процесса по аналогии с "УД.10.1" |
| 2 | В бизнес-процессе "УД.10.3" есть входящий бизнес-процесс "БП без связей" без указания связи (зашисший) | Добавить объект входящего бизнес-процесса и указать шаг процесса, с которым связан |

## Авторские права
- Автор примера: https://t.me/SultanovStanislav
38 changes: 38 additions & 0 deletions src/bpmn/business_processes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
docs:

test1:
source: examples/test10_1.xml
type: bpmnjs
extension:
isgroup: false
code: УД.10.1
description: "Процесс «Регистрация рамочного договора депозита» представляет собой последовательность действий,
направленных на оформление и учёт договора о депозите между банком и клиентом"
state: Используется
state_update_date: 2024.03.01
division_owner: Финансовый департамент

test2:
source: examples/test10_2.xml
type: bpmnjs
extension:
isgroup: false
code: УД.10.2
description: "Процесс «Регистрация спецификации рамочного договора депозита» представляет собой последовательность действий,
направленных на оформление и учёт подчиненных рамочному договору договоров депозита банком и клиентом"
state: Используется
state_update_date: 2024.03.01
division_owner: Финансовый департамент

test3:
source: examples/test10_3.xml
type: bpmnjs
extension:
isgroup: false
code: УД.10.3
description: "Корректировка рамочного договора депозита — это процесс внесения изменений и дополнений в ранее
заключённый договор о депозите между банком и клиентом. Целью корректировки может быть изменение условий депозита,
срока его действия, процентной ставки, порядка начисления процентов и других параметров."
state: Используется
state_update_date: 2022.03.01
division_owner: Юридический департамент
32 changes: 32 additions & 0 deletions src/bpmn/business_processes_extended_card.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
entities:

extended_business_processes_card:
title: Расширенная карточка бизнес-процесса
description: "Расширенная карточка бизнес-процесса"
presentations:
blank:
title: Расширенная карточка бизнес-процесса
type: markdown
template: templates/business_processes_card.md
source: >
(
$id := $params.id;
$name := $params.name;

/* Документа с описанием бизнес-процесса выполянется по ключу, чтобы не использовать docs.$spread() + [отбор по ID], */
/* так как на большом объеме озера данных будут наблюдаться задржки обработки данных */

$business_processes_obj := $lookup(docs, $id).extension;

/* Итоговая выборака набора данных */

{
"doc_id": $id,
"title": $name,
"description": $business_processes_obj.description,
"state": $business_processes_obj.state,
"state_update_date": $business_processes_obj.state_update_date,
"division_owner": $business_processes_obj.division_owner
}

)
Loading