使用AIF导入产品

时间:2013-08-13 10:57:00

标签: dynamics-ax-2012 aif

我正在尝试使用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"
                        }
                    }
                }
            };

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

我没有和AIF合作,但今天奇怪的是,我在使用数据导入导出框架(DMF)做了同样的事情。

我的用例如下:

  • 运行DMFProductEntity以创建在所有公司中都可见的产品,然后在所选公司中使用Inv / Purch / Sales设置配置“发布”创建项目(InventTable)的产品。
  • 运行DMFInventTableEntity,然后为其他公司“发布”您的产品。但是,此过程的一部分调用 EcoResProductReleaseManager :: release 产品功能,为您自动创建Inv / Purch / Sales设置配置......现在,当DMF尝试从其自己的数据源插入这些表时它可以产生与上面相同的错误。

在您的情况下,也许已经创建了 InventItemPurchSetup 类型实体,您需要在代码中注释掉那些默认情况下可以创建的“AllBlank”。

OR 您正在打破上面的索引以插入'AllBlank2'InventDimId两次。 InventItemInventSetup 表的关键是 ItemId InventDimId 字段。

OR InventLocationId =“PER”正在使用已存在的“00000002_078” InventDimId 值。

相关问题