Обновление справочников в случае использования алгоритмов TGlossaryAlgorithm и TXMLAlgorithm состоит из следующих этапов:
1.Импорт файла во временную таблицу ##TABLE_NAME SQL-базы, где TABLE_NAME – идентификатор обновляемого элемента в конфигурации GuaService. В структуру временной таблицы будут включены следующие поля:
·все поля импортируемого файла в соответствии с настройкой алгоритма Соответствие полей.
·дополнительные системные поля, включая поле-ссылку на идентификатор записи таблицы импорта.
При загрузке данных во временную таблицу базы данных посредством алгоритма TGlossaryAlgorithm импорт данных из DBF-файла осуществляется посредством драйвера Visual FoxPro. При загрузке данных посредством алгоритма TXMLAlgorithm импорт данных из XML-файла осуществляется по результирующему select-запросу скрипта SQL. В дальнейшем поведение алгоритмов идентично.
2.В случае если в настройках алгоритма были указаны ключевые поля, во временной таблице создается индекс по этим полям.
3.Утилита GuaService выполняет скрипт инициализации, заданный в настройках алгоритма обновления.
4.Утилита GuaService сопоставляет данные во временной таблице и целевой таблице по настроенным ключевым полям. При сопоставлении записей во временной таблице в поле-ссылку будет проставлен идентификатор записи целевой таблицы, если строки обеих таблиц были соотнесены по ключевым полям. В случае если ключевые поля не были заданы, все строки загруженного файла будут считаться новыми (не соотнесенными).
5.Для соотнесенных строк утилита GuaService производит обновление строк целевой таблицы. Строка целевой таблицы будет обновлена, если
·во временной таблице имеется ссылка на соотнесенную строку целевой таблицы импорта;
·данные в целевой таблице импорта и временной таблице отличаются хотя бы для одного поля, указанного в настройке алгоритма.
6.Утилита GuaService переносит в целевую таблицу импорта как новые все не соотнесенные строки временной таблицы.
7.По завершении обновления справочника выполняется скрипт финализации, заданный в настройках алгоритма.