【发布时间】:2013-04-03 15:52:08
【问题描述】:
我正在尝试创建采购发票:
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
我为“CRONUS International Ltd.”公司使用Dynamics NAV 2009 R2 和DEMO 应用程序——这可能是我的问题吗?
顺便说一句。这个恒定的 SQL Server 超时是怎么回事?为什么我可以创建PurchaseInvoice,由于不存在而无法删除,由于格式错误而无法更新,但我可以很好地阅读它们? Web 服务不应该是“访问应用程序的安全方式”吗?
解决方案:
解决方案是添加一个更新行:
....
pi.PurchLines[0] = new Purch_Invoice_Line();
pis.Update(ref pi);
pi.PurchLines[0].Type = PurchaseInvoice.Type.Item;
....
感谢@uncommonsense。
【问题讨论】:
标签: c# web-services visual-studio dynamics-nav soapexception