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 R2しています- それは私の問題でしょうか?DEMOCRONUS International Ltd.

ところで。この一定の SQL Server タイムアウトの話は何ですか? PurchaseInvoice存在しないために削除できず、形式が間違っているために更新できないものを作成できるのに、なぜそれらをうまく読むことができるのですか? Web サービスは「アプリケーションにアクセスするための安全な方法」であるべきではありませんか?

解決:

解決策は、更新行を 1 つ追加することでした。

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

@uncommonsense に感謝します。

4

1 に答える 1

2

Purchase Line の Type フィールドも、ic をオプション値「Item」に設定してください。デフォルトのオプション値 " " (空白) は、購入行がテキスト行であることを意味します。フィールドを使用して、標準テキストを検索できます (NAV の観点からは、上記のコードが行っていることであり、エラー メッセージが表示されます)。

于 2013-04-04T07:26:50.803 に答える