我正在尝试使用AX 2012时通过AIF导入一些产品。如果我没有设置默认的购买/销售/发明网站和位置,它工作正常,但当我尝试设置它们时,我得到了抛出以下异常:
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,因此它在异常中
以下是代码(我将仅显示购买设置,因为Sales和Invent几乎相同):
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"
}
}
}
};
任何想法我做错了什么?
答案 0 :(得分:0)
我没有和AIF合作,但今天奇怪的是,我在使用数据导入导出框架(DMF)做了同样的事情。
我的用例如下:
在您的情况下,也许已经创建了 InventItemPurchSetup 类型实体,您需要在代码中注释掉那些默认情况下可以创建的“AllBlank”。
OR 您正在打破上面的索引以插入'AllBlank2'InventDimId两次。 InventItemInventSetup 表的关键是 ItemId 和 InventDimId 字段。
OR InventLocationId =“PER”正在使用已存在的“00000002_078” InventDimId 值。