Поток создания и обновления связей¶
Поток выполнения создания/обновления связей выполняет проверку параметров связи на наличие: левого/правого концов связи, прав пользователя на работу со связью.
Описание сегментов потока:
Стартовый сегмент: [RELATION_UPSERT_START] – обеспечивает базовую валидацию исходного контекста и выполняет его настройку для дальнейшего исполнения в потоке:
Контекст должен иметь корректную идентификацию левого и правого концов связи: либо идентификация на основе эталонной записи (etalonId); либо на основе исходной записи (externalId, sourceSystem); либо оба варианта.
Эталонные и исходные записи левого и правого концов связи должны иметь активный статус (ACTIVE).
Сегмент типа Selector: [RELATION_UPSERT_SELECTOR] – определяет по какой ветви потока пойдет процесс. Если выполняется создание/обновление связи в режиме черновика, то запускается ветвь [DRAFT]; в обычном режиме – ветвь [REGULAR].
Финишный сегмент: [RELATION_UPSERT_FINISH] – возвращает ключи и эталонную запись созданной/обновленной связи.
Ветвь потока [DRAFT]:
Point сегмент [RELATION_UPSERT_MODBOX] – выполняет подготовку внесенных изменений перед вычислением обновленного состояния связи.
Point сегмент [RELATION_UPSERT_STATE] – вычисляет обновленное состояние связи. Применяет внесенные изменения к текущему состоянию связи, создает эталонную запись.
Point сегмент [RELATION_UPSERT_DRAFT] – выполняет сохранение/обновление черновика актива.
Ветвь потока [REGULAR]:
Point сегмент [RELATION_UPSERT_MODBOX] – выполняет подготовку внесенных изменений перед вычислением обновленного состояния связи.
Point сегмент [RELATION_UPSERT_STATE] – вычисляет обновленное состояние связи. Применяет внесенные изменения к текущему состоянию связи, создает эталонную запись.
Point сегмент [RELATION_UPSERT_VALIDATE] – выполняет валидацию вычисленной эталонной записи на соответствие связи модели.
Point сегмент [RELATION_UPSERT_INDEXING] – вычисляет изменения связи для поискового индекса.
Point сегмент [RELATION_UPSERT_PERSISTENCE] – выполняет сохранение внесенных изменений в базу данных, поисковый индекс и хранилище графа.