Поток создания и обновления активов¶
Поток выполнения создания/обновления активов выполняет базовую проверку параметров актива и исходного контекста.
Описание сегментов потока:
Стартовый сегмент [ASSET_UPSERT_START] – обеспечивает базовую валидацию исходного контекста и выполняет его настройку для дальнейшего исполнения в потоке:
Контекст должен иметь данные для вставки.
Контекст должен иметь корректную идентификацию создаваемого/обновляемого актива: либо идентификация на основе эталонной записи (etalonId); либо идентификация на основе исходной записи (externalId, sourceSystem); либо оба варианта.
При создании нового актива должен быть указан внешний идентификатор (externalId) и система-источник (sourceSystem). Создание нового актива только с указанием идентификатора эталонной записи приведет к ошибке валидации.
Обновление эталонной/исходной записи доступно только для активных записей (статус ACTIVE).
Указанная в контексте система-источник данных должна присутствовать в перечне источников данных.
Сегмент типа Point [ASSET_UPSERT_MEASURED] – нормализует измеряемые атрибуты исходной записи для вставки. Выполняет валидацию измеряемых атрибутов – проверяет измеряемые величины и их категории на наличие в списке существующих величин.
Сегмент типа Selector [ASSET_UPSERT_SELECTOR] – обеспечивает ветвление потока. Если выполняется создание/обновление актива в режиме черновика, то запускается ветвь [DRAFT], в обычном режиме – ветвь [REGULAR].
Финишный сегмент [ASSET_UPSERT_FINISH] – возвращает ключи и эталонную запись созданного/обновленного актива.
Ветвь потока [DRAFT]:
Point сегмент [ASSET_UPSERT_MODBOX] – выполняет подготовку внесенных изменений из исходного контекста перед вычислением обновленного состояния актива.
Point сегмент [ASSET_UPSERT_STATE] – вычисляет обновленное состояние актива. Применяет внесенные изменения к текущему состоянию актива, создает эталонную запись.
Point сегмент [ASSET_UPSERT_DRAFT] – выполняет сохранение черновика актива.
Point сегмент [ASSET_UPSERT_POSTPROCESSING] – выполняет постобработку атрибутов актива. Вычисляет отображаемые значения для атрибутов типа «Перечисление» и заполняет шаблоны атрибутов типа «Ссылка на веб-ресурс».
Connector сегмент [RELATIONS_DELETE_CONNECTOR] – коннектор для удаления связей. Если исходный контекст создания/обновления актива содержит контекст удаления связей в виде фрагмента, то будет запущен поток выполнения удаления связи. Использование данного коннектора обеспечивает атомарность REST операций типа atomic.
Connector сегмент [RELATIONS_UPSERT_CONNECTOR] – коннектор для вставки связей. Если исходный контекст создания/обновления актива содержит контекст вставки связей в виде фрагмента, то будет запущен поток выполнения создания связи. Использование данного коннектора обеспечивает атомарность REST операций типа atomic.
Ветвь потока [REGULAR]:
Point сегмент [ASSET_UPSERT_MODBOX] – выполняет подготовку внесенных изменений из исходного контекста перед вычислением обновленного состояния актива.
Point сегмент [ASSET_UPSERT_STATE] – вычисляет обновленное состояние актива. Применяет внесенные изменения к текущему состоянию актива, создает эталонную запись.
Point сегмент [ASSET_UPSERT_VALIDATE] – выполняет валидацию вычисленной эталонной записи на соответствие записи модели актива, проверяет обязательные атрибуты.
Point сегмент [ASSET_UPSERT_INDEXING] – вычисляет изменения актива для поискового индекса.
Point сегмент [ASSET_UPSERT_LOB_SUBMIT] – выполняет сохранение файлов для атрибутов типа «Файл/Текстовый файл».
Point сегмент [ASSET_UPSERT_PERSISTENCE] – выполняет сохранение внесенных изменений в базу данных, поисковый индекс и хранилище графа.
Point сегмент [ASSET_UPSERT_POSTPROCESSING] – выполняет постобработку атрибутов актива. Вычисляет отображаемые значения для атрибутов «Перечисление» и заполняет шаблоны атрибутов типа «Ссылка на веб-ресурс».
Connector сегмент [RELATIONS_DELETE_CONNECTOR] – коннектор для удаления связей. Если исходный контекст создания/обновления актива содержит контекст удаления связей в виде фрагмента, то будет запущен поток выполнения удаления связи. Использование данного коннектора обеспечивает атомарность REST операций типа atomic.
Connector сегмент [RELATIONS_UPSERT_CONNECTOR] – коннектор для вставки связей. Если исходный контекст создания/обновления актива содержит контекст вставки связей в виде фрагмента, то будет запущен поток выполнения создания связи. Использование данного коннектора обеспечивает атомарность REST операций типа atomic.