Потоки выполнения действий с записями
В этой статье:
Поток выполнения вставки/обновления записи
Стартовый сегмент [RECORD_UPSERT_START] - Начинает процесс вставки/обновления записи.
Сегмент типа Point [RECORD_UPSERT_ACCESS] - Проверяет права текущего пользователя на вставку/обновление записи, согласно системным ролям.
Сегмент типа Point [RECORD_UPSERT_MEASURED] - Проверяет единицы измерения значений атрибутов вставляемой/обновляемой записи.
Сегмент типа Point [RECORD_UPSERT_PERIOD_CHECK] - Проверяет периоды актуальности вставляемой/обновляемой записи.
Сегмент типа Point [RECORD_UPSERT_MODBOX] - Сохраняет новую модификацию записи в контекст вставки/обновления записи.
Сегмент типа Point [RECORD_UPSERT_TIMELINE] - Вычисляет текущий и следующий таймлайн вставляемой/обновляемой записи. В потоке выполнения сегмент должен находиться ПОСЛЕ сегмента, сохраняющего новую модификацию записи - [RECORD_UPSERT_MODBOX].
Сегмент типа Point [RECORD_UPSERT_DRAFT_ID] - Создает ID черновика записи, если это необходимо.
Сегмент типа Connector [RELATIONS_DELETE_CONNECTOR] - Удаляет связи текущей записи.
Сегмент типа Connector [RELATIONS_UPSERT_CONNECTOR] - Создает/обновляет связи текущей записи.
Сегмент типа Connector [CLASSIFICATION_DELETE_CONNECTOR] - Удаляет классификации текущей записи.
Сегмент типа Connector [CLASSIFICATION_UPSERT_CONNECTOR] - Создает/обновляет классификации текущей записи.
Сегмент типа Selector [RECORD_UPSERT_SELECTOR] - Определяет, по какой ветви потока исполнения пойдет процесс: черновик [DRAFT] или регулярный поток [REGULAR].
Финишный сегмент [RECORD_UPSERT_FINISH] - Завершает процесс вставки/обновления записи.
Ветвь потока [DRAFT]:
Сегмент типа Selector [RECORD_UPSERT_DRAFT_DQ_SELECTOR] - Определяет, по какой ветви потока исполнения пойдет процесс: фаза черновика [DRAFT_PHASE] или регулярная фаза [REGULAR].
Фаза черновика [DRAFT_PHASE] добавляет к основному потоку еще 3 сегмента выполнения:
[RECORD_QUALITY_CONNECTOR] - Выполняет проверку назначенных на реестр/справочник наборов правил качества и, в случае их наличия, запускает поток выполнения правил качества для записей.
[RELATION_UPSERT_CONTINUE_CONNECTOR] - Создает/обновляет связи текущей записи.
[CLASSIFICATION_UPSERT_CONTINUE_CONNECTOR] - Создает/обновляет классификации текущей записи.
Сегмент типа Point [RECORD_UPSERT_DRAFT] - Создает/обновляет черновик записи с указанием соответствующей операции черновика.
Сегмент типа Point [RECORD_UPSERT_DRAFT_REFRESH] - Обновляет информацию о записи в черновике, которую обновляют в кэше и других временных хранилищах.
Сегмент типа 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) завершилась с ошибкой. Обрабатывает неуспешные действия с записью данных и передает их в аудит или любому другому потребителю данных через домен сообщений. Сегмент нужно размещать в потоке выполнения в секции для сегментов - обработчиков ошибок.
Поток получения истории записи
Стартовый сегмент [RECORD_HISTORY_START] - Начинает получение истории записи.
Сегмент типа Point [RECORD_HISTORY_RECORD] - Получает историю изменений записи.
Сегмент типа Point [RECORD_HISTORY_RELATIONS] - Получает историю изменений связей записи.
Сегмент типа Point [RECORD_HISTORY_CLASSIFICATIONS] - Получает историю изменений классификаций записи.
Сегмент типа Point [RECORD_HISTORY_TRANSITIONS] - Получает список переходов состояний записи (например, удаление или восстановление).
Финишный сегмент [RECORD_HISTORY_FINISH] - Заканчивает получение истории записи.
Поток выполнения удаления записи
Стартовый сегмент [RECORD_DELETE_START] - Начинает процесс удаления записи.
Сегмент типа Point: [RECORD_DELETE_ACCESS] - Проверяет права текущего пользователя на удаление записи согласно системным ролям.
Сегмент типа Point: [RECORD_DELETE_DRAFT_ID] - Создает ID черновика записи, если это необходимо.
Сегмент типа Connector: [RELATIONS_DELETE_CONNECTOR] - Удаляет связи данной записи.
Сегмент типа Connector: [CLASSIFICATION_DELETE_CONNECTOR] - удаляет классификации текущей записи.
Сегмент типа Point: [RECORD_DELETE_MEASURED] - Проверяет единицы измерения значений атрибутов удаляемой записи.
Сегмент типа Point: [RECORD_DELETE_PERIOD_CHECK] - Проверяет периоды актуальности удаляемой записи.
Сегмент типа Selector: [RECORD_DELETE_SELECTOR] - Определяет, как будет происходить удаление записи: в черновике или напрямую.
Сегмент типа Connector [RECORD_DELETE_MATCHING_CONNECTOR] - позволяет встраивать сегмент для сохранения/удаления данных сопоставления в момент удаления записи.
Финишный сегмент [RECORD_DELETE_FINISH] - Завершает процесс удаления записи.
Поток формирования кластеров запрашиваемой записи
Стартовый сегмент [RECORD_GET_START] - Начинает процесс получения кластеров для запрашиваемой записи.
Сегмент типа Point: [RECORD_READ_ACCESS] - Проверяет права текущего пользователя на получение записи согласно системным ролям.
Сегмент типа Point: [RECORD_GET_DIFF] - Получает разницу ревизий записи.
Сегмент типа Point: [RECORD_GET_VISTORY] - Получает историю изменений записи.
Сегмент типа Point: [RECORD_GET_ATTRIBUTES_POSTPROCESSING] - Выполняет пост обработку получаемой записи.
Сегмент типа Point: [RECORD_GET_SECURITY_POSTPROCESSING] - Фильтрует атрибуты получаемой записи по правам доступа.
Сегмент типа Point: [RECORD_AUDIT_EVENT] - Пример сегмента успешных действий с записью данных, которые могут быть сообщены в аудит или любому другому потребителю данных через домен сообщений. Сегмент желательно размещать в потоке выполнения в секции для обычных сегментов как можно позже.
Сегмент типа Connector [RELATIONS_GET_CONNECTOR] - Позволяет встраивать сегмент для получения данных о связях.
Сегмент типа Connector [CLASSIFICATION_GET_CONNECTOR] - Позволяет встраивать сегмент для получения данных о классификациях.
Сегмент типа Connector [RECORD_GET_QUALITY_CONNECTOR] - Получает вычисленные ошибки правил качества для запрашиваемой записи.
Сегмент типа Connector [RECORD_GET_MATCHING_CONNECTOR] - Позволяет встраивать сегмент для получения данных сопоставления для запрашиваемой записи.
Финишный сегмент [RECORD_GET_FINISH] - Завершает процесс получения кластеров для запрашиваемой записи.
Поток пакетного сохранения изменений записей
Стартовый сегмент [BATCH_RECORD_UPSERT_START] - Начинает процесс пакетной вставки/обновления записи.
Сегмент типа Point: [BATCH_RECORD_GET_PROCESS] - Получает записи из пакета.
Сегмент типа Point: [BATCH_RECORD_AUDIT_EVENT] - Пример сегмента успешных пакетных действий с записью данных, которые могут быть сообщены в аудит или любому другому потребителю данных через домен сообщений. Сегмент желательно размещать в потоке выполнения в секции для обычных сегментов как можно позже.
Сегмент типа Connector [RELATIONS_GET_CONNECTOR] - Позволяет встраивать сегмент для получения данных о связях.
Сегмент типа Connector [BATCH_RECORD_UPSERT_MATCHING_CONNECTOR] - Позволяет встраивать сегмент для сохранения/удаления данных сопоставления при выполнении пакетного сохранения изменений записей.
Финишный сегмент [BATCH_RECORD_UPSERT_FINISH] - Завершает процесс пакетной вставки/обновления записи.
Поток пакетного удаления записей
Стартовый сегмент [BATCH_RECORD_DELETE_START] - Начинает процесс пакетного удаления записи.
Сегмент типа Point: [BATCH_RECORD_DELETE_MULTI_DRAFT] - Создает/продолжает родительский мультичерновик для удаления группы записей. Сегмент обязателен для поддержки массового согласования.
Сегмент типа Point: [BATCH_RECORD_DELETE_PROCESS] - Обрабатывает удаление записей из пакета, собирает статистику по результатам обработки.
Сегмент типа Point: [BATCH_RECORD_DELETE_DRAFT_SKIP] - Пропускает оставшуюся часть потока выполнения, если этот поток начал удаление из существующего массового черновика. Сегмент обязателен для поддержки массового согласования.
Сегмент типа Point: [BATCH_RECORD_DELETE_PERSISTENCE] - Выполняет удаление записей из пакета, которые были успешно обработаны в точке [BATCH_RECORD_DELETE_PROCESS].
Сегмент типа Point: [BATCH_RECORD_AUDIT_EVENT] - Пример сегмента успешных пакетных действий с удалением данных, которые могут быть сообщены в аудит или любому другому потребителю данных через домен сообщений. Сегмент желательно размещать в потоке выполнения в секции для обычных сегментов как можно позже.
Финишный сегмент [BATCH_RECORD_DELETE_FINISH] - Завершает процесс пакетного удаления записи.