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


Ветки

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

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

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

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

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

Рисунок 1.

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

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

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

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

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

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

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

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

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

    Таблица 2.

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

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

    Таблица 3.

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

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

    Таблица 4.

    Список "История применений" отображает перечень применений ветки. Дата – дата и время применения ветки. Комментарий – комментарий, введенный при применении. ====Работа в ветке==== Открыть ветку в Business Studio можно из окна Выбора базы данных (см. Рисунок 3). В дереве веток базы отображаются ветки с установленным флагом Быстрый доступ (см. Создание ветки). [Рисунок 3.] Также ветку можно открыть из Окна управления ветками (см. Создание ветки). Название текущей ветки отображается в заголовке окна программы. При создании или изменении объекта в ветке напротив его названия в Навигаторе или Окне справочника появляется соответствующая пиктограмма (см. Рисунок 4): [Рисунок 4.] Аналогичные пиктограммы появляются при изменении параметра объекта или при создании/изменении строки списка (см. Рисунок 5): [Рисунок 5.] Описание пиктограмм приведено в Таблице 5

    ^ Пиктограмма ^ Описание ^ | | Объект создан в текущей ветке | | | Объект изменен в текущей ветке |

    Таблица 5.

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

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

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

    Таблица 6.

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

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

    Таблица 7.

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

Driven by DokuWiki