Броски веб-службы NAV не могут вводить «Порядок» в целом числе

Я пытаюсь добавить строку покупки в заказ на покупку в Dynamics NAV (2009 R2 Classic) с помощью веб-сервисов, но не могу столкнулся со своеобразной проблемой.

Создание строки покупки без определения проблемы No работает без проблем. Только когда я определяю No, как в примере ниже, я получаю следующее исключение:

Вы не можете ввести «Порядок» в Integer.

Dim purchaseLine = New PurchaseLine

purchaseLine.Document_No = myPurchaseHeader
purchaseLine.Document_Type = Document_Type.Order
purchaseLine.Document_TypeSpecified = True
purchaseLine.Line_No = 1000
purchaseLine.Line_NoSpecified = True
purchaseLine.Type = Type.Item
purchaseLine.TypeSpecified = True
purchaseLine.No = myItemNo ' Defining No seems to cause the problem.

purchaseLineService.Create(purchaseLine)

Сначала я попытался создать строку покупки, не определяя No. Что работает, но обновление его с определенным No приводит к тому же.

purchaseLine.No = myItemNo

purchaseLineService.Update(purchaseLine)

Где-то предлагалось попробовать использовать 1 и "1" для Document_Type, но и это не сработало.

Я также выполнил шаги, описанные здесь, но безуспешно.

Погуглив, я нашел несколько форумы, где у людей была похожая проблема, но они не приблизили меня к решению.

Есть идеи?

Изменить:

Проведя еще несколько исследований и тестов, я пришел к выводу, что моя установка NAV является неполной/несовершенной/испорченной. Подробнее здесь.


person Stijn    schedule 14.10.2015    source источник
comment
Похоже, в навигационном коде есть ошибка. Mibuso из вашей ссылки говорит о том же. Я полагаю, что у вас есть страница (не codeunit), опубликованная как служба, поэтому проверьте, можете ли вы создавать строки покупки через эту страницу при открытии в клиенте RTC. Другой вопрос: вы используете стандартное решение (типа Cronus) или пытаетесь подключиться к сильно модифицированному решению заказчика?   -  person Mak Sim    schedule 14.10.2015
comment
Я действительно опубликовал (самодельную) страницу в качестве веб-сервиса. К сожалению, у меня нет доступа к RTC Client, только Classic. Наше решение — это обновление с NAV 5.   -  person Stijn    schedule 14.10.2015
comment
Что вы имеете в виду под отсутствием доступа? Вы не можете построить дом, если у вас нет доступа к строительной площадке.   -  person Mak Sim    schedule 14.10.2015
comment
Меня заставляют бежать, прежде чем я смогу ходить сюда :-(... Насколько мне известно, клиент RTC недоступен, он никогда не устанавливался. Наш внешний партнер добавил необходимые объекты (например, веб-службы формы 810) нашему классическому клиенту.   -  person Stijn    schedule 14.10.2015
comment
Просто мысли вслух... Как насчет того, чтобы открыть codeunit с процедурой, которой вы передаете значения, необходимые для создания вашего PO, и эта процедура создает PO.   -  person Doug J. Huras    schedule 14.10.2015
comment
Проведя еще несколько исследований и тестов, я пришел к выводу, что моя установка NAV является неполной/несовершенной/испорченной. Подробнее здесь. Так что решение кроется в другом.   -  person Stijn    schedule 15.10.2015
comment
Читай свои посты. Грустная история с апгрейдом. Да, это очень неправильный способ обновления. Если решение сильно настроено, вы не можете просто импортировать объекты из новой версии Cronus. Если у вас нет другого пути, попробуйте предложение @DougJ.Huras. Опубликуйте Codeunit с функцией, которая принимает все параметры, необходимые для создания заказа, и создаете его с помощью табличной переменной (проверка полей и вставка записи).   -  person Mak Sim    schedule 19.10.2015
comment
Еще можно попробовать проверить версии вашего навигационного сервера (на данный момент он вам необходим, если у вас есть возможность публиковать WS). Возможно, есть более новая сборка, где эта проблема исправлена. Это случается время от времени. И поскольку вы можете вызывать WS, это означает, что у вас может быть RTC. Вам просто нужно установить его с дистрибутива, которого у вас, вероятно, нет, но есть у вашего партнера. Возможно, он даже лежит где-то на вашем сервере, так как это тот самый дистрибутив, с которого установлен Nav server.   -  person Mak Sim    schedule 19.10.2015
comment
Я довел этот вопрос до людей, стоящих выше по пищевой цепочке. В любом случае в следующем году мы перейдем на NAV 2013 или 2015. История веб-сервиса, вероятно, будет отложена до тех пор.   -  person Stijn    schedule 19.10.2015


Ответы (1)


Проблема устранена с помощью этого изменения в codeunit 422, функция FormatValue.

//*** BEGIN
//  EVALUATE(OptionNo,FORMAT(fldRef.VALUE))
  IF NOT EVALUATE(OptionNo,FORMAT(fldRef.VALUE)) THEN
    EXIT(FORMAT(FldRef.VALUE));
//*** END
person Miguel Angel Alegría Izco    schedule 28.02.2019