0

我在使用 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,因此它在异常中

这是代码(我将只显示购买设置,因为销售和发明几乎相同):

            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"
                        }
                    }
                }
            };

任何想法我做错了什么?

4

1 回答 1

0

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

我的用例如下:

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

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

或者您正在打破上面的索引,尝试插入“AllBlank2”InventDimId 两次。InventItemInventSetup表的键是ItemIdInventDimId字段。

或者InventLocationId = "PER"正在使用已经存在的 '00000002_078' InventDimId值。

于 2013-08-16T12:44:45.507 回答