Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:manual:manage_model:branches [2020/09/30 11:34]
makarov [Свойства веток]
ru:manual:manage_model:branches [2020/12/10 10:54] (текущий)
Строка 1: Строка 1:
 =====Ветки===== =====Ветки=====
-Механизм Веток обеспечивает работу над изменениями актуальной модели в изолированных областях базы данных и позволяет автоматически переносить изменения в актуальную модель "в один клик". +Механизм **Ветки** обеспечивает работу над изменениями актуальной модели в изолированных областях базы данных и позволяет автоматически переносить изменения в актуальную модель "в один клик". 
  
 ====Основные понятия==== ====Основные понятия====
Строка 7: Строка 7:
 <startTableBox> <startTableBox>
 ^ Понятия ^ Описание ^ ^ Понятия ^ Описание ^
-| Актуальная модель | Модель, описывающая текущее состояние компании. По этой модели происходит формирование портала или публикации для распространения регламентов среди сотрудников компании. |+| Актуальная модель | Модель, описывающая текущее состояние компании. |
 | Буфер ветки | Множество созданных/измененных, но еще не примененных к вышестоящей ветке объектов. | | Буфер ветки | Множество созданных/измененных, но еще не примененных к вышестоящей ветке объектов. |
 | Ветка | Изолированная логическая область базы данных Business Studio для разработки новых версий модели бизнес-архитектуры. | | Ветка | Изолированная логическая область базы данных Business Studio для разработки новых версий модели бизнес-архитектуры. |
 | Дочерняя ветка | Ветка, нижестоящая в иерархии веток по отношению к рассматриваемой ветке. | | Дочерняя ветка | Ветка, нижестоящая в иерархии веток по отношению к рассматриваемой ветке. |
 | Иерархия веток | Иерархическая структура, образованная ветками. | | Иерархия веток | Иерархическая структура, образованная ветками. |
-| Корневая ветка | Ветка, находящаяся в корне иерархии веток. Корневая ветка всегда присутствует в базе данных и содержит актуальную модель бизнес-архитектуры. |+| Корневая ветка | Ветка, находящаяся в корне иерархии веток. Корневая ветка всегда присутствует в базе данных. |
 | Применение ветки | Операция применения данных ветки к вышележащей ветке.  При этом данные ветки уходят в вышележащую ветку. | | Применение ветки | Операция применения данных ветки к вышележащей ветке.  При этом данные ветки уходят в вышележащую ветку. |
 | Родительская ветка | Ветка, вышестоящая в иерархии веток по отношению к рассматриваемой ветке. | | Родительская ветка | Ветка, вышестоящая в иерархии веток по отношению к рассматриваемой ветке. |
Строка 19: Строка 19:
  
  
-На Рисунке 1 показан пример иерархии веток:  \\   \\ +На Рисунке 1 показан пример иерархии веток и их возможного использования:  \\   \\ 
  
 [{{  ru/manual/manage_model/lang_manage_model_03.png?nolink  |  Рисунок 1. }}] [{{  ru/manual/manage_model/lang_manage_model_03.png?nolink  |  Рисунок 1. }}]
 +Корневая ветка содержит Актуальную модель. По данной ветке в организации происходит формирование портала или публикации для распространения регламентов среди всех сотрудников.
  
 +Дочерние ветки содержат проекты изменений модели и могут быть применены к корневой ветке. 
 ====Свойства веток==== ====Свойства веток====
