AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.04.2019, 23:19   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
D365 custom web service, parsing recid
D365 v8.1 pu23
Есть ISV-решение и свой веб сервис для создания записей в своей таблице.
Сервис самый обычный, он благополучно мигроровал с версии 2012.
Через POSTMAN я посылаю запрос и все вроде бы работает, кроме двух полей, которые не парсятся и я не вижу, почему... Возможно, нужен свежий глаз, а возможно, я делаю что-то не так...

объявление в дата контракте:
X++:
 [DataMemberAttribute('LogisticsLocationId')]
    public LogisticsLocationId locationId(LogisticsLocationId _locationId = locationId)
    {
        locationId = _locationId;
        return locationId;
    }

    [DataMemberAttribute('LogisticsLocationRecId')]
    public LogisticsLocationRecId locationRecId(LogisticsLocationRecId _locationRecId = locationRecId)
    {
        locationRecId = _locationRecId;
        return locationRecId;
    }

    [DataMemberAttribute('LogisticsLocation')]
    public RecId location(RecId _location = location)
    {
        location = _location;
        return location;
    }
Вызов из postman (сокращенный):
X++:
{
	"dataContract":{
        
       "LogisticsLocationRecId":"22565421829", --logisticsPostalAddress.recId, cannot be parsed (?)
        "LogisticsLocation":5637144826, --logisticsPostalAddress.location, cannot be parsed (?)
        "LogisticsLocationId":"2", --works!

        "SalesId":"000935",  --to attach record in my table to a sales order
        "AmountCur":"22.00",
        "CurrencyCode": "USD"
	}
}
результат:
X++:
{
    "Message": "An exception occured when deserializing a parameters - Exception occured when parsing the request content - Invalid property identifier character: -. Path 'dataContract.LogisticsLocationRecId', line 18, position 48.",
    "ExceptionType": "XppServicesDeserializationException",
    "ActivityId": "3ebc8a5e-eeff-0003-3f92-bc3effeed401"
}
Старый 10.04.2019, 09:05   #2  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
LogisticsLocationRecId - у вас в кавычках приходит, LogisticsLocation без кавычек. Где-то в (раньше это был WSDL) описано что система ожидает увидеть для LogisticsLocationRecId число, а у вас текст на входе.
За это сообщение автора поблагодарили: trud (5).
Старый 10.04.2019, 16:18   #3  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
На самом деле пробовала и в кавычках, и без-не парсится в любом случае.
При этом AmountCur переданная в кавычках прекрасно преобразуется в число, так же как enum значения (не показанные в примере)б например "yes" для NoYes, тоже подхватываются на ура, да и дата в кавычках тоже приезжает хорошо. Вообще в дата контракте около 30 полей, и только с этими двуми проблема ((
Старый 10.04.2019, 20:28   #4  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,506 / 428 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
на всякий случай спрошу - а порядок менять пробовали?
У вас в контракте первым идёт LogisticsLocationId, а в вызове LogisticsLocationRecId
попробуйте вызывать в том же порядке, который прописан в контракте
__________________
С уважением,
Вячеслав
Старый 11.04.2019, 19:15   #5  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
да, порядок менять пробовала. К тому же, остальные поля расположены как угодно. Мало того, можно добавлять в запрос поля, которых нет в дата контракте-парсер не ругается, но полей в дата контракте, естественно, не видно.
Старый 11.04.2019, 19:21   #6  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
В 10 версии запрос работает.
Закрываю тему.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Calling AX 2012 Business Logic from SSIS Using a Script Task and Custom Web Service Blog bot DAX Blogs 0 12.11.2015 03:48
emeadaxsupport: Error when browsing a custom service hosted as IIS web service: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) Blog bot DAX Blogs 0 12.12.2014 19:11
atinkerersnotebook: Using Service Management to Track Service Orders Blog bot DAX Blogs 1 25.08.2013 19:16
AIF: Microsoft Dynamics AX Services and Windows Azure Service Bus Blog bot DAX Blogs 0 24.07.2013 03:13
Pokluda: Outbound web service (AIF) Blog bot DAX Blogs 0 28.10.2006 17:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:45.