Это старая версия документа.


Ветки

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

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

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

На Рисунок 3 показан пример иерархии веток:

Рисунок 3.

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

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

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

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

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

  4. Изолированность данных ветки. Изменения модели в ветке до ее применения отображаются в ее потомках, но не отображаются в параллельных ей ветках и в ее родительских ветках.

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

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

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

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

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

Рисунок 4.

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

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

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

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

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

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

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

Рисунок 5.

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

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

Рисунок 6.

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

Рисунок 7.

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

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

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

Рисунок 8.

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

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

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

Разные проектные группы могут вносить в своих ветках противоречащие друг другу изменения в модель. Например, в ветке А могут быть удалены объекты, которые изменены или начали использоваться в соседней ветке B. После применения ветки А к актуальной модели в ветке B возникнут конфликты (cм. свойство веток “Изолированность данных ветки”). Для выявления и последующего устранения подобных случаев применяется операция Проверки ветки (Главное меню → Управление моделью → Проверить ветку). При наличии конфликтов результат выполнения данной операции выдается в текстовом окне с группировкой по типам ошибок и поддержкой гиперссылок на конфликтующие объекты. В Таблице 7 представлены типы ошибок, возникающие при проверке ветки, и их описание.

Название типа ошибки Описание
Использование удаленных в родительской ветке объектов В текущей ветке есть объекты, параметры которых ссылаются на объекты, удаленные в родительской ветке. После применения текущей ветки в родительской ветке появятся объекты со ссылками на удаленные объекты. Для устранения данного типа ошибки необходимо изменить значения параметров, используя не удалённые объекты.
Изменение удаленных в родительской ветке объектов В текущей ветке есть изменённые объекты, которые в родительской ветке имеют статус 'Удален'. Для устранения данного типа ошибки необходимо пересоздать измененные объекты в текущей ветке.
Наличие в текущей ветке ссылок на удаленные в текущей ветке объекты В текущей ветке были удалены объекты, на которые есть ссылки из объектов буфера ветки. Для устранения данного типа ошибки необходимо изменить в текущей ветке значения параметров, ссылающиеся на удаленные объекты.
Наличие в текущей ветке объектов, имеющих удаленных родителей. В текущей ветке есть объекты, имеющие удаленных родителей. Это могло произойти, если:
* В текущей ветке были удалены объекты, под которыми впоследствии в родительской ветке были созданы новые объекты;
* В текущей ветке были созданы объекты, родитель которых впоследствии был удален в родительской ветке. При применении текущей ветки к родительской объекты c удаленными родителям будут также удалены. Для устранения данного типа ошибки необходимо перенести конфликтующие объекты под другой родительский объект. Для этого откройте Окно свойств объекта с помощью гиперссылки в сообщении и выберите команду Сменить родителя (Действия → Сменить родителя).
Таблица 7.

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

Рисунок 9.

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

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

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

Текст предупреждения Решение
Ветка имеет статус “Закрыта”. Применение невозможно. Необходимо изменить статус текущей ветки на “Активна” (см. главу Создание ветки)
Родительская ветка имеет статус “Закрыта”. Применение невозможно. Необходимо изменить статус родительской ветки на “Активна” (см. главу Создание ветки)
Применять можно только ветку с установленным флажком “Применяемая”. Необходимо установить флаг “Применяемая” для текущей ветки (см. главу Создание ветки[[ru/manual/manage_model/branches#создание_ветки]Создание ветки].)
Таблица 8.

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

Рисунок 10.

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

Driven by DokuWiki