Различия

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

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

ru:manual:manage_model:branches [2020/10/22 11:48]
makarov [Конфликты модели при объединении веток]
ru:manual:manage_model:branches [2023/03/16 12:20] (текущий)
Строка 1: Строка 1:
-=====Ветки=====+====== Ветки ======
 Механизм **Ветки** обеспечивает работу над изменениями актуальной модели в изолированных областях базы данных и позволяет автоматически переносить изменения в актуальную модель "в один клик".  Механизм **Ветки** обеспечивает работу над изменениями актуальной модели в изолированных областях базы данных и позволяет автоматически переносить изменения в актуальную модель "в один клик". 
- 
-====Основные понятия==== 
-В Таблице 1 приведены основные понятия, используемые в настоящем разделе. 
- 
-<startTableBox> 
-^ Понятия ^ Описание ^ 
-| Актуальная модель | Модель, описывающая текущее состояние компании. По этой модели происходит формирование портала или публикации для распространения регламентов среди сотрудников компании. | 
-| Буфер ветки | Множество созданных/измененных, но еще не примененных к вышестоящей ветке объектов. | 
-| Ветка | Изолированная логическая область базы данных Business Studio для разработки новых версий модели бизнес-архитектуры. | 
-| Дочерняя ветка | Ветка, нижестоящая в иерархии веток по отношению к рассматриваемой ветке. | 
-| Иерархия веток | Иерархическая структура, образованная ветками. | 
-| Корневая ветка | Ветка, находящаяся в корне иерархии веток. Корневая ветка всегда присутствует в базе данных и содержит актуальную модель бизнес-архитектуры. | 
-| Применение ветки | Операция применения данных ветки к вышележащей ветке.  При этом данные ветки уходят в вышележащую ветку. | 
-| Родительская ветка | Ветка, вышестоящая в иерархии веток по отношению к рассматриваемой ветке. | 
-<endTableBox|Таблица 1.> 
- 
- 
- 
-На Рисунке 1 показан пример иерархии веток:  \\   \\  
- 
-[{{  ru/manual/manage_model/lang_manage_model_03.png?nolink  |  Рисунок 1. }}] 
- 
-====Свойства веток==== 
-  - Дочерняя ветка после создания является отображением родительской ветки.\\ \\ **Пример.** \\ //Ветка 1.1 (см. Рисунок 1) после создания будет показывать те же самые данные, что и Ветка 1.// \\ \\ 
-  - После внесения изменений дочерняя ветка отображает будущее состояние родительской ветки. \\ \\ Это достигается за счет того, что ветка видит данные родительской ветки и накладывает на них изменения, внесенные непосредственно в ветке. Таким образом, дочерняя ветка отображает то, как после ее применения будет выглядеть родительская ветка. \\ \\ 
-  - Единицей изменения данных в ветке является параметр объекта или сам объект, который может быть создан или удален в ветке. Пример отображения изменений состояния объекта показан в статье [[ru/manual/manage_model/branches#работа_в_ветке|Работа в ветке]].\\ \\ 
-  - Изолированность данных ветки. \\ \\ Изменения в ветке видны в ее потомках («наследование изменений»), но не видны в соседних и родительских ветках. Следствие: изменения в корневой ветке видны во всех ветках-потомках.\\ \\ **Пример.** \\ //Только после применения Ветки 2 (см. Рисунок 1) к Корневой ветке, Ветка 1 и ее потомки также будут показывать изменения Корневой ветки.// \\  \\  
-  - Изменения, внесенные в дочерней ветке, имеют приоритет над изменениями, внесенными в родительской ветке. 
-  - Ветка теряет "буфер изменений" после применения к родительской ветке. 
- 
-Классы объектов с точки зрения поддержки работы в ветках делятся на 3 типа, описание которых представлено в Таблице 2. 
-<startTableBox> 
-^ Тип класса ^ Описание ^ Примеры классов ^ 
-| Единые данные в ветках| Класс, имеющий одну информацию для всех веток | Проекты, Порталы, Типы опросов, Пользователи. | 
-| Изолированные данные в ветке с возможностью применения | Класс, объекты которого изолированы в ветке и участвуют в применении ветки. | Процессы, Объекты деятельности, Субъекты, Физические лица и другие классы объектной модели. | 
-| Изолированные данные в ветке без возможности применения | Класс, объекты которого изолированы в ветке, но не участвуют в применении ветки. | Значения показателей ССП, Данные имитации и контроллинга. | 
-<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#основные_понятия | Основные понятия раздела Опросы]])+**Внимание!** Работа с ветками доступна Business Studio редакций Enterprise и Ultimate. \\ Базы с ветками не могут быть открыты в Business Studio редакции Professional
-==== ====+======
  
-====Создание ветки==== +===== В этом подразделе ===== 
-Ветки создаются в **Окне управления ветками** (см. Рисунок 2). Для перехода к данному окну необходимо в **Окне выбора базы данных** в контекстном меню базы выбрать **Управление ветками** (либо **Свойства подключения к базе → Дополнительно → Управление ветками**).+  [[ru/manual/manage_model/branches/branches_props]] 
 +  [[ru/manual/manage_model/branches/branches_new]] 
 +  [[ru/manual/manage_model/branches/branches_works]] 
 +  [[ru/manual/manage_model/branches/branches_conflicts]] 
 +  [[ru/manual/manage_model/branches/branches_apply]]
  
  
-[{{  ru/manual/manage_model/autot_manage_model_04.png?nolink  |Рисунок 2.}}] 
  
-Описание назначения кнопок панели инструментов приведено в Таблице 3. 
  
-<startTableBox> 
-^ Кнопка ^ Описание ^ Действие ^   
-| {{  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_013.png?nolink  }}| Пометить ветку и всех ее потомков к удалению или снять пометку | Отмечает выбранную ветку и всех ее потомков к удалению/снимает отметку. После нажатия кнопки Сохранить действие становится необратимым. | 
-|  {{  ru/manual/manage_model/_change_manage_model_014.png?nolink  }}| Открыть ветку | Открывает выбранную ветку в Business Studio.  | 
-<endTableBox|Таблица 3.> 
  
  
  
-**Область свойств ветки** служит для ввода и просмотра значений параметров ветки. Описание параметров приведено в Таблице 4. 
  
  
-<startTableBox> +  
-^ Параметр ^ Описание параметра ^ +  
-| Название | Название ветки. | +  
-| Статус | Ветка может иметь один из двух статусов: "Активная" и "Закрытая". Статус "Закрытая" не позволяет вносить изменения в ветку. При создании новой ветки ей присваивается статус "Активная". | +[<contextnavigator>]  
-| Автор закрытия | Пользователь, установивший ветке статус "Закрыта". Параметр "Автор закрытия" заполняется автоматически при установке соответствующего статуса. | +  
-| Описание | Пользовательское описание ветки. | +  
-| Флаг "Применяемая" | Задает возможность применить ветку к вышележащей. Применяемые ветки используется для подготовки изменений модели. Ветки со снятым флагом "Применяемая" применить нельзя. | +
-| Флаг "Быстрый доступ" | Управляет отображением и возможностью выбрать ветку в **Окне выбора базы данных.** | +
-<endTableBox|Таблица 4.> +
- +
-**Список "История применений"** отображает перечень применений ветки. Дата – дата и время применения ветки. Комментарий – комментарий, введенный при применении.  +
- +
-====Работа в ветке==== +
-Открыть ветку в Business Studio можно из окна **Выбора базы данных** (см. Рисунок 3). В дереве веток базы отображаются ветки с установленным флагом **Быстрый доступ** (см. [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]).  +
-[{{  ru/manual/manage_model/autot_manage_model_05.png?nolink  |Рисунок 3.}}]  +
- +
-Также ветку можно открыть из **Окна управления ветками** (см. [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]). Название текущей ветки отображается в заголовке окна программы.  +
- +
-При создании или изменении объекта в ветке напротив его названия в Навигаторе или Окне справочника появляется соответствующая пиктограмма (см. Рисунок 4): +
-[{{ ru/manual/manage_model/cmdt_manage_model_06.png?nolink|Рисунок 4.}}] +
- +
-Аналогичные пиктограммы появляются при изменении параметра объекта или при создании/изменении строки списка (см. Рисунок 5): +
-    +
-[{{  ru/manual/manage_model/cmdt_manage_model_07.png?nolink  |Рисунок 5.}}] +
- +
-Описание пиктограмм приведено в Таблице 5 +
-<startTableBox> +
-^ Пиктограмма ^ Описание ^ +
-| {{  ru/manual/manage_model/const_manage_model_015.png?nolink  }} | Объект создан в текущей ветке | +
-| {{  ru/manual/manage_model/const_manage_model_016.png?nolink  }} | Объект изменен в текущей ветке | +
-<endTableBox|Таблица 5.> +
- +
-Перечень всех измененных объектов ветки можно увидеть с помощью команды **Буфер ветки**  ({{bslink>Главное меню → Управление моделью → Буфер ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;9e202d02-d0a4-4893-af8b-45415561b701:Item}}) (см. Рисунок 6). +
-[{{ ru/manual/manage_model/autot_manage_model_08.png?nolink|Рисунок 6.}}+
- +
- +
-Открыв свойства объекта, можно увидеть измененные параметры объекта.   \\   +
-Данная команда доступна только в дочерних ветках.  \\    \\   +
-== == +
-**Внимание!** После применения текущей ветки к родительской справочник **Буфер ветки** очищается.  +
-==== ==== +
-=====Конфликты модели при объединении веток==== +
-Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Такие изменения могут приводить к различного вида конфликтам в случае, если обе проектные группы применят свои изменения к актуальной модели. +
- +
-**Конфликты при использовании удаленных объектов** +
-В ветке А могут быть удалены объекты, которые изменены или начали использоваться в соседней ветке B. Под использованием объекта понимается его правка, создание или редактирование значения атрибута, создание бинарной связи с объектом. +
- После применения ветки А к актуальной модели в ветке B возникнут конфликты, связанные с использованием удаленных объектов  (cм. свойство веток "Изолированность данных ветки"). Для выявления таких случаев необходимо использовать команду «Проверка ветки» (См. [[/ru/manual/manage_model/branches#проверка_ветки  +
-| Проверка ветки]]). +
-=====Смысловые конфликты===== +
-Если в параллельно существующих ветках А и В были изменены параметры одного и того же объекта, или с ним создавались бинарные связи, то после объединения данных из обеих веток  может быть нарушена смысловая целостность модели (Рисунок 10), т.к., например, значения параметров .могут противоречить друг другу по смыслу. +
-рис. 10 +
-Рекомендуется перед применением ветки осуществлять визуальную проверку объектов, которые были изменены в другой ветке. Проверить, был ли изменен объект в другой ветке можно с помощью вкладки Экземпляры объекта в ветках Окна Анализ использования объекта (См. Операция ”Анализ использования объекта”).  +
-=====Проверка ветки===== +
-Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Например, в ветке А могут быть удалены объекты, которые изменены или начали использоваться в соседней ветке B. После применения ветки А к актуальной модели в ветке B возникнут конфликты (cм. свойство веток "Изолированность данных ветки").  +
-Для выявления и последующего устранения подобных случаев применяется операция **Проверки ветки** ({{bslink>Главное меню → Управление моделью → Проверить ветку|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;2049ddfb-88c7-4344-b752-91f4b292777b:Item}}).  +
-При наличии конфликтов результат выполнения данной операции выдается в текстовом окне с группировкой по типам ошибок и поддержкой гиперссылок на конфликтующие объекты. В Таблице 6 представлены типы ошибок, возникающие при проверке ветки, и их описание. +
- +
-<startTableBox> +
-^ Название типа ошибки ^ Описание ^ +
-| Использование удаленных в родительской ветке объектов | В текущей ветке есть объекты, параметры которых ссылаются на объекты, удаленные в родительской ветке. После применения текущей ветки в родительской ветке появятся объекты со ссылками на удаленные объекты. Для устранения данного типа ошибки необходимо изменить значения параметров, используя не удалённые объекты. | +
-| Изменение удаленных в родительской ветке объектов | В текущей ветке есть изменённые объекты, которые в родительской ветке имеют статус 'Удален'. Для устранения данного типа ошибки необходимо пересоздать измененные объекты в текущей ветке. | +
-| Наличие в текущей ветке ссылок на удаленные в текущей ветке объекты | В текущей ветке были удалены объекты, на которые есть ссылки из объектов буфера ветки. Для устранения данного типа ошибки необходимо изменить в текущей ветке значения параметров, ссылающиеся на удаленные объекты. | +
-| Наличие в текущей ветке объектов, имеющих удаленных родителей. | В текущей ветке есть объекты, имеющие удаленных родителей. Это могло произойти, если:  \\ 1. В текущей ветке были удалены объекты, под которыми впоследствии в родительской ветке были созданы новые объекты;  \\ 2. В текущей ветке были созданы объекты, родитель которых впоследствии был удален в родительской ветке. При применении текущей ветки к родительской объекты c удаленными родителям будут также удалены. Для устранения данного типа ошибки необходимо перенести конфликтующие объекты под другой родительский объект. Для этого откройте Окно свойств объекта с помощью гиперссылки в сообщении и выберите команду Сменить родителя (Действия → Сменить родителя). | +
-<endTableBox|Таблица 6.> +
- +
-При отсутствии конфликтов на экране отобразится сообщение (см. Рисунок 7).   \\    +
-[{{  ru/manual/manage_model/cmdt_manage_model_09.png?nolink  |Рисунок 7.}}]  +
-== == +
-**Внимание!** Операцию {{bslink>Проверки ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;2049ddfb-88c7-4344-b752-91f4b292777b:Item}} рекомендуется вызывать периодически, а также перед применением ветки. +
-==== ====    +
- +
-====Применение ветки==== +
- +
-Для применения изменений модели к вышестоящей ветке необходимо использовать операцию **Применения ветки** ({{bslink>Главное меню → Управление моделью → Применить ветку|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;6309925b-42cb-4b69-9bed-57622f8b5697:Item}}).  +
-Если текущую ветку невозможно применить к родительской, то на экране появляется соответствующее предупреждение. Текст предупреждений представлен в Таблице 7.  +
-<startTableBox> +
-^ Текст предупреждения ^ Решение ^ +
-| Ветка имеет статус "Закрыта". Применение невозможно. | Необходимо изменить статус текущей ветки на "Активна" (см. главу [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]) | +
-| Родительская ветка имеет статус "Закрыта". Применение невозможно. | Необходимо изменить статус родительской ветки на "Активна" (см. главу [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]) | +
-| Применять можно только ветку с установленным флажком "Применяемая". | Необходимо установить флаг "Применяемая" для текущей ветки (см. главу [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]) | +
-<endTableBox|Таблица 7.> +
- +
- +
- +
-Если текущую ветку возможно применить, то запускается проверка ветки на наличие конфликтов между объектами текущей ветки и ее родителя, а затем выполняется применение ветки. +
- +
-После успешного применения ветки в **Окне управления ветками** у примененной ветки появляется запись на вкладке **История применений** (см. Рисунок 8). +
-[{{ ru/manual/manage_model/autot_manage_model_010.png?nolink|Рисунок 8.}}] +
-== == +
-**Внимание!** Применяемые изменения актуальной модели могут повлиять на объекты, измененные в дочерних ветках. +
-====== ====== +
- +
-Применение ветки невозможно в следующих случаях:  +
-  - Любая из веток Базы данных открыта в Business Studio.  +
-  - По базе запущен или формируется Портал.  +
-  - К базе осуществляются запросы иным способом. Например, в приложении SQL Server Management Studio.  +
- +
-До окончания процесса применения ветки База данных заблокирована и войти в нее нельзя.  +
- +
-== == +
-**Внимание!** Наличие в Базе данных веток с большим объемом непременных изменений замедляет работу в программе, независимо от их статуса. Рекомендуется очищать базу от веток, которые стали не нужны.   +
-====== ====== +
  
-[<contextnavigator>]+  
 +  
 +  
 +
  
 +
 +
 +
 +
  
 +{(rater>id=ru_manual_manage_model_branches|name=Ветки|type=vote|trace=ip|headline=off)}
Driven by DokuWiki