-  - Дочерняя ветка после создания является отображением родительской ветки.\\ \\ **Пример.** \\ //Ветка 1.1 (см. Рисунок 3) после создания будет показывать те же самые данные, что и Ветка 1.// \\ \\ +  - Дочерняя ветка после создания является отображением родительской ветки.\\ \\ **Пример.** \\ //Ветка 1.1 (см. Рисунок 1) после создания будет показывать те же самые данные, что и Ветка 1.// \\ \\ 
-  - После внесения изменений дочерняя ветка отображает будущее состояние родительской ветки. Это достигается за счет того, что ветка видит данные родительской ветки и накладывает на них изменения, внесенные непосредственно в ветке. Таким образом, дочерняя ветка отображает то, как после ее применения будет выглядеть родительская ветка. \\ \\ +  - После внесения изменений дочерняя ветка отображает будущее состояние родительской ветки. \\ \\ Это достигается за счет того, что ветка видит данные родительской ветки и накладывает на них изменения, внесенные непосредственно в ветке. Таким образом, дочерняя ветка отображает то, как после ее применения будет выглядеть родительская ветка. \\ \\ 
-  - Единицей изменения данных в ветке является параметр объекта или сам объект, который может быть создан или удален в ветке. Пример отображения изменений состояния объекта показан в статье [[ru/manual/manage_model/branches#работа_в_ветке|Работа в ветке]]\\ \\ +  - Единицей изменения данных в ветке является параметр объекта или сам объект, который может быть создан или удален в ветке. Пример отображения изменений состояния объекта показан в статье [[ru/manual/manage_model/branches#работа_в_ветке|Работа в ветке]].\\ \\ 
-  - Изолированность данных ветки. \\ \\ Изменения в ветке видны в ее потомках («наследование изменений»), но не видны в соседних и родительских ветках.\\ \\ **Пример.** \\ //Только после применения Ветки 2 (см. Рисунок 1) к Корневой ветке, Ветка 1 и ее потомки также будут показывать изменения Корневой ветки.// \\  \\ +  - Изолированность данных ветки. \\ \\ Изменения в ветке видны в ее потомках («наследование изменений»), но не видны в соседних и родительских ветках. Следствие: изменения в корневой ветке видны во всех ветках-потомках.\\ \\ **Пример.** \\ //Только после применения Ветки 2 (см. Рисунок 1) к Корневой ветке, Ветка 1 и ее потомки также будут показывать изменения Корневой ветки.// \\  \\ 
   - Изменения, внесенные в дочерней ветке, имеют приоритет над изменениями, внесенными в родительской ветке.   - Изменения, внесенные в дочерней ветке, имеют приоритет над изменениями, внесенными в родительской ветке.
 +  - Ветка теряет "буфер изменений" после применения к родительской ветке.
  
 Классы объектов с точки зрения поддержки работы в ветках делятся на 3 типа, описание которых представлено в Таблице 2. Классы объектов с точки зрения поддержки работы в ветках делятся на 3 типа, описание которых представлено в Таблице 2.
Строка 37: Строка 40:
 | Изолированные данные в ветке без возможности применения | Класс, объекты которого изолированы в ветке, но не участвуют в применении ветки. | Значения показателей ССП, Данные имитации и контроллинга. | | Изолированные данные в ветке без возможности применения | Класс, объекты которого изолированы в ветке, но не участвуют в применении ветки. | Значения показателей ССП, Данные имитации и контроллинга. |
 <endTableBox|Таблица 2.> <endTableBox|Таблица 2.>
 +
 +== ==
 +**Важно!** Так как справочник {{bslink>Отчеты объектов|ShowRepository?dea12ad7-c729-4974-aab7-f53029f37ed6|edit}} не относится к типу Единые данные в ветках, то настройка опции {{bslink>Портал|ShowRepository?dea12ad7-c729-4974-aab7-f53029f37ed6;e265ba4c-ad79-49dd-a2cd-f8756db0c7a0|edit}} для шаблонов отчетов должна производиться в Основной ветке портала (см. [[/ru/manual/manage_model/polls#основные_понятия | Основные понятия раздела Опросы]]).
 +==== ====
 +
 ====Создание ветки==== ====Создание ветки====
 Ветки создаются в **Окне управления ветками** (см. Рисунок 2). Для перехода к данному окну необходимо в **Окне выбора базы данных** в контекстном меню базы выбрать **Управление ветками** (либо **Свойства подключения к базе → Дополнительно → Управление ветками**). Ветки создаются в **Окне управления ветками** (см. Рисунок 2). Для перехода к данному окну необходимо в **Окне выбора базы данных** в контекстном меню базы выбрать **Управление ветками** (либо **Свойства подключения к базе → Дополнительно → Управление ветками**).
Строка 47: Строка 55:
 <startTableBox> <startTableBox>
 ^ Кнопка ^ Описание ^ Действие ^   ^ Кнопка ^ Описание ^ Действие ^  
-| {{  ru/manual/manage_model/_const_manage_model_011.png?nolink  }} | Создать новую ветку | Объект проходит согласование. | +| {{  ru/manual/manage_model/_const_manage_model_011.png?nolink  }} | Создать новую ветку | Создает дочернюю ветку под выбранной веткой в навигаторе. | 
 | {{  ru/manual/manage_model/_const_manage_model_012.png?nolink  }} | Создать новую папку | Создает дочернюю папку под выбранной веткой в навигаторе. | | {{  ru/manual/manage_model/_const_manage_model_012.png?nolink  }} | Создать новую папку | Создает дочернюю папку под выбранной веткой в навигаторе. |
 |  {{  ru/manual/manage_model/_const_manage_model_013.png?nolink  }}| Пометить ветку и всех ее потомков к удалению или снять пометку | Отмечает выбранную ветку и всех ее потомков к удалению/снимает отметку. После нажатия кнопки Сохранить действие становится необратимым. | |  {{  ru/manual/manage_model/_const_manage_model_013.png?nolink  }}| Пометить ветку и всех ее потомков к удалению или снять пометку | Отмечает выбранную ветку и всех ее потомков к удалению/снимает отметку. После нажатия кнопки Сохранить действие становится необратимым. |
Строка 69: Строка 77:
  
 **Список "История применений"** отображает перечень применений ветки. Дата – дата и время применения ветки. Комментарий – комментарий, введенный при применении.  **Список "История применений"** отображает перечень применений ветки. Дата – дата и время применения ветки. Комментарий – комментарий, введенный при применении. 
 +
 +Права на действия с веткой описаны в Таблице 5.
 +
 +<startTableBox>
 +^ Роль ^ Права на действия с веткой ^
 +| Администратор базы данных | Создание, изменение, удаление и применение ветки. \\ Работа в ветке.|
 +| Пользователь | Работа в ветке. |
 +<endTableBox|Таблица 5.>
  
 ====Работа в ветке==== ====Работа в ветке====
Строка 83: Строка 99:
 [{{  ru/manual/manage_model/cmdt_manage_model_07.png?nolink  |Рисунок 5.}}] [{{  ru/manual/manage_model/cmdt_manage_model_07.png?nolink  |Рисунок 5.}}]
  
-Описание пиктограмм приведено в Таблице 5+Описание пиктограмм приведено в Таблице 6
 <startTableBox> <startTableBox>
 ^ Пиктограмма ^ Описание ^ ^ Пиктограмма ^ Описание ^
 | {{  ru/manual/manage_model/const_manage_model_015.png?nolink  }} | Объект создан в текущей ветке | | {{  ru/manual/manage_model/const_manage_model_015.png?nolink  }} | Объект создан в текущей ветке |
 | {{  ru/manual/manage_model/const_manage_model_016.png?nolink  }} | Объект изменен в текущей ветке | | {{  ru/manual/manage_model/const_manage_model_016.png?nolink  }} | Объект изменен в текущей ветке |
-<endTableBox|Таблица 5.>+<endTableBox|Таблица 6.>
  
 Перечень всех измененных объектов ветки можно увидеть с помощью команды **Буфер ветки**  ({{bslink>Главное меню → Управление моделью → Буфер ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;9e202d02-d0a4-4893-af8b-45415561b701:Item}}) (см. Рисунок 6). Перечень всех измененных объектов ветки можно увидеть с помощью команды **Буфер ветки**  ({{bslink>Главное меню → Управление моделью → Буфер ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;9e202d02-d0a4-4893-af8b-45415561b701:Item}}) (см. Рисунок 6).
Строка 99: Строка 115:
 **Внимание!** После применения текущей ветки к родительской справочник **Буфер ветки** очищается.  **Внимание!** После применения текущей ветки к родительской справочник **Буфер ветки** очищается. 
 ==== ==== ==== ====
-====Проверка ветки==== +====Конфликты модели при объединении веток==== 
-Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Например, в ветке А могут быть удалены объекты, которые изменены или начали использоваться в соседней ветке B. После применения ветки А к актуальной модели в ветке B возникнут конфликты (cм. свойство веток "Изолированность данных ветки").  +Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Такие изменения могут приводить к различного вида конфликтам в случаеесли обе проектные группы применят свои изменения к общей вышестоящей веткеВиды и примеры подобных конфликтов приведены ниже.
-Для выявления и последующего устранения подобных случаев применяется операция **Проверки ветки** ({{bslink>Главное меню → Управление моделью → Проверить ветку|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;2049ddfb-88c7-4344-b752-91f4b292777b:Item}}) +
-При наличии конфликтов результат выполнения данной операции выдается в текстовом окне с группировкой по типам ошибок и поддержкой гиперссылок на конфликтующие объекты. В Таблице 6 представлены типы ошибок, возникающие при проверке ветки, и их описание.+
  
-<startTableBox> +**Конфликты при использовании удаленных объектов** 
-^ Название типа ошибки ^ Описание ^ + 
-| Использование удаленных в родительской ветке объектов В текущей ветке есть объекты, параметры которых ссылаются на объекты, удаленные в родительской ветке. После применения текущей ветки в родительской ветке появятся объекты со ссылками на удаленные объекты. Для устранения данного типа ошибки необходимо изменить значения параметровиспользуя не удалённые объекты| +В **ветке А** могут быть удалены объекты, которые изменены или начали использоваться в соседней **ветке B**. Под использованием объекта понимается его правка, создание или редактирование значения атрибута, создание бинарной связи с объектом
-| Изменение удаленных в родительской ветке объектов | В текущей ветке есть изменённые объекты, которые в родительской ветке имеют статус 'Удален'. Для устранения данного типа ошибки необходимо пересоздать измененные объекты в текущей ветке. | + После применения **ветки А** к актуальной модели в **ветке B** возникнут конфликты, связанные с использованием удаленных объектов  (cм. свойство веток выше). Для выявления таких случаев необходимо использовать команду «Проверка ветки» (См. [[/ru/manual/manage_model/branches#проверка_ветки  
-Наличие в текущей ветке ссылок на удаленные в текущей ветке объекты | В текущей ветке были удалены объектына которые есть ссылки из объектов буфера ветки. Для устранения данного типа ошибки необходимо изменить в текущей ветке значения параметров, ссылающиеся на удаленные объекты. | +Проверка ветки]]). 
-| Наличие в текущей ветке объектов, имеющих удаленных родителей. | В текущей ветке есть объекты, имеющие удаленных родителей. Это могло произойти, если:  \\ 1. В текущей ветке были удалены объекты, под которыми впоследствии в родительской ветке были созданы новые объекты;  \\ 2. В текущей ветке были созданы объекты, родитель которых впоследствии был удален в родительской ветке. При применении текущей ветки к родительской объекты c удаленными родителям будут также удалены. Для устранения данного типа ошибки необходимо перенести конфликтующие объекты под другой родительский объект. Для этого откройте Окно свойств объекта с помощью гиперссылки в сообщении и выберите команду Сменить родителя (Действия → Сменить родителя). | + 
-<;endTableBox|Таблица 6.>+**Смысловые конфликты** 
 + 
 +Если в параллельно существующих **ветках А** и **В** были изменены параметры одного и того же объекта, или с ним создавались бинарные связи, то после объединения данных из обеих веток  может быть нарушена смысловая целостность модели (Рисунок 7), т.к., например, значения параметров объекта могут противоречить друг другу по смыслу. 
 + 
 +[{{ /ru/manual/manage_model/lang_manage_model_017.png?nolink |Рисунок 7 }}] 
 + 
 + 
 +Рекомендуется перед применением ветки осуществлять визуальную проверку объектов, которые были изменены в другой ветке. Проверить, был ли изменен объект в другой ветке можно с помощью вкладки **Экземпляры объекта в ветках** Окна **Анализ использования объекта** (См. [[/ru/manual/administration/search_link]]”).  
 + 
 +**Проверка ветки** 
 + 
 +Для выявления использования удаленных в другой ветке объектов, применяется операция **Проверки ветки** ({{bslink>Главное меню → Управление моделью → Проверить ветку|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;2049ddfb-88c7-4344-b752-91f4b292777b:Item}})
  
-При отсутствии конфликтов на экране отобразится сообщение (см. Рисунок 7).   \\    +При наличии конфликтов результат выполнения данной операции выдается в текстовом окне с группировкой по типам ошибок, поддержкой гиперссылок на конфликтующие объекты и рекомендациями по исправлению ошибок. 
-[{{  ru/manual/manage_model/cmdt_manage_model_09.png?nolink  |Рисунок 7.}}] +  
 +При отсутствии конфликтов на экране отобразится сообщение (см. Рисунок 8).   \\    
 +[{{  ru/manual/manage_model/cmdt_manage_model_09.png?nolink  |Рисунок 8.}}] 
 == == == ==
 **Внимание!** Операцию {{bslink>Проверки ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;2049ddfb-88c7-4344-b752-91f4b292777b:Item}} рекомендуется вызывать периодически, а также перед применением ветки. **Внимание!** Операцию {{bslink>Проверки ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;2049ddfb-88c7-4344-b752-91f4b292777b:Item}} рекомендуется вызывать периодически, а также перед применением ветки.
 ==== ====    ==== ====   
 +
 +
  
 ====Применение ветки==== ====Применение ветки====
Строка 131: Строка 160:
  
  
-Если текущую ветку возможно применить, то запускается проверка ветки на наличие конфликтов между объектами текущей ветки и ее родителя, а затем выполняется применение ветки.  +Если текущую ветку возможно применить, то запускается проверка ветки на наличие конфликтов между объектами текущей ветки и ее родителя, а затем выполняется применение ветки. 
-После успешного применения ветки в Окне управления ветками у примененной ветки появляется запись на вкладке История применений (см. Рисунок 8). + 
-[{{ ru/manual/manage_model/autot_manage_model_010.png?nolink|Рисунок 8.}}]+После успешного применения ветки в **Окне управления ветками** у примененной ветки появляется запись на вкладке **История применений** (см. Рисунок 9). 
 +[{{ ru/manual/manage_model/autot_manage_model_010.png?nolink|Рисунок 9.}}]
 == == == ==
 **Внимание!** Применяемые изменения актуальной модели могут повлиять на объекты, измененные в дочерних ветках. **Внимание!** Применяемые изменения актуальной модели могут повлиять на объекты, измененные в дочерних ветках.
-==== ==== +====== ======
- +
  
 +Применение ветки невозможно в следующих случаях: 
 +  - Любая из веток Базы данных открыта в Business Studio. 
 +  - По базе запущен или формируется Портал. 
 +  - К базе осуществляются запросы иным способом. Например, в приложении SQL Server Management Studio((SQL Server Management Studio (SSMS) - бесплатное ПО, доступное для скачивания [[https://docs.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms|на сайте Microsoft]].)). 
  
 +До окончания процесса применения ветки База данных заблокирована и войти в нее нельзя. 
  
 +== ==
 +**Внимание!** Наличие в Базе данных веток с большим объемом непременных изменений замедляет работу в программе, независимо от их статуса. Рекомендуется очищать базу от веток, которые стали не нужны.  
 +====== ======
  
  
Driven by DokuWiki