Коннектор с типом систем «Microsoft Navision Axapta 3.0»
Синхронизация реквизитов типа «Справочник»
Если при настройке выгрузки данных из системы DIRECTUM в систему Axapta 3.0 в одном из справочников синхронизируется реквизит типа «Справочник», то должны выполняться следующие условия:
· заполнен соответствующий дополнительный параметр (см. раздел «Параметры обмена данными»);
· настроена синхронизация справочника, на который ссылается реквизит типа «Справочник». В нем должна быть настроена синхронизация реквизита системы Axapta 3.0, имя которого указано в дополнительном параметре (см. раздел «Параметры обмена данными»).
Это нужно для того, чтобы сохранялась ссылочная целостность.
Пример:
Справочник Договоры ссылается на справочник Валюты. Реквизит Валюты справочника Договоры имеет тип «Справочник». Если синхронизируются данные справочника Договоры, то нужно обязательно синхронизировать реквизит Валюты с полем CurrencyCode таблицы «Валюты» системы Axapta 3.0.
Если реквизит типа «Справочник» является обязательным в системе DIRECTUM, но для него не настроена синхронизация из системы Axapta 3.0, то для его заполнения можно воспользоваться механизмом пользовательских расчетов. В расчете автозаполнения реквизитов справочника системы DIRECTUM необходимо заполнить этот реквизит.
Пример:
В справочнике Договоры системы DIRECTUM реквизит Вид является обязательным и недоступен для редактирования. Заполнить этот реквизит можно только при создании записи справочника. Данный реквизит ссылается на справочник Виды регистрируемых договорных документов. Соответствующего справочника в системе Axapta 3.0 нет. Для того чтобы синхронизировать записи справочника Договоры из системы Axapta 3.0 в систему DIRECTUM, необходимо в тексте пользовательского расчета задать заполнение реквизита Вид следующим образом:
CURRENT_KIND_CODE_NOT_IN_LIST_INDEX = -1
KIND_CODE_FIRST_INDEX = 0
// Убедиться, что вид регистрируемого договорного документа не заполнен
if not Assigned(Object.RegisteringContractDocKind)
// Задать вид документа
ContractEDocKindList = CreateStringList()
// Получить список возможных видов регистрируемого договорного документа
ContractEDocKindList = GetRegContractKindsCorrespondingToEDocKind()
if ContractEDocKindList.Count > CURRENT_KIND_CODE_NOT_IN_LIST_INDEX
// Заполнить вид регистрируемого договорного документа значением первого
// элемента списка
Object.RegisteringContractDocKind = ContractEDocKindList.Values(
KIND_CODE_FIRST_INDEX)
endif
endif
Недопустимо синхронизировать в систему Axapta 3.0 справочники, которые ссылаются друг на друга. Например, справочники Работники и Подразделения системы DIRECTUM ссылаются друг на друга. В справочнике Работникиесть реквизит Подразделение, а в справочнике Подразделения есть поле Руководитель, значения которого выбираются из справочника Работники. Можно настроить синхронизацию в систему Axapta 3.0 только одного из этих справочников.
См. также:
· Синхронизация реквизитов типа «Признак».
© 2009, Компания DIRECTUM
|
Отправить комментарий к этому разделу на
support@directum.ru
|