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

Основной поток создания/обновления связей

  1. Стартовый сегмент потока [RELATION_UPSERT_START] - обеспечивает базовую валидацию исходного контекста (наличие связи, проверку существования левого и правого концов связи, корректность статуса записи обновляемой связи). Выполняет настройку исходного контекста.

  2. Сегменты типа Point:

    • [RELATION_UPSERT_ACCESS] - выполняет проверку прав пользователя на создание/обновление связи;

    • [RELATION_UPSERT_MEASURED] - нормализует измеряемые атрибуты связи перед сохранением;

    • [RELAТION_UPSERT_PERIOD_CHECK] - проверяет корректность границ периода актуальности создаваемой/обновляемой связи.

    • [RELATION_UPSERT_MODBOX] - сохраняет новую модификацию записи в контекст вставки/обновления связи.

    • [RELATION_UPSERT_TIMELINE] - вычисляет текущий и следующий таймлайн вставляемой/обновляемой связи. В потоке выполнения сегмент должен находиться ПОСЛЕ сегмента, сохраняющего новую модификацию связи - [RELATION_UPSERT_MODBOX].

  3. Сегмент типа Selector [RELATION_UPSERT_SELECTOR] - определяет, по какой ветви потока исполнения пойдет процесс создания/изменения связи: черновик [DRAFT] или регулярный поток [REGULAR].

  4. Финишный сегмент [RELATION_UPSERT_FINISH] - возвращает результат создания/обновления связи.

Ветвь потока [DRAFT]:

  • [RELATION_UPSERT_TIMELINE] - вычисляет обновленный таймлайн связи. Применяет внесенные изменения к текущему таймлайну связи, вычисляет периоды актуальности, создает эталонную запись связи;

  • [RELATION_UPSERT_DRAFT] - выполняет сохранение/обновление черновика связи;

  • [RELATION_UPSERT_POSTPROCESSING] - выполняет постобработку атрибутов связи. Вычисляет отображаемые значения для атрибутов типа "Перечисление" и "Ссылка на справочник", заполняет шаблоны ссылок на веб-ресурсы;

Ветвь потока [REGULAR]:

  • [RELATION_UPSERT_VALIDATE] - выполняет валидацию атрибутов создаваемой/обновляемой связи и проверяет согласованность данных.

  • [RELATION_REFERENCE_TIMELINE] - Вычисляет текущий и следующий общий таймлайн вставляемой/обновляемой/удаляемой связи типа "Ссылка". В потоке выполнения точка должна находиться ПОСЛЕ точки, вычисляющей текущий и следующий таймлайны (org.unidata.mdm.data[RELATION_UPSERT_TIMELINE] для вставки/обновления связи, org.unidata.mdm.data[RELATION_DELETE_TIMELINE] для удаления связи).

  • [RELATION_UPSERT_INDEXING] - вычисляет изменения в поисковом индексе при создании/обновлении связи.

  • [RELATION_UPSERT_TRANSITION] - фиксирует/обновляет список переходов состояний связи.

  • [RELATION_UPSERT_LOB_SUBMIT] - планирует прием атрибутов-файлов связи.

  • [RELATION_UPSERT_PERSISTENCE] - применяет изменения, вычисленные при создании/обновлении связи, в базу данных и поисковый индекс.

  • [RELATION_UPSERT_POSTPROCESSING] - выполняет пост-обработку вставляемой/обновляемой связи.