Версионирование активов
Версионирование активов позволяет создавать для актива несколько версий с разными состояниями и периодами действия.
Состояния версий:
Текущая - период действия включает текущую дату;
Прекратила действие - период окончания действия версии меньше текущей даты;
Будущая - период начала действия версии больше текущей даты;
Приостановленная - версия, сформированная в результате образования разрыва в жизненном цикле объекта;
Отмененная - версия, которая была удалена пользователем вручную или поглощена другими версиями объекта;
Информация о версии также отображается в результатах экспорта XLSX в колонке "Номер версии".
Статусы версий:
Статусы версий и их таймлайны пересчитываются ежедневно в 00:00:00 посредством фоновой операции для версий активов:
Которые завершили действие на дату запуска операции и являются актуальными;
Начало действия которых меньше, чем дата запуска операции и которые не являются актуальными.
Статусы версий и признак их актуальности обновляются в БД и в индексах Opensearch.
Примечания:
Проверка уникальности атрибутов версионируемых активов выполняется на уровне объектов. Периоды действия версий не учитываются.
Согласование изменений версионируемого актива выполняется в рамках черновика актива, который может содержать одновременно несколько версий. В качестве связанного объекта выступает версия, актуальная на текущую дату.
Версионирование поддерживает работу с бизнес-процессами.
Настройка версионирования актива
Настройка версионирования доступна при создании/редактировании модели типов активов.
Для выбранного типа актива необходимо включить флаг "Версионируемый" (соответствующий тег появится ниже автоматически) или добавить тег: versioning:true
посредством xml (Рисунок 1).
Если тип актива уже содержит данные, то при проставлении тега и публикации черновика появится уведомление о необходимости миграции.
Снятие флага "Версионируемый" недоступно, если тип актива содержит данные.
Предупреждение
После присваивания тега необходим запуск операции миграции версионируемых активов (versioningMigrationJob). До запуска операции карточки записей новых размеченных активов будут недоступны.

Рисунок 1 – Пример включения версионирования актива
Создание версии актива
Создание и редактирование версий выполняется в карточке актива в режиме черновика.
Для создания первой версии нового версионируемого актива необходимо указать период действия и опубликовать черновик. При публикации черновика отображается полный список изменений объекта (Рисунок 2).
Создание новой версии для существующего актива доступно в виджете "Версионирование". Также в виджете доступен просмотр списка версий по кнопке "Все версии" (Рисунок 3) и переключение на другие версии.
Примечания:
Период действия новой версии вычисляется автоматически и может быть изменен пользователем вручную. Новая версия создается как копия текущей открытой версии.
В рамках одного черновика доступно создание/редактирование нескольких версий. После сохранения изменений версии выполняется пересчет таймлайна объекта.
Период действия новой версии актива копируется от исходной.
Присвоение тегов и бизнес-ролей
Для версионируемых объектов теги и бизнес-роли присваиваются всем версиям записи. Редактирование тега или бизнес-роли в одной версии приведет к распространению изменений на все версии объекта.

Рисунок 2 – Пример отображения изменений объекта

Рисунок 3 – Пример отображения списка всех версий
Связи версионируемых активов
Вкладка "Связи" у версионируемых активов отображается также, как и для обычных активов за исключением некоторых нюансов:
Версионируемые связи отображаются в виде группы связей. Если версий одного объекта больше 1, то названием группы будет служить отображаемое имя объекта.
Столбцы с периодом действия, состоянием версии и номером версии отображаются в таблице связей по умолчанию.
Добавление связей
В окне добавления связей для версионируемых активов доступны фильтры по состоянию версии и периоду действия версии.
В дереве для связывания активов отображаются столбцы версии актива, статусом и периодом действия.
Версионированные активы при наличии более одной версии отображаются в виде группы - в заголовке будет отображаемое имя объекта. Группу можно раскрыть для отображения всех версий объекта.
Кардинальность связей
Проверка кардинальности связей между версионируемыми типами активов выполняется на уровне объектов. Для каждой версии количество связанных объектов на левом и правом конце не должно превышать настройки кардинальности. Периоды действия версий при этом не учитываются.
Пример проверки для связи 1:1: одна версия одного объекта может ссылаться только на один объект. Для того, чтобы создать связь со вторым объектом - необходимо создать еще одну версию, которая и будет ссылаться на второй объект.

Рисунок 4 – Пример отображения окна добавления связей
Удаление версий
Чтобы удалить версию актива:
Откройте необходимую запись актива и включите режим черновика.
Откройте список версий по кнопке "Все версии" и наведите курсор на строку необходимой версии.
В результате описанных выше действий доступно логическое удаление новых версий, созданных в этом черновике, а также крайней левой/правой версии таймлайна, если версия не имеет статус "Текущая".
После удаления версия останется в таймлайне в статусе "Отмененная".
Примечания:
Физическое удаление отмененных версий доступно только вне черновика.
При удалении записи актива все версии актива становятся логически удаленными. Статус версий в этом случае не изменяется.
Восстановление версий
Восстановление логически удаленных версий доступно с помощью восстановления самой записи актива. При этом будут восстановлены только те версии, которые были удалены каскадно во время удаления записи.
После восстановления объекта в черновике также доступно его редактирование.
Восстановление отдельных отмененных версий не поддерживается.
История версий
История версий записи доступна для просмотра в карточке записи с помощью кнопки меню , расположенной в верхнем правом углу экрана.
В отдельном окне открывается таблица, содержащая перечень ревизий записи, разделенных по версиям.
В таблице доступна фильтрация версий по номеру, состоянию и периоду действия (версия попадает в выборку, в случае если периоды пересекаются).
Также доступна сортировка столбцов таблицы по дате ревизии, а также по событию и пользователю, по нажатию кнопки справа от имени соответствующего столбца.
При выборе двух ревизий (не обязательно одной версии) появляется возможность их сравнения в отдельном окне, которое функционально повторяет стандартное окно сравнения версий.
Путь версионируемого актива
Путь версионируемых активов вычисляется для каждой версии отдельно. Построение происходит по вложенным связям с учетом периода действия связанных родительских версий на текущую дату. Путь не отображается, если актив не имеет связанных родительских версий, актуальных на текущую дату.

Рисунок 5 – Пример построения пути версионируемого актива