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

Выполнение правил качества

  1. Стартовый сегмент [RECORD_UPSERT_START] - начинает процесс вставки/обновления записи.

  2. Сегмент типа Point [RECORD_UPSERT_ACCESS] - проверяет права текущего пользователя на вставку/обновление записи, согласно системным ролям.

  3. Сегмент типа Point [RECORD_UPSERT_MEASURED] - проверяет единицы измерения значений атрибутов вставляемой/обновляемой записи.

  4. Сегмент типа Point [RECORD_UPSERT_PERIOD_CHECK] - проверяет периоды актуальности вставляемой/обновляемой записи.

  5. Сегмент типа Point [RECORD_UPSERT_MODBOX] - сохраняет новую модификацию записи в контекст вставки/обновления записи.

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

  7. Сегмент типа Connector [RELATIONS_DELETE_CONNECTOR] - удаляет связи текущей записи.

  8. Сегмент типа Connector [RELATIONS_UPSERT_CONNECTOR] - создает/обновляет связи текущей записи.

  9. Сегмент типа Connector [CLASSIFICATION_DELETE_CONNECTOR] - удаляет классификации текущей записи.

  10. Сегмент типа Connector [CLASSIFICATION_UPSERT_CONNECTOR] - создает/обновляет классификации текущей записи.

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

  12. Финишный сегмент [RECORD_UPSERT_FINISH] - завершает процесс вставки/обновления записи.

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

  • Сегмент типа Selector [RECORD_UPSERT_DRAFT_DQ_SELECTOR] - определяет, по какой ветви потока исполнения пойдет процесс: фаза черновика [DRAFT_PHASE] или регулярная фаза [REGULAR].

    • Фаза черновика [DRAFT_PHASE] добавляет к основному потоку еще 3 сегмента выполнения:

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

      • [RELATION_UPSERT_CONNECTOR] - создает/обновляет связи текущей записи.

      • [CLASSIFICATION_UPSERT_CONNECTOR] - создает/обновляет классификации текущей записи.

  • Сегмент типа Point [RECORD_UPSERT_DRAFT] - создает/обновляет черновик записи с указанием соответствующей операции черновика.

  • Сегмент типа Point [RECORD_UPSERT_DRAFT_WORKFLOW_REFRESH] - запускает переиндексацию процессов и задач бизнес-процессов, относящихся к обновляемому черновику записи, с целью обновления отображаемого значения объекта.

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

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

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

  • Сегмент типа Point [RECORD_UPSERT_VALIDATE] - выполняет валидацию записи, в случае если запись невалидна, выбрасывает исключение.

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

  • Сегмент типа Point [RECORD_UPSERT_LOB_SUBMIT] - планирует прием атрибутов-файлов записи.

  • Сегмент типа Point [RECORD_UPSERT_TRANSITION] - фиксирует/обновляет список переходов состояний записи (например, удаление или восстановление).

  • Сегмент типа Point [RELATION_UPSERT_CONSTRAINTS] - выполняет проверки ограничений связей при обновлениях записи.

  • Сегмент типа Point [CLASSIFICATION_UPSERT_CONSTRAINTS] - выполняет проверки ограничений классификации при обновлениях записи.

  • Сегмент типа Connector [RELATION_UPSERT_CONTINUE_CONNECTOR]

  • Сегмент типа Connector [CLASSIFICATION_UPSERT_CONTINUE_CONNECTOR]

  • Сегмент типа Point [RECORD_UPSERT_PERSISTENCE] - выполняет финальную фазу вставки/обновления записи - перенос данных в постоянное хранилище.

  • Сегмент типа Point [RECORD_UPSERT_REFRESH] - обновляет информацию о записи из кэша или других временных хранилищ.

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

  • Сегмент типа Connector [RECORD_UPSERT_MATCHING_CONNECTOR] - позволяет встраивать сегмент для сохранения данных сопоставления в момент сохранения изменений записи и запускать правила сопоставления для них.

  • Сегмент типа Point [RECORD_AUDIT_EVENT] - обрабатывает успешные действия с записью данных и передает их в аудит или любому другому потребителю данных через домен сообщений. Сегмент желательно размещать в потоке выполнения в секции для обычных сегментов как можно позже.

  • Сегмент типа Fallback [RECORD_AUDIT_FALLBACK] - обрабатывает ошибки выполнения потока, если основная логика потока (Start, Point и Connector) завершилась с ошибкой. Обрабатывает неуспешные действия с записью данных и передает их в аудит или любому другому потребителю данных через домен сообщений. Сегмент нужно размещать в потоке выполнения в секции для сегментов - обработчиков ошибок.