Поток создания и обновления активов

Поток выполнения создания/обновления активов выполняет базовую проверку параметров актива и исходного контекста.

Описание сегментов потока:

  1. Стартовый сегмент [ASSET_UPSERT_START] – обеспечивает базовую валидацию исходного контекста и выполняет его настройку для дальнейшего исполнения в потоке:

    • Контекст должен иметь данные для вставки.

    • Контекст должен иметь корректную идентификацию создаваемого/обновляемого актива: либо идентификация на основе эталонной записи (etalonId); либо идентификация на основе исходной записи (externalId, sourceSystem); либо оба варианта.

    • При создании нового актива должен быть указан внешний идентификатор (externalId) и система-источник (sourceSystem). Создание нового актива только с указанием идентификатора эталонной записи приведет к ошибке валидации.

    • Обновление эталонной/исходной записи доступно только для активных записей (статус ACTIVE).

    • Указанная в контексте система-источник данных должна присутствовать в перечне источников данных.

  2. Сегмент типа Point [ASSET_UPSERT_MEASURED] – нормализует измеряемые атрибуты исходной записи для вставки. Выполняет валидацию измеряемых атрибутов – проверяет измеряемые величины и их категории на наличие в списке существующих величин.

  3. Сегмент типа Selector [ASSET_UPSERT_SELECTOR] – обеспечивает ветвление потока. Если выполняется создание/обновление актива в режиме черновика, то запускается ветвь [DRAFT], в обычном режиме – ветвь [REGULAR].

  4. Финишный сегмент [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.