我在AX中有一个简单的自定义表,我需要创建一个Web服务,以便外部系统可以填充数据。我创建了一个Document服务,其中包含所有Axd *和Ax *对象。接下来我写了一个简单的控制台应用程序来尝试填充一些虚拟数据。有趣的是我只能填充字符串数据类型列。 Int,Real,Date,Enums等都没有通过。
在下面的代码中,我只获取StoreItemId和Barcode列,因为两者都是字符串。成本是真实的,ErrorType是Enum,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;
答案 0 :(得分:1)
对于某些类型,您必须指定已设置值,以便AX知道空值和设置的值之间的差异:
stagingSalesImport.Cost = 22;
stagingSalesImport.CostSpecified = true;
stagingSalesImport.ErrorType = AxdEnum_MMSImportErrorType.Posting;
stagingSalesImport.ErrorTypeSpecified = AxdEnum_MMSImportErrorType.Posting;
答案 1 :(得分:0)
感谢您回复Klaas,我也喜欢您的博客。
应该早点回复,但我修复了这个问题。 我没有尝试过Klaas的选项,但我查看了入站端口的数据策略,发现没有一个列被启用。我启用了我需要的并且大部分都需要它们。并猜猜是什么,这是有效的。我原以为默认情况下应该启用这些列。