2

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

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。

4

1 回答 1

2

确保也将采购行的类型字段设置为选项值“项目”。默认选项值“”(空白)表示购买行是文本行,在这种情况下为“否”。字段可用于查找标准文本(从 NAV 的角度来看,这是您上面的代码正在执行的操作,因此会出现错误消息)。

于 2013-04-04T07:26:50.803 回答