Для синхронизации справочников используется вид межсистемного процесса с типом Синхронизация данных.
Если при создании записи справочника Виды межсистемных процессов заполнить поле Тип справочника, то в табличную часть записи добавляются сообщения SynchronizeRecordChanges и SynchronizeRecordDeletion с предзаполненными обработчиками на отправку и прием.
Вычисления обработчиков на удаление изменять не нужно. В вычисления обработчиков на изменение необходимо добавить сохранение синхронизируемых реквизитов в список.
В коде обработчиков можно получить две переменные:
• | Process – для работы с экземпляром межсистемного процесса. Для получения используется функция DCIGetProcess; |
• | ProcessMessage – для работы с экземпляром сообщения межсистемного процесса. Для получения используется функция DCIGetParams. |
Описание интерфейсов, их свойств и методов см. в разделе «Объектная модель SDK».
Записи связанных систем сопоставляются по глобальному ИД. У вида межсистемного процесса есть предопределенный параметр RecordGUID, который хранит глобальный ИД изменяемой записи справочника. При необходимости можно сопоставить записи с помощью ключевых реквизитов.
Синхронизируемые данные записи справочника рекомендуется заносить в список в виде пар «Имя-Значение». Список создается функцией DCIGetObjectDictionary.
Когда список элементов сформирован, данные выгружаются и добавляются к сообщению с помощью функции DCIAttachDataToProcessMessage. В системе-приемнике парная функция DCIGetDataFromProcessMessage считывает данные из файла сообщения и преобразует их список.
Для совместимости необходимо использовать функции, указанные выше. Это поможет избежать доработки обработчиков при переходе на новую версию системы.
Для анализа ошибок рекомендуется записывать отладочную информацию в лог-файл обработчиков.
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |