Ветки

Механизм Ветки обеспечивает работу над изменениями актуальной модели в изолированных областях базы данных и позволяет автоматически переносить изменения в актуальную модель "в один клик".

Основные понятия

В Таблице 1 приведены основные понятия, используемые в настоящем разделе.

Понятия Описание
Актуальная модель Модель, описывающая текущее состояние компании.
Буфер ветки Множество созданных/измененных, но еще не примененных к вышестоящей ветке объектов.
Ветка Изолированная логическая область базы данных Business Studio для разработки новых версий модели бизнес-архитектуры.
Дочерняя ветка Ветка, нижестоящая в иерархии веток по отношению к рассматриваемой ветке.
Иерархия веток Иерархическая структура, образованная ветками.
Корневая ветка Ветка, находящаяся в корне иерархии веток. Корневая ветка всегда присутствует в базе данных.
Применение ветки Операция применения данных ветки к вышележащей ветке. При этом данные ветки уходят в вышележащую ветку.
Родительская ветка Ветка, вышестоящая в иерархии веток по отношению к рассматриваемой ветке.
Таблица 1.

На Рисунке 1 показан пример иерархии веток и их возможного использования:

Рисунок 1.

Корневая ветка содержит Актуальную модель. По данной ветке в организации происходит формирование портала или публикации для распространения регламентов среди всех сотрудников.

Дочерние ветки содержат проекты изменений модели и могут быть применены к корневой ветке.

Свойства веток

  1. Дочерняя ветка после создания является отображением родительской ветки.

    Пример.
    Ветка 1.1 (см. Рисунок 1) после создания будет показывать те же самые данные, что и Ветка 1.

  2. После внесения изменений дочерняя ветка отображает будущее состояние родительской ветки.

    Это достигается за счет того, что ветка видит данные родительской ветки и накладывает на них изменения, внесенные непосредственно в ветке. Таким образом, дочерняя ветка отображает то, как после ее применения будет выглядеть родительская ветка.

  3. Единицей изменения данных в ветке является параметр объекта или сам объект, который может быть создан или удален в ветке. Пример отображения изменений состояния объекта показан в статье Работа в ветке.

  4. Изолированность данных ветки.

    Изменения в ветке видны в ее потомках («наследование изменений»), но не видны в соседних и родительских ветках. Следствие: изменения в корневой ветке видны во всех ветках-потомках.

    Пример.
    Только после применения Ветки 2 (см. Рисунок 1) к Корневой ветке, Ветка 1 и ее потомки также будут показывать изменения Корневой ветки.

  5. Изменения, внесенные в дочерней ветке, имеют приоритет над изменениями, внесенными в родительской ветке.
  6. Ветка теряет "буфер изменений" после применения к родительской ветке.

Классы объектов с точки зрения поддержки работы в ветках делятся на 3 типа, описание которых представлено в Таблице 2.

Тип класса Описание Примеры классов
Единые данные в ветках Класс, имеющий одну информацию для всех веток Проекты, Порталы, Типы опросов, Пользователи.
Изолированные данные в ветке с возможностью применения Класс, объекты которого изолированы в ветке и участвуют в применении ветки. Процессы, Объекты деятельности, Субъекты, Физические лица и другие классы объектной модели.
Изолированные данные в ветке без возможности применения Класс, объекты которого изолированы в ветке, но не участвуют в применении ветки. Значения показателей ССП, Данные имитации и контроллинга.
Таблица 2.

Важно! Так как справочник Отчеты объектов не относится к типу Единые данные в ветках, то настройка опции Портал для шаблонов отчетов должна производиться в Основной ветке портала (см. Основные понятия раздела Опросы).

Создание ветки

Ветки создаются в Окне управления ветками (см. Рисунок 2). Для перехода к данному окну необходимо в Окне выбора базы данных в контекстном меню базы выбрать Управление ветками (либо Свойства подключения к базе → Дополнительно → Управление ветками).

Рисунок 2.

Описание назначения кнопок панели инструментов приведено в Таблице 3.

Кнопка Описание Действие
Создать новую ветку Создает дочернюю ветку под выбранной веткой в навигаторе.
Создать новую папку Создает дочернюю папку под выбранной веткой в навигаторе.
Пометить ветку и всех ее потомков к удалению или снять пометку Отмечает выбранную ветку и всех ее потомков к удалению/снимает отметку. После нажатия кнопки Сохранить действие становится необратимым.
Открыть ветку Открывает выбранную ветку в Business Studio.
Таблица 3.

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

Параметр Описание параметра
Название Название ветки.
Статус Ветка может иметь один из двух статусов: "Активная" и "Закрытая". Статус "Закрытая" не позволяет вносить изменения в ветку. При создании новой ветки ей присваивается статус "Активная".
Автор закрытия Пользователь, установивший ветке статус "Закрыта". Параметр "Автор закрытия" заполняется автоматически при установке соответствующего статуса.
Описание Пользовательское описание ветки.
Флаг "Применяемая" Задает возможность применить ветку к вышележащей. Применяемые ветки используется для подготовки изменений модели. Ветки со снятым флагом "Применяемая" применить нельзя.
Флаг "Быстрый доступ" Управляет отображением и возможностью выбрать ветку в Окне выбора базы данных.
Таблица 4.

Список "История применений" отображает перечень применений ветки. Дата – дата и время применения ветки. Комментарий – комментарий, введенный при применении.

