НАЧАЛО >> Слияние записей >> Алгоритм слияния📄 Скачать в DOCX
Основной маршрут выполнения:
Merge принимает запись-приемник, запись-источник и контекст res.res есть шифры jssh или njssh, модуль ищет связанные записи журнала и номера в базе ESVODT.sprepareRecord очищает пустые поля записи-приемника и проверяет режим эталонной записи.sprepareMergeClientRecord проходит по полям записи-источника.SetField, затем при необходимости SetFieldOcc.TryToLoadMerger ищет специализированный мергер в modules/MergeRecords/FieldMergers/<тип>/<поле>.inc.sprepareNJ, sprepareASP, sprepare330, sprepare691, sprepareRDR, sprepare902.CSpider.Режим эталонной записи работает двумя способами:
importEtalonDb: если уже есть запись из эталонной БД, остальные источники не меняют основное содержание, но держатель 902 все равно обрабатывается;fmtEtalonESVODT: если формат для сводной записи возвращает 1, основное слияние пропускается, а обрабатывается только 902.Особые функции:
sprepareNJ поддерживает связи номера журнала с записью журнала и при необходимости пытается подтянуть 922 из MARS;sprepareASP устанавливает связь аналитической записи с номером журнала через 463^W;sprepare330 выбирает аннотацию с большим числом повторений поля 330;sprepare922 выбирает оглавление с большим числом повторений поля 922;sprepareRDR добавляет служебные данные авторизации для читательских записей RDR/RDRU;sprepare902 добавляет или обновляет сведения о держателе документа.Поля 113, 902, 903, 907, 1288, 1289 и поля, обработанные специализированными мержерами, исключаются из статистического выбора значений через UnsetStatField.