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, является тем, что делает ваш код выше, отсюда и сообщение об ошибке).