Skip to content

Commit 0ded77b

Browse files
Пофиксил очепятки, добавил ссылку в реест примеров
1 parent 7c02891 commit 0ded77b

2 files changed

Lines changed: 98 additions & 10 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
1. [Пример создания пользовательской метамодели C4 Model](src/C4Model)
1515
2. [Простой пример валидации сущностей в DocHub с выводом информации в меню](src/validator_example)
16+
3. [Пример управления бизнес-сущностями](src/business_entity_management)
17+
1618

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

src/business_entity_management/README.md

Lines changed: 96 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,98 @@
88
# Суть примера
99
Стояла реальная бизнес-задача показать в каких системах используются те или иные бизнес-сущности.
1010

11-
Вторая задача определилась по ходу реализации. Оказалось что в компании нет процесса управления бизнес-сущностями на логическом уровне, что приводит к тому, что в разных сервисах одну и туже бизнес-сущность логически и физически реализуют по разному. Начиная с того что реквизиты называются по разному, могут иметь разный физический смысл и заканчивая тем, что часть сущностей с одинаковым названием физически означают разные вещи. Все это вызывает большие проблемы с интеграцией между сервисами.
11+
Вторая задача определилась по ходу реализации. Оказалось, что в компании нет процесса управления бизнес-сущностями на логическом уровне, что приводит к тому, что в разных системах/сервисах одну и ту же бизнес-сущность логически и физически реализуют по-разному. Начиная с того, что реквизиты могут называются по разному и иметь разный физический смысл и заканчивая тем, что часть сущностей с одинаковым названием физически означают разные вещи. Все это вызывает большие проблемы в первую очередь с интеграцией между сервисами.
1212

1313
Поэтому было решено на базе DocHub реализовать управление логическим уровнем бизнес-сущностей и создать эталонный список бизнес-сущностей, который команды смогут использовать в качестве шаблона для создания физической реализации у себя в проектах.
1414

1515
## Логическое описание реализации и файловая структура примера
16-
Для реализации был выбран вариант создания нового entity, который называется "business_entities". Физически business_entities было реализовано через 2 файла:
16+
Для реализации был выбран вариант создания нового entity, который называется "business_entities". Физически "business_entities" было реализовано через 2 файла:
1717
* business_entities/business_entities_model.yaml - в этом файле была описана сама модель, реализован вывод в меню и несколько вариантов визуализации в виде отчетов. Все запросы переиспользуемые, так как они были добавлены в datasets/datasets.yaml
18+
19+
```yaml
20+
entities: # Сущности расширенной метамодели
21+
# Бизнес-сущности
22+
business_entities: # Секция, где будет описываться объекты сущности "взаимодействие". Обязательно.enti
23+
title: Бизнес-сущности # Название сущности. Обязательно.
24+
description: > # Описание сущности текст или ссылка на документ. Необязательно.
25+
Ключевые бизнес-сущности ГК Болото
26+
menu: > # Генератор раcположения в меню. Запрос или явное описание объета. Необязательно.
27+
(
28+
Запрос
29+
)
30+
presentations:
31+
business_entities_table_list:
32+
type: table
33+
headers:
34+
Описание полей таблицы
35+
source: swamp.dataset.business_entities_list
36+
37+
# Выводим список бизнес-сущностей, полученных в запросе выше business_entities_list
38+
business_entities_list:
39+
type: markdown
40+
template: business_entities_list.md
41+
42+
# Выводим карточку выбранной бизнес-сущности
43+
business_entity_card:
44+
type: markdown
45+
template: business_entity_card.md
46+
source: >
47+
(
48+
$entities := [$.business_entities.$spread().$merge([$.*, {"id": $keys($)}])];
49+
$entities [id=$params.id];
50+
)
51+
52+
# Получаем список бизнес-сущностей, используемых в системах, все это выводим в таблицу
53+
business_entities_table_in_systems:
54+
type: table
55+
headers:
56+
Описание полей таблицы
57+
source: swamp.dataset.business_entities_in_systems
58+
59+
# Выводим писок бизнес-сущностей, используемых в системах полученных в запросе выше business_entities.in_systems
60+
business_entities_in_systems:
61+
type: markdown
62+
template: business_entities_in_systems.md
63+
64+
# Наследуемся от таблицы business_entities.in_systems и делаем фильтр по конкретной системе
65+
business_entities_table_in_systems.filtered: # Дочерняя таблица
66+
type: table
67+
headers:
68+
Описание полей таблицы
69+
origin: swamp.dataset.business_entities_in_systems # Базовый источник данных
70+
source: >
71+
(
72+
$[system_id=$params.system_id]
73+
)
74+
75+
```
76+
1877
* business_entities/business_entities.yaml - в этом файле хранятся значения "business_entities"
1978
79+
```yaml
80+
business_entities:
81+
bank:
82+
title: Банки
83+
description: pass
84+
parameters:
85+
- name: bank_name
86+
description: Наименование банка
87+
- name: bik
88+
description: БИК банка
89+
90+
chekingaccount:
91+
title: Расчетные счета
92+
description: pass
93+
94+
contractor:
95+
title: Контрагенты
96+
description: pass
97+
98+
contractoraccount:
99+
title: Счета контрагентов
100+
description: pass
101+
```
102+
20103
Для реализации привязки бизнес-сущностей в системах/сервисах необходимо добавлять массив используемых бизнес-сущностей в раздел "business_entities":
21104
```yaml
22105
# Описываем L1 Context в нотации C4 Model
@@ -51,11 +134,14 @@ components:
51134

52135
```
53136

