动态 ax 2012 - 字符串数据类型除外,不通过 AIF 服务填充任何列



我在 AX 中有一个简单的自定义表,我需要为此创建一个 Web 服务,以便外部系统可以填充数据。我创建了一个文档服务,其中包含所有涉及的 Axd* 和 Ax* 对象。接下来,我编写了一个简单的控制台应用程序来尝试填充一些虚拟数据。有趣的是我只能填充字符串数据类型列。int,real,date,ennums等没有通过。

在下面的代码中,我只得到 StoreItemId 和 Barcode 列,因为两者都是字符串。成本是真实的,ErrorType 是枚举,DocketDate 是日期,它们都没有获得任何值。我和许多同事讨论过这个问题,没有人知道发生了什么。有谁知道或可以指出我一个新的方向吗?多谢。

PS - 我在 AIF 方面的经验有限,如果我错过了一些基本的东西,请原谅并让我知道。谢谢。

AxdEntity_MMSStagingSalesImport stagingSalesImport = new AxdEntity_MMSStagingSalesImport();
stagingSalesImport.StoreItemId = "9999";
stagingSalesImport.Barcode = "1234546";
stagingSalesImport.Cost = 22;
stagingSalesImport.ErrorType = AxdEnum_MMSImportErrorType.Posting;
stagingSalesImport.DocketDate = new DateTime(2014, 4, 4);
stagingSalesImport.IsDuplicate = AxdEnum_NoYes.Yes;

对于某些类型,必须指定已设置值,以便 AX 知道空值和设置的值之间的区别:

stagingSalesImport.Cost = 22;
stagingSalesImport.CostSpecified = true;
stagingSalesImport.ErrorType = AxdEnum_MMSImportErrorType.Posting;
stagingSalesImport.ErrorTypeSpecified = AxdEnum_MMSImportErrorType.Posting;

感谢您回复克拉斯,我也喜欢您的博客。

应该早点回复,但我解决了这个问题。我没有尝试 Klaas 的选项,但我查看了入站端口的数据策略,发现没有启用任何列。我启用了我需要的那些,并使其中大部分也是必需的。你猜怎么着,这奏效了。我期望默认情况下应该启用这些列。