C# 将NAV 2013 R2 Web服务与第81页Gen_uuuu日志行一起使用时出错

C# 将NAV 2013 R2 Web服务与第81页Gen_uuuu日志行一起使用时出错,c#,web-services,microsoft-dynamics,dynamics-nav,C#,Web Services,Microsoft Dynamics,Dynamics Nav,我正在构建一个C#应用程序来读取一些银行对账单文件,并在Gen#Journal行表中创建一些注册表 我已经将第81页Gen_uuu日志行配置为webservice,并通过oData接口进行访问 我得到了一个错误: insert命令中缺少主键值、日记账\批处理\名称、日记账\模板\名称、行\号。确保页面上的所有主键都有控件支持,以便进行设置 我已经在笔记本电脑上安装了NAV 2013 R2和演示数据库,配置了相同的Web服务,并且使用相同的代码工作 但是在客户端的导航服务器中,我得到了上面的错误

我正在构建一个C#应用程序来读取一些银行对账单文件,并在Gen#Journal行表中创建一些注册表

我已经将第81页Gen_uuu日志行配置为webservice,并通过oData接口进行访问

我得到了一个错误: insert命令中缺少主键值、日记账\批处理\名称、日记账\模板\名称、行\号。确保页面上的所有主键都有控件支持,以便进行设置

我已经在笔记本电脑上安装了NAV 2013 R2和演示数据库,配置了相同的Web服务,并且使用相同的代码工作

但是在客户端的导航服务器中,我得到了上面的错误

在调用nav.SaveChanges()之前,我正在打印提到的字段,这些字段具有预期的值


有什么想法吗?

如果您发布标准的通用期刊(第39页),则无法通过web服务添加行

当您调用在日志中创建新行的代码时,主键字段应该显示在页面上,否则它们的值是不可预测的。我不知道为什么代码在你的笔记本电脑和服务器上的表现不同,但我认为你的笔记本电脑体验是不可复制的。如果在同一个常规日志中创建另一个批处理,并尝试通过web服务在不同批处理中插入几行,那么它将无法工作


我建议选择另一种方式。您可以使用需要填充的字段(包括主键字段)创建另一个页面,并将其作为web服务(OData或SOAP)公开,也可以创建一个代码单元来执行任务,并将其方法作为SOAP服务公开。

最有可能的是,由于构建不同,您会得到不同的结果。您在服务器上看到的此错误消息是在累积更新10中添加的。将你的笔记本电脑版本更新为CU10,结果就会一致。Alexander,当我调用代码时,我会填充主键字段。这就是为什么它能在我的笔记本电脑上工作,并且在正确的批次中创建这些行。不管怎样,我都要在我的笔记本电脑上安装CU10,这只是为了确定。这里有一个混淆。看起来,2013 R2的CU 17中再次删除了此错误消息,错误得到了正确修复。然后,希望您所需要做的就是将服务器安装更新到最新版本。