Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:manual:manage_model:branches [2020/09/16 16:42] 192.168.1.50 [Создание ветки] |
ru:manual:manage_model:branches [2020/12/10 10:54] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
=====Ветки===== | =====Ветки===== | ||
- | Механизм Веток обеспечивает работу над изменениями актуальной модели в изолированных областях базы данных и позволяет автоматически переносить изменения в актуальную модель “в один клик”. | + | Механизм **Ветки** обеспечивает работу над изменениями актуальной модели в изолированных областях базы данных и позволяет автоматически переносить изменения в актуальную модель "в один клик". |
====Основные понятия==== | ====Основные понятия==== | ||
- | В Таблице 2 приведены основные понятия, используемые в настоящем разделе. | + | В Таблице 1 приведены основные понятия, используемые в настоящем разделе. |
- | На Рисунок 3 показан пример иерархии веток: \\ \\ | + | <startTableBox> |
+ | ^ Понятия ^ Описание ^ | ||
+ | | Актуальная модель | Модель, описывающая текущее состояние компании. | | ||
+ | | Буфер ветки | Множество созданных/измененных, но еще не примененных к вышестоящей ветке объектов. | | ||
+ | | Ветка | Изолированная логическая область базы данных Business Studio для разработки новых версий модели бизнес-архитектуры. | | ||
+ | | Дочерняя ветка | Ветка, нижестоящая в иерархии веток по отношению к рассматриваемой ветке. | | ||
+ | | Иерархия веток | Иерархическая структура, образованная ветками. | | ||
+ | | Корневая ветка | Ветка, находящаяся в корне иерархии веток. Корневая ветка всегда присутствует в базе данных. | | ||
+ | | Применение ветки | Операция применения данных ветки к вышележащей ветке. При этом данные ветки уходят в вышележащую ветку. | | ||
+ | | Родительская ветка | Ветка, вышестоящая в иерархии веток по отношению к рассматриваемой ветке. | | ||
+ | <endTableBox|Таблица 1.> | ||
+ | |||
+ | |||
+ | |||
+ | На Рисунке 1 показан пример иерархии веток и их возможного использования: \\ \\ | ||
- | [{{ ru/manual/manage_model/lang_manage_model_03.png?nolink | Рисунок 3. }}] | + | [{{ ru/manual/manage_model/lang_manage_model_03.png?nolink | Рисунок 1. }}] |
+ | Корневая ветка содержит Актуальную модель. По данной ветке в организации происходит формирование портала или публикации для распространения регламентов среди всех сотрудников. | ||
+ | Дочерние ветки содержат проекты изменений модели и могут быть применены к корневой ветке. | ||
====Свойства веток==== | ====Свойства веток==== | ||
- | - В начальный момент времени после создания дочерняя ветка является отображением текущего состояния родительской ветки.\\ \\ **Пример.** \\ //Ветка 1.1 (см. Рисунок 3) после создания будет показывать те же самые данные, что и Ветка 1.// \\ \\ | + | - Дочерняя ветка после создания является отображением родительской ветки.\\ \\ **Пример.** \\ //Ветка 1.1 (см. Рисунок 1) после создания будет показывать те же самые данные, что и Ветка 1.// \\ \\ |
- | - После внесения изменений дочерняя ветка отображает будущее состояние родительской ветки. Это достигается за счет того, что ветка видит данные родительской ветки и накладывает на них изменения, внесенные непосредственно в ветке. Таким образом, дочерняя ветка отображает то, как после ее применения будет выглядеть родительская ветка. \\ \\ | + | - После внесения изменений дочерняя ветка отображает будущее состояние родительской ветки. \\ \\ Это достигается за счет того, что ветка видит данные родительской ветки и накладывает на них изменения, внесенные непосредственно в ветке. Таким образом, дочерняя ветка отображает то, как после ее применения будет выглядеть родительская ветка. \\ \\ |
- | - Единицей изменения данных в ветке является параметр объекта или объект, который может быть создан или удален в ветке. Пример отображения изменений состояния объекта показан в статье __Работа в ветке.__ \\ \\ | + | - Единицей изменения данных в ветке является параметр объекта или сам объект, который может быть создан или удален в ветке. Пример отображения изменений состояния объекта показан в статье [[ru/manual/manage_model/branches#работа_в_ветке|Работа в ветке]].\\ \\ |
- | - Изолированность данных ветки. Изменения модели в ветке до ее применения отображаются в ее потомках, но не отображаются в параллельных ей ветках и в ее родительских ветках.\\ \\ **Пример.** \\ //Только после применения Ветки 2 (см. Рисунок 3) к Корневой ветке, Ветка 1 и ее потомки также будут показывать изменения Корневой ветки.// | + | - Изолированность данных ветки. \\ \\ Изменения в ветке видны в ее потомках («наследование изменений»), но не видны в соседних и родительских ветках. Следствие: изменения в корневой ветке видны во всех ветках-потомках.\\ \\ **Пример.** \\ //Только после применения Ветки 2 (см. Рисунок 1) к Корневой ветке, Ветка 1 и ее потомки также будут показывать изменения Корневой ветки.// \\ \\ |
+ | - Изменения, внесенные в дочерней ветке, имеют приоритет над изменениями, внесенными в родительской ветке. | ||
+ | - Ветка теряет "буфер изменений" после применения к родительской ветке. | ||
- | Классы объектов с точки зрения поддержки работы в ветках делятся на 3 типа, описание которых представлено в Таблице 3. | + | Классы объектов с точки зрения поддержки работы в ветках делятся на 3 типа, описание которых представлено в Таблице 2. |
<startTableBox> | <startTableBox> | ||
^ Тип класса ^ Описание ^ Примеры классов ^ | ^ Тип класса ^ Описание ^ Примеры классов ^ | ||
Строка 21: | Строка 39: | ||
| Изолированные данные в ветке с возможностью применения | Класс, объекты которого изолированы в ветке и участвуют в применении ветки. | Процессы, Объекты деятельности, Субъекты, Физические лица и другие классы объектной модели. | | | Изолированные данные в ветке с возможностью применения | Класс, объекты которого изолированы в ветке и участвуют в применении ветки. | Процессы, Объекты деятельности, Субъекты, Физические лица и другие классы объектной модели. | | ||
| Изолированные данные в ветке без возможности применения | Класс, объекты которого изолированы в ветке, но не участвуют в применении ветки. | Значения показателей ССП, Данные имитации и контроллинга. | | | Изолированные данные в ветке без возможности применения | Класс, объекты которого изолированы в ветке, но не участвуют в применении ветки. | Значения показателей ССП, Данные имитации и контроллинга. | | ||
- | <endTableBox|Таблица 3.> | + | <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#основные_понятия | Основные понятия раздела Опросы]]). | ||
+ | ==== ==== | ||
====Создание ветки==== | ====Создание ветки==== | ||
- | Ветки создаются в **Окне управления ветками** (см. Рисунок 4). Для перехода к данному окну необходимо в **Окне выбора базы данных** в контекстном меню базы выбрать **Управление ветками** (либо **Свойства подключения к базе → Дополнительно → Управление ветками**). | + | Ветки создаются в **Окне управления ветками** (см. Рисунок 2). Для перехода к данному окну необходимо в **Окне выбора базы данных** в контекстном меню базы выбрать **Управление ветками** (либо **Свойства подключения к базе → Дополнительно → Управление ветками**). |
- | [{{ ru/manual/manage_model/autot_manage_model_04.png?nolink |Рисунок 4.}}] | + | [{{ ru/manual/manage_model/autot_manage_model_04.png?nolink |Рисунок 2.}}] |
- | Описание назначения кнопок панели инструментов приведено в Таблице 4. | + | Описание назначения кнопок панели инструментов приведено в Таблице 3. |
<startTableBox> | <startTableBox> | ||
^ Кнопка ^ Описание ^ Действие ^ | ^ Кнопка ^ Описание ^ Действие ^ | ||
- | | 1 | Создать новую ветку | | + | | {{ ru/manual/manage_model/_const_manage_model_011.png?nolink }} | Создать новую ветку | Создает дочернюю ветку под выбранной веткой в навигаторе. | |
- | | Проект | Объект проходит согласование. | Создает дочернюю ветку под выбранной веткой в навигаторе. | | + | | {{ ru/manual/manage_model/_const_manage_model_012.png?nolink }} | Создать новую папку | Создает дочернюю папку под выбранной веткой в навигаторе. | |
- | | 2 | Создать новую папку | Создает дочернюю папку под выбранной веткой в навигаторе. | | + | | {{ ru/manual/manage_model/_const_manage_model_013.png?nolink }}| Пометить ветку и всех ее потомков к удалению или снять пометку | Отмечает выбранную ветку и всех ее потомков к удалению/снимает отметку. После нажатия кнопки Сохранить действие становится необратимым. | |
- | | 3 | Пометить ветку и всех ее потомков к удалению или снять пометку | Отмечает выбранную ветку и всех ее потомков к удалению/снимает отметку. После нажатия кнопки Сохранить действие становится необратимым. | | + | | {{ ru/manual/manage_model/_change_manage_model_014.png?nolink }}| Открыть ветку | Открывает выбранную ветку в Business Studio. | |
- | | 4 | Открыть ветку | Открывает выбранную ветку в Business Studio. | | + | <endTableBox|Таблица 3.> |
- | <endTableBox|Таблица 4. Описание статусов версий> | + | |
- | **Область свойств ветки** служит для ввода и просмотра значений параметров ветки. Описание параметров приведено в Таблице 5. | + | **Область свойств ветки** служит для ввода и просмотра значений параметров ветки. Описание параметров приведено в Таблице 4. |
- | **Список “История применений”** отображает перечень применений ветки. Дата – дата и время применения ветки. Комментарий – комментарий, введенный при применении. | + | |
+ | <startTableBox> | ||
+ | ^ Параметр ^ Описание параметра ^ | ||
+ | | Название | Название ветки. | | ||
+ | | Статус | Ветка может иметь один из двух статусов: "Активная" и "Закрытая". Статус "Закрытая" не позволяет вносить изменения в ветку. При создании новой ветки ей присваивается статус "Активная". | | ||
+ | | Автор закрытия | Пользователь, установивший ветке статус "Закрыта". Параметр "Автор закрытия" заполняется автоматически при установке соответствующего статуса. | | ||
+ | | Описание | Пользовательское описание ветки. | | ||
+ | | Флаг "Применяемая" | Задает возможность применить ветку к вышележащей. Применяемые ветки используется для подготовки изменений модели. Ветки со снятым флагом "Применяемая" применить нельзя. | | ||
+ | | Флаг "Быстрый доступ" | Управляет отображением и возможностью выбрать ветку в **Окне выбора базы данных.** | | ||
+ | <endTableBox|Таблица 4.> | ||
+ | |||
+ | **Список "История применений"** отображает перечень применений ветки. Дата – дата и время применения ветки. Комментарий – комментарий, введенный при применении. | ||
+ | |||
+ | Права на действия с веткой описаны в Таблице 5. | ||
+ | |||
+ | <startTableBox> | ||
+ | ^ Роль ^ Права на действия с веткой ^ | ||
+ | | Администратор базы данных | Создание, изменение, удаление и применение ветки. \\ Работа в ветке.| | ||
+ | | Пользователь | Работа в ветке. | | ||
+ | <endTableBox|Таблица 5.> | ||
====Работа в ветке==== | ====Работа в ветке==== | ||
- | Открыть ветку в Business Studio можно из окна **Выбора базы данных** (см. Рисунок 5). В дереве веток базы отображаются ветки с установленным флагом **Быстрый доступ** (см. __Создание ветки__). | + | Открыть ветку в Business Studio можно из окна **Выбора базы данных** (см. Рисунок 3). В дереве веток базы отображаются ветки с установленным флагом **Быстрый доступ** (см. [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]). |
- | [{{ ru/manual/manage_model/autot_manage_model_05.png?nolink |Рисунок 5.}}] | + | [{{ ru/manual/manage_model/autot_manage_model_05.png?nolink |Рисунок 3.}}] |
- | Также ветку можно открыть из **Окна управления ветками** (см. __Создание ветки__). Название текущей ветки отображается в заголовке окна программы. | + | Также ветку можно открыть из **Окна управления ветками** (см. [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]). Название текущей ветки отображается в заголовке окна программы. |
- | При создании или изменении объекта в ветке напротив его названия в Навигаторе или Окне справочника появляется соответствующая пиктограмма (см. Рисунок 6): | + | При создании или изменении объекта в ветке напротив его названия в Навигаторе или Окне справочника появляется соответствующая пиктограмма (см. Рисунок 4): |
- | [{{ ru/manual/manage_model/cmdt_manage_model_06.png?nolink|Рисунок 6.}}] | + | [{{ ru/manual/manage_model/cmdt_manage_model_06.png?nolink|Рисунок 4.}}] |
- | Аналогичные пиктограммы появляются при изменении параметра объекта или __при создании/изменении__ строки списка (см. Рисунок 7): | + | Аналогичные пиктограммы появляются при изменении параметра объекта или при создании/изменении строки списка (см. Рисунок 5): |
- | [{{ ru/manual/manage_model/cmdt_manage_model_07.png?nolink |Рисунок 7.}}] | + | [{{ ru/manual/manage_model/cmdt_manage_model_07.png?nolink |Рисунок 5.}}] |
Описание пиктограмм приведено в Таблице 6 | Описание пиктограмм приведено в Таблице 6 | ||
+ | <startTableBox> | ||
+ | ^ Пиктограмма ^ Описание ^ | ||
+ | | {{ ru/manual/manage_model/const_manage_model_015.png?nolink }} | Объект создан в текущей ветке | | ||
+ | | {{ ru/manual/manage_model/const_manage_model_016.png?nolink }} | Объект изменен в текущей ветке | | ||
+ | <endTableBox|Таблица 6.> | ||
- | Перечень всех измененных объектов ветки можно увидеть с помощью команды **Буфер ветки** ({{bslink>Главное меню → Управление моделью → Буфер ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;9e202d02-d0a4-4893-af8b-45415561b701:Item}}) (см. Рисунок 8). | + | Перечень всех измененных объектов ветки можно увидеть с помощью команды **Буфер ветки** ({{bslink>Главное меню → Управление моделью → Буфер ветки|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;9e202d02-d0a4-4893-af8b-45415561b701:Item}}) (см. Рисунок 6). |
- | [{{ ru/manual/manage_model/autot_manage_model_08.png?nolink|Рисунок 8.}}] | + | [{{ ru/manual/manage_model/autot_manage_model_08.png?nolink|Рисунок 6.}}] |
Открыв свойства объекта, можно увидеть измененные параметры объекта. \\ | Открыв свойства объекта, можно увидеть измененные параметры объекта. \\ | ||
Данная команда доступна только в дочерних ветках. \\ \\ | Данная команда доступна только в дочерних ветках. \\ \\ | ||
- | **Внимание!** \\ | + | == == |
- | После применения текущей ветки к родительской справочник **Буфер ветки** очищается. | + | **Внимание!** После применения текущей ветки к родительской справочник **Буфер ветки** очищается. |
+ | ==== ==== | ||
+ | ====Конфликты модели при объединении веток==== | ||
+ | Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Такие изменения могут приводить к различного вида конфликтам в случае, если обе проектные группы применят свои изменения к общей вышестоящей ветке. Виды и примеры подобных конфликтов приведены ниже. | ||
+ | |||
+ | **Конфликты при использовании удаленных объектов** | ||
+ | |||
+ | В **ветке А** могут быть удалены объекты, которые изменены или начали использоваться в соседней **ветке B**. Под использованием объекта понимается его правка, создание или редактирование значения атрибута, создание бинарной связи с объектом. | ||
+ | После применения **ветки А** к актуальной модели в **ветке B** возникнут конфликты, связанные с использованием удаленных объектов (cм. свойство веток выше). Для выявления таких случаев необходимо использовать команду «Проверка ветки» (См. [[/ru/manual/manage_model/branches#проверка_ветки | ||
+ | | Проверка ветки]]). | ||
+ | |||
+ | **Смысловые конфликты** | ||
+ | |||
+ | Если в параллельно существующих **ветках А** и **В** были изменены параметры одного и того же объекта, или с ним создавались бинарные связи, то после объединения данных из обеих веток может быть нарушена смысловая целостность модели (Рисунок 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}}). | ||
+ | |||
+ | При наличии конфликтов результат выполнения данной операции выдается в текстовом окне с группировкой по типам ошибок, поддержкой гиперссылок на конфликтующие объекты и рекомендациями по исправлению ошибок. | ||
+ | |||
+ | При отсутствии конфликтов на экране отобразится сообщение (см. Рисунок 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}} рекомендуется вызывать периодически, а также перед применением ветки. | ||
+ | ==== ==== | ||
- | ====Проверка ветки==== | ||
- | Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Например, в ветке А могут быть удалены объекты, которые изменены или начали использоваться в соседней ветке B. После применения ветки А к актуальной модели в ветке B возникнут конфликты (cм. свойство веток “Изолированность данных ветки”). | ||
- | Для выявления и последующего устранения подобных случаев применяется операция **Проверки ветки** ({{bslink>Главное меню → Управление моделью → Проверить ветку|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;2049ddfb-88c7-4344-b752-91f4b292777b:Item}}). | ||
- | При наличии конфликтов результат выполнения данной операции выдается в текстовом окне с группировкой по типам ошибок и поддержкой гиперссылок на конфликтующие объекты. В Таблице 7 представлены типы ошибок, возникающие при проверке ветки, и их описание. | ||
- | При отсутствии конфликтов на экране отобразится сообщение (см. Рисунок 9). \\ | ||
- | [{{ ru/manual/manage_model/cmdt_manage_model_09.png?nolink |Рисунок 9.}}] | ||
- | **Внимание!** \\ | ||
- | Операцию {{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}}). | Для применения изменений модели к вышестоящей ветке необходимо использовать операцию **Применения ветки** ({{bslink>Главное меню → Управление моделью → Применить ветку|ShowRibbonPageOrItem?ba822b6e-a8a7-4e7f-89b0-07ce48c12736;6309925b-42cb-4b69-9bed-57622f8b5697:Item}}). | ||
- | Если текущую ветку невозможно применить к родительской, то на экране появляется соответствующее предупреждение. Текст предупреждений представлен в Таблице 8. | + | Если текущую ветку невозможно применить к родительской, то на экране появляется соответствующее предупреждение. Текст предупреждений представлен в Таблице 7. |
+ | <startTableBox> | ||
+ | ^ Текст предупреждения ^ Решение ^ | ||
+ | | Ветка имеет статус "Закрыта". Применение невозможно. | Необходимо изменить статус текущей ветки на "Активна" (см. главу [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]) | | ||
+ | | Родительская ветка имеет статус "Закрыта". Применение невозможно. | Необходимо изменить статус родительской ветки на "Активна" (см. главу [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]) | | ||
+ | | Применять можно только ветку с установленным флажком "Применяемая". | Необходимо установить флаг "Применяемая" для текущей ветки (см. главу [[ru/manual/manage_model/branches#создание_ветки|Создание ветки]]) | | ||
+ | <endTableBox|Таблица 7.> | ||
+ | |||
+ | |||
+ | |||
+ | Если текущую ветку возможно применить, то запускается проверка ветки на наличие конфликтов между объектами текущей ветки и ее родителя, а затем выполняется применение ветки. | ||
+ | |||
+ | После успешного применения ветки в **Окне управления ветками** у примененной ветки появляется запись на вкладке **История применений** (см. Рисунок 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]].)). | ||
+ | |||
+ | До окончания процесса применения ветки База данных заблокирована и войти в нее нельзя. | ||
+ | |||
+ | == == | ||
+ | **Внимание!** Наличие в Базе данных веток с большим объемом непременных изменений замедляет работу в программе, независимо от их статуса. Рекомендуется очищать базу от веток, которые стали не нужны. | ||
+ | ====== ====== | ||
- | Если текущую ветку возможно применить, то запускается проверка ветки на наличие конфликтов между объектами текущей ветки и ее родителя, а затем выполняется применение ветки.. | ||
- | После успешного применения ветки в Окне управления ветками у примененной ветки появляется запись на вкладке История применений (см. Рисунок 10). | ||
- | [{{ ru/manual/manage_model/autot_manage_model_010.png?nolink|Рисунок 10.}}] | ||
- | Внимание! | + | [<contextnavigator>] |
- | Применяемые изменения актуальной модели могут повлиять на объекты, измененные в дочерних ветках. | + | |