Импорт продукта с помощью AIF

Я пытаюсь импортировать некоторые продукты через AIF при использовании AX 2012. Если я не устанавливаю сайт и местоположение покупки/продажи/изобретения по умолчанию, он работает нормально, но когда я пытаюсь установить их, я получаю следующее исключение :

Cannot create a record in Item purchase order settings (OST). 
The record already exists.
Error found when validating record.
Cannot edit a record in Item purchase order settings (InventItemPurchSetup). Item number: 
1472, 00000002_078.
The record already exists.

Элемент, который я пытаюсь загрузить, имеет ItemId 1472, поэтому он находится в исключении.

Вот код (я просто покажу настройку покупки, так как продажи и изобретение почти одинаковы):

            inventTable[0].InventItemPurchSetup = new[] { 
                new AxdEntity_InventItemPurchSetup {  
                    ItemId = inventTable[0].ItemId,
                    InventDimPurchSetup = new[] {
                        new AxdEntity_InventDimPurchSetup
                        {
                            InventDimId = "AllBlank2"
                        }
                    },
                    DefaultInventDimPurchSetup = new[] {
                        new AxdEntity_DefaultInventDimPurchSetup
                        {
                            InventDimId = "AllBlank2",
                            InventSiteId = "OST"
                        }
                    }
                },
                 new AxdEntity_InventItemPurchSetup {  
                    ItemId = inventTable[0].ItemId,
                    InventDimPurchSetup = new[] {
                        new AxdEntity_InventDimPurchSetup
                        {
                            InventSiteId = "OST"
                        }
                    },
                    DefaultInventDimPurchSetup = new[] {
                        new AxdEntity_DefaultInventDimPurchSetup
                        {
                            InventLocationId = "PER"
                        }
                    }
                }
            };

Любые идеи, что я делаю неправильно?


person CallumVass    schedule 13.08.2013    source источник


Ответы (1)


Я не работал с AIF, но сегодня, как ни странно, я делаю то же самое с инфраструктурой импорта и экспорта данных (DMF).

Мой вариант использования следующий:

  • Запустите DMFProductEntity, чтобы создать продукт, который виден во всех компаниях, а затем «выпустит» продукт, создающий ваш элемент (InventTable) с конфигурацией настройки Inv/Purch/Sales в выбранной компании.
  • Запустите DMFInventTableEntity, чтобы затем «выпустить» свой продукт для других компаний. Однако часть этого процесса вызывает функцию продукта EcoResProductReleaseManager::release, которая автоматически создает для вас конфигурацию установки Inv/Purch/Sales... Теперь, когда DMF пытается вставить эти таблицы из собственного источника данных он может генерировать ту же ошибку, что и выше.

В вашем случае, возможно, объекты типа InventItemPurchSetup уже созданы, и вам нужно закомментировать в своем коде такие объекты, как AllBlank, которые могут быть созданы по умолчанию.

ИЛИ вы нарушаете указанный выше индекс, пытаясь дважды вставить InventDimId AllBlank2. Ключом для таблицы InventItemInventSetup являются поля ItemId и InventDimId.

ИЛИ InventLocationId = "PER" использует значение '00000002_078' InventDimId, которое уже существует.

person ian_scho    schedule 16.08.2013