В ходе своих экспериментов обнаружил, что при загрузке данных через механизм Data Synhro реконсиляция осуществляется только по primary_key, и другие аттрибуты в качестве ключа реконсиляции не используются.
Т.е. надо при выгрузке из системы источника писать в primary_key то значение, которое уникально идентифицирует объект, а если таких аттрибутов несколько, то при выгрузке формировать составной ключ?
Или я что-то не верно понял в эиом механизме?
В источнике данных указывается политика сопоставления данных в таблице синхронизации с данными внутри айтопа. Варианта два: использовать primary_key или использовать атрибуты.
В первом случае вы должны в колонку primary_key таблицы синхронизации положить внутренний id объекта в айтопе. То есть забрали данные из айтопа, прогнали через какие-то свои обработчики, изменили всё, кроме id и положили в таблицу синхронизации. Айтоп по своим id в primary_key обновит все существующие объекты. Если в primary_key попадет что-то, чего айтоп не знает, он будет постоянно создавать новый объект (если Действие при нуле: Создать).
Второй вариант сопоставления позволяет использовать набор атрибутов для поиска существующих объектов. Какие конкретно атрибуты использовать для поиска, указывается на вкладке Атрибуты в настройках источника данных. При этом в primary_key можно положить какой-нибудь идентификатор объекта во внешней системе, чтобы в дальнейшем обновлять по нему данные в таблице синхронизации.
Вооот, оказывается там есть какой-то переключатель по примари кей или по аттрибутам синхронизировать.
А где он? Я что-то не обнаружил. В результате у меня только по нему реконселировалось.
Спасибо, разобрался. Что-то пропустил эту настройку.