54-
Также было разработано несколько отчетов:
55-
* business_entities/business_entity_card.md - это карточка бизнес-сущности. Если добавить реквизиты к сущности, то в карточке они тоже будут выводиться. Для примера можно сформировать карточу бизнес-сущности "bank".
56-
* business_entities/business_entities_list.md - это список всех бизнес-сущностей с возможностью перехода в карточку конкретной бизнес-сущности.
57-
* business_entities/business_entities_in_systems.md - это список показывающий список бизнес-сущностей используемых в каждой системе. В этом отчете реализован пример установки фильтра по конкретной системе. Также реализована возможность сортировки практически по всем полям.
58-
* systems_table.md - этот отчет выводит список систем, но также к нему была добавлена ссылка для возможности выводить отфильтрованный по системе список бизнес-сущностей.
137+
Также было разработано несколько отчетов. Практически все отчеты реализуются через markdown путём встраивания различных объектов DocHub внутрь, например, таблиц.
138+
139+
* **business_entities/business_entity_card.md** — это карточка бизнес-сущности. Если добавить реквизиты к сущности, то в карточке они тоже будут выводиться. Для примера можно сформировать карточу бизнес-сущности "bank".
140+
* **business_entities/business_entities_list.md** — это список всех бизнес-сущностей с возможностью перехода в карточку конкретной бизнес-сущности.
141+
* **business_entities/business_entities_in_systems.md** — это список показывающий список бизнес-сущностей используемых в каждой системе. В этом отчете реализован пример установки фильтра по конкретной системе. Также реализована возможность сортировки практически по всем полям.
142+
* **systems_table.md** — этот отчет выводит список систем, но также к нему была добавлена ссылка для возможности выводить отфильтрованный по системе список бизнес-сущностей.
143+
144+
Концептуальная схема примера ниже:
59145

60146
![Концептуальная схема примера](./images/conceptual_schema.jpg)
61147

@@ -65,15 +151,15 @@ components:
65151

66152
![Меню DocHub](./images/menu.jpg)
67153

68-
1. Выберите пункт "1. Бизнес-сущности":
154+
**1. Выберите пункт "1. Бизнес-сущности":**
69155

70156
![Список бизнес-сущностей](./images/business_entities.jpg)
71157

72158
Нажмите на ссылку "Банки" и перейдите в карточку бизнес-сущности:
73159

74160
![Карточка бизнес-сущности](./images/card.jpg)
75161

76-
2. Выберите пункт "2. Список бизнес-сущностей в системах":
162+
**2. Выберите пункт "2. Список бизнес-сущностей в системах":**
77163

78164
![Список бизнес-сущностей в системах](./images/business_entities_in_systems.jpg)
79165

@@ -85,7 +171,7 @@ components:
85171

86172
![Отбор по системе](./images/filtred_system.jpg)
87173

88-
3. Выберите пункт "3. Список систем":
174+
**3. Выберите пункт "3. Список систем":**
89175

90176
![Список систем](./images/system_list.jpg)
91177

0 commit comments

Comments
 (0)