Dynamics nav 2009 RE: SoapException: Стандартный код изделия 'foo' не существует

Я пытаюсь создать счет на покупку:

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'объект:

Console.WriteLine( po.PurchLines[1].No );

Output is : LS-150

я использую Dynamics NAV 2009 R2 с DEMO приложение дляCRONUS International Ltd.компания - может быть, это моя проблема?

КСТАТИ. Какова история с этим постоянным временем ожидания SQL Server? Почему я могу создать PurchaseInvoice который не может быть удален из-за несуществования и не может быть обновлен из-за неправильного формата, но я могу читать их приятно? Разве веб-сервисы не должны быть "безопасным способом доступа к приложению"?

РЕШЕНИЕ:

Решением было добавить одну строку обновления:

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

Благодаря @uncommonsense.

1 ответ

Решение

Обязательно установите в поле Тип строки Покупки также значение опции "Товар". Значение параметра по умолчанию " " (пусто) означает, что строка покупки представляет собой текстовую строку, в этом случае "Нет". Поле можно использовать для поиска стандартного текста (что, с точки зрения NAV, является тем, что делает ваш код выше, отсюда и сообщение об ошибке).

Другие вопросы по тегам