Права на действия с веткой описаны в Таблице 5.

Роль Права на действия с веткой
Администратор базы данных Создание, изменение, удаление и применение ветки.
Работа в ветке.
Пользователь Работа в ветке.
Таблица 5.

Работа в ветке

Открыть ветку в Business Studio можно из окна Выбора базы данных (см. Рисунок 3). В дереве веток базы отображаются ветки с установленным флагом Быстрый доступ (см. Создание ветки).

Рисунок 3.

Также ветку можно открыть из Окна управления ветками (см. Создание ветки). Название текущей ветки отображается в заголовке окна программы.

При создании или изменении объекта в ветке напротив его названия в Навигаторе или Окне справочника появляется соответствующая пиктограмма (см. Рисунок 4):

Рисунок 4.

Аналогичные пиктограммы появляются при изменении параметра объекта или при создании/изменении строки списка (см. Рисунок 5):

Рисунок 5.

Описание пиктограмм приведено в Таблице 6

Пиктограмма Описание
Объект создан в текущей ветке
Объект изменен в текущей ветке
Таблица 6.

Перечень всех измененных объектов ветки можно увидеть с помощью команды Буфер ветки (Главное меню → Управление моделью → Буфер ветки) (см. Рисунок 6).

Рисунок 6.

Открыв свойства объекта, можно увидеть измененные параметры объекта.
Данная команда доступна только в дочерних ветках.

Внимание! После применения текущей ветки к родительской справочник Буфер ветки очищается.

Конфликты модели при объединении веток

Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Такие изменения могут приводить к различного вида конфликтам в случае, если обе проектные группы применят свои изменения к общей вышестоящей ветке. Виды и примеры подобных конфликтов приведены ниже.

Конфликты при использовании удаленных объектов

В ветке А могут быть удалены объекты, которые изменены или начали использоваться в соседней ветке B. Под использованием объекта понимается его правка, создание или редактирование значения атрибута, создание бинарной связи с объектом. После применения ветки А к актуальной модели в ветке B возникнут конфликты, связанные с использованием удаленных объектов (cм. свойство веток выше). Для выявления таких случаев необходимо использовать команду «Проверка ветки» (См. Проверка ветки).

Смысловые конфликты

Если в параллельно существующих ветках А и В были изменены параметры одного и того же объекта, или с ним создавались бинарные связи, то после объединения данных из обеих веток может быть нарушена смысловая целостность модели (Рисунок 7), т.к., например, значения параметров объекта могут противоречить друг другу по смыслу.

Рисунок 7

Рекомендуется перед применением ветки осуществлять визуальную проверку объектов, которые были изменены в другой ветке. Проверить, был ли изменен объект в другой ветке можно с помощью вкладки Экземпляры объекта в ветках Окна Анализ использования объекта (См. Операция "Анализ использования объекта"”).

Проверка ветки

Для выявления использования удаленных в другой ветке объектов, применяется операция Проверки ветки (Главное меню → Управление моделью → Проверить ветку).

При наличии конфликтов результат выполнения данной операции выдается в текстовом окне с группировкой по типам ошибок, поддержкой гиперссылок на конфликтующие объекты и рекомендациями по исправлению ошибок.

При отсутствии конфликтов на экране отобразится сообщение (см. Рисунок 8).

Рисунок 8.

Внимание! Операцию Проверки ветки рекомендуется вызывать периодически, а также перед применением ветки.

Применение ветки

Для применения изменений модели к вышестоящей ветке необходимо использовать операцию Применения ветки (Главное меню → Управление моделью → Применить ветку). Если текущую ветку невозможно применить к родительской, то на экране появляется соответствующее предупреждение. Текст предупреждений представлен в Таблице 7.

Текст предупреждения Решение
Ветка имеет статус "Закрыта". Применение невозможно. Необходимо изменить статус текущей ветки на "Активна" (см. главу Создание ветки)
Родительская ветка имеет статус "Закрыта". Применение невозможно. Необходимо изменить статус родительской ветки на "Активна" (см. главу Создание ветки)
Применять можно только ветку с установленным флажком "Применяемая". Необходимо установить флаг "Применяемая" для текущей ветки (см. главу Создание ветки)
Таблица 7.

Если текущую ветку возможно применить, то запускается проверка ветки на наличие конфликтов между объектами текущей ветки и ее родителя, а затем выполняется применение ветки.

После успешного применения ветки в Окне управления ветками у примененной ветки появляется запись на вкладке История применений (см. Рисунок 9).

Рисунок 9.

Внимание! Применяемые изменения актуальной модели могут повлиять на объекты, измененные в дочерних ветках.

Применение ветки невозможно в следующих случаях:

  1. Любая из веток Базы данных открыта в Business Studio.
  2. По базе запущен или формируется Портал.
  3. К базе осуществляются запросы иным способом. Например, в приложении SQL Server Management Studio1).

До окончания процесса применения ветки База данных заблокирована и войти в нее нельзя.

Внимание! Наличие в Базе данных веток с большим объемом непременных изменений замедляет работу в программе, независимо от их статуса. Рекомендуется очищать базу от веток, которые стали не нужны.

1) SQL Server Management Studio (SSMS) - бесплатное ПО, доступное для скачивания на сайте Microsoft.
Driven by DokuWiki