【问题标题】:Dynamics nav 2009 RE: SoapException: Standard Item Code 'foo' does not existDynamics nav 2009 RE:SoapException:标准项目代码“foo”不存在
【发布时间】: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 R2DEMO 应用程序——这可能是我的问题吗?

顺便说一句。这个恒定的 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


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我添加了一行(我忘了从代码中复制)。你说的是哪个期权价值?我很想改变它,但我不确定你指的是什么。我尝试了pi.PurchLines[0].Type = PurchaseInvoice.Type._blank_pi.PurchLines[0].Type = PurchaseInvoice.Type.Item,但同样的消息仍然存在同样的异常。有任何想法吗? :)
    • 我不明白 Type.Item 如何在 PurchaseInvoice 级别定义?我想它应该来自 PurchaseInvoiceLine 级别?也许,作为一个测试,你可以传递值 2 作为购买线的类型吗? (因为从零开始的选项字符串是“,G/L Account,Item,,Fixed Asset,Charge (Item)")。
    • PurchaseInvoiceLine 没有这样的成员,并且这种类型的对象具有字段Type,即PurchaseInvoice.Type - 我也很奇怪......我现在投射pi.PurchLines[0].Type = (PurchaseInvoice.Type)2,它是一样的。我也尝试了其他整数。没有任何影响...
    • 感谢您的宝贵时间 :) 我在创建新的 Purchase_Invoice_line 之后和设置 No 字段之前添加了一行更新来解决这个问题。这对我来说没有任何意义,但有效:) 再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 2013-02-24
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多