Поток автообновления записей зависимого реестра¶
Внимание
Дисклеймер.
Функция не входит в комплект поставки и поставляется только для некоторых заказчиков по договоренности.
Внимание
Модуль автообновления записей зависимого реестра не является частью бизнес-процессов и выполняется напрямую.
Назначение¶
Модуль предназначен для автоматического обновления записей в зависимом реестре при изменении записей в основном реестре.
В процессе обновления:
Выполняется поиск записи в зависимом реестре по дополнительным параметрам синхронизации.
Сравниваются атрибуты основной и зависимой записей.
Обновляются атрибуты зависимой записи при обнаружении расхождений.
Формируется новый период актуальности записи зависимого реестра.
В случае обнаружения дубликатов (две и более записи соответствуют условиям поиска), в системный лог записывается сообщение: "Найдено более одной актуальной записи", после чего процесс завершается.
Использование¶
После первого деплоя модуля в платформу, следует добавить кастомный сегмент в пайплайн [RECORD_UPSERT_START].
Выбрать пайплайн [RECORD_UPSERT_START] (Рисунок 1) и выбрать REGULAR (Рисунок 2) в структуре пайплайна (правая панель).
Спуститься вниз до конца ветки REGULAR, нажать "добавить сегмент" выше блока FALLBACK (Рисунок 3).
Выбрать из списка сегмент com.disgroup.pipeline.synchronizer [SYNCHRONIZER_REGISTER_RECORD_POINT] (Рисунок 4).
Стрелочками "вверх" поднять сегмент так, чтобы он располагался после коннектора [RECORD_QUALITY_CONNECTOR] и до кастомного сегмента [RECORD_START_UPSERT_STATUS] (Рисунок 5).
Сохранить пайплайн.
Настройте параметры (Рисунок 6):
SYNCHRONIZE – указывает, что реестр является основным для синхронизации. Должно быть задано любое значение (например, 1).
RECORD_SEARCH – JSON-объект с маппинг-атрибутами между основным и зависимым реестром.
Сохраните изменения и запустите процесс обновления.
Функциональность¶
Получение записи основного реестра.
Извлечение параметров поиска и маппинг-атрибутов.
Поиск соответствующей записи в зависимом реестре.
Сравнение значений атрибутов.
Обновление маппинг-атрибутов.
Создание нового периода актуальности.
Установка модуля¶
После первого деплоя модуля в платформу добавьте кастомный сегмент в пайплайн [RECORD_UPSERT_START].
Выберите пайплайн [RECORD_UPSERT_START] и ветку REGULAR.
Добавьте сегмент com.disgroup.pipeline.synchronizer [SYNCHRONIZER_REGISTER_RECORD_POINT] перед [RECORD_START_UPSERT_STATUS].
Сохраните настройки.
Архитектура¶
Spring-модуль для платформы Universe с главным классом PipelineSynchronizerModule.
Реализация поиска, обновления и сравнения атрибутов представлена интерфейсами:
SearchRecordComponent – поиск записей.
SimpleAttributeCreatorComponent – создание атрибутов.
UpdateRecordComponent – обновление записей.
SynchronizerRegisterService – сервис синхронизации.
Детальная реализация для зависимого реестра представлена пакетами:
com.disgroup.pipeline.synchronizer.model.ipandknf – модели JSON.
com.disgroup.pipeline.synchronizer.service.synchronizers.ipandknf – реализация обновления для REF_IPandKFH.
Кастомный REST API¶
Для обновления записей зависимого реестра можно использовать кастомный REST API:
``GET http://{{host_otp}}/universe-backend/api/v2/mdm/synchro/upsert/?etalonId=b4194148-b162-11ef-aec5-d136b7986200``
Где etalonId – полученный etalonId из предыдущего запроса.
Примечание:
Модуль работает только при наличии параметра SYNCHRONIZE в основном реестре. В его отсутствие автообновление не выполняется.
Рисунок 1 – Список пайпланов системы (Шаг 2)
Рисунок 2 – Список сегментов в пайплайне (Шаг 2)
Рисунок 3 – Кнопка “Добавить сегмент” (Шаг 3)
Рисунок 4 – Список доступных сегментов (Шаг 4)
Рисунок 5 – Список порядка выполнения сегментов в пайплане (Шаг 5)
Рисунок 6 – Дополнительные параметры реестра (Шаг 7)