Поток создания и обновления связей
Основной поток создания/обновления связей
Стартовый сегмент потока [RELATION_UPSERT_START] - обеспечивает базовую валидацию исходного контекста (наличие связи, проверку существования левого и правого концов связи, корректность статуса записи обновляемой связи). Выполняет настройку исходного контекста.
Сегменты типа Point:
[RELATION_UPSERT_ACCESS] - выполняет проверку прав пользователя на создание/обновление связи;
[RELATION_UPSERT_MEASURED] - нормализует измеряемые атрибуты связи перед сохранением;
[RELAТION_UPSERT_PERIOD_CHECK] - проверяет корректность границ периода актуальности создаваемой/обновляемой связи.
[RELATION_UPSERT_MODBOX] - сохраняет новую модификацию записи в контекст вставки/обновления связи.
[RELATION_UPSERT_TIMELINE] - вычисляет текущий и следующий таймлайн вставляемой/обновляемой связи. В потоке выполнения сегмент должен находиться ПОСЛЕ сегмента, сохраняющего новую модификацию связи - [RELATION_UPSERT_MODBOX].
Сегмент типа Selector [RELATION_UPSERT_SELECTOR] - определяет, по какой ветви потока исполнения пойдет процесс создания/изменения связи: черновик [DRAFT] или регулярный поток [REGULAR].
Финишный сегмент [RELATION_UPSERT_FINISH] - возвращает результат создания/обновления связи.
Ветвь потока [DRAFT]:
[RELATION_UPSERT_MODBOX] - сохраняет новую модификацию связи в контексте вставки/обновления связи.
[RELATION_UPSERT_STATE] - точка сохраняет в контекст вставки/обновления связи новое состояние связи. В потоке выполнения точка должна находиться после точки сохранения новой модификации связи (org.unidata.dg.data[RELATION_UPSERT_MODBOX]).
[RELATION_UPSERT_DRAFT] - создает/обновляет черновик связи с указанием соответствующей операции черновика.
[RELATION_UPSERT_POSTPROCESSING] - выполняет пост обработку вставляемой/обновляемой записи.
[RELATION_UPSERT_INDEXING] - подготавливает данные связи для индексации при вставке/обновлении.
[RELATION_UPSERT_PERSISTENCE] - точка выполняет финальную фазу вставки/обновления связи - обновление данных в постоянном хранилище.
Ветвь потока [REGULAR]:
[RELATION_UPSERT_MODBOX] - сохраняет новую модификацию связи в контексте вставки/обновления связи.
[RELATION_UPSERT_STATE] - точка сохраняет в контекст вставки/обновления связи новое состояние связи. В потоке выполнения точка должна находиться после точки сохранения новой модификации связи (org.unidata.dg.data[RELATION_UPSERT_MODBOX]).
[RELATION_UPSERT_VALIDATE] - выполняет валидацию вставки/обновления связи. Если операция неверна, то выбрасывает исключение.
[RELATION_CHANGE_VALIDATE] - выполняет изменение вставки/обновления связи. Если операция неверна, то выбрасывает исключение.
[RELATION_UPSERT_INDEXING] - подготавливает данные связи для индексации при вставке/обновлении.
[RELATION_UPSERT_SNAPSHOT] - создает снэпшот связи при загрузке сканером.
[RELATION_UPSERT_BREADCRUMBS] - сохраняет вложенную связь как breadcrumbs-связь.
[RELATION_UPSERT_SUBSCRIPTIONS] - отправляет уведомления всем пользователям подписавшимся на обновление актива со связями.
[RELATION_UPSERT_PERSISTENCE] - точка выполняет финальную фазу вставки/обновления связи - обновление данных в постоянном хранилище.
[RELATION_UPSERT_POSTPROCESSING] - выполняет пост-обработку вставляемой/обновляемой связи.
[RELATION_AUDIT_EVENT] - Обрабатывает успешные действия с активом данных и передает их в аудит или любому другому потребителю данных через домен сообщений. Сегмент желательно размещать в потоке выполнения в секции для обычных сегментов как можно позже.