动态导航2009 RE: SoapException:标准项代码'foo'不存在

本文关键字:不存在 foo 代码 标准 2009 导航 RE SoapException 动态 | 更新日期: 2023-09-27 18:07:11

我正在尝试创建购买发票:

PurchseInvoice_Service pis = new PurchseInvoice_Service();
PurchseInvoice pi = new PurchseInvoice();
pis.Create(ref pi);
pi.Buy_from_Vendor_No = "40000";
pi.Currency_Code = "EUR";
pi.Location_Code = "GREEN";
pis.Update(ref pi);
pi.PurchLines = new Purch_Invoice_Line[1];
pi.PurchLines[0] = new Purch_Invoice_Line();
pi.PurchLines[0].Type = PurchaseInvoice.Type.Item;
pi.PurchLines[0].No = "LS-150";
pi.PurchLines[0].Quantity = 1;
pi.PurchLines[0].Unit_of_Measure_Code = "PCS";
pi.PurchLines[0].Line_Amount = 1;
pis.Update(ref pi);

我得到最后一行消息的SoapException:

标准文本代码"LS-150"不存在。

我非常困惑,这个项目代码在采购订单中使用,我可以在项目列表中看到它。为什么我不能在这里用它呢?在我看来,这应该是可行的。我甚至可以从' PostOrder '对象访问这个文本ID:

Console.WriteLine( po.PurchLines[1].No );
Output is : LS-150

我使用Dynamics NAV 2009 R2DEMO申请"CRONUS International Ltd."公司-也许这是我的问题?

顺便说一句。这个恒定的SQL Server超时是怎么回事?为什么我可以创建PurchaseInvoice,由于不存在而无法删除,由于格式错误而无法更新,但我可以很好地读取它们?web服务不应该是"访问应用程序的安全方式"吗?

解决方案:

解决方案是添加一个更新行:

....           
pi.PurchLines[0] = new Purch_Invoice_Line();
pis.Update(ref pi);
pi.PurchLines[0].Type = PurchaseInvoice.Type.Item;
....

感谢@uncommonsense.

动态导航2009 RE: SoapException:标准项代码'foo'不存在

确保也将购买行的Type字段设置为选项值"Item"。默认选项值"(空白)意味着购买行是一个文本行,在这种情况下,"No."字段可用于查找标准文本(从NAV的角度来看,这就是您上面的代码所做的,因此出现错误消息)。