Автор |
Сообщение |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 14/12/2017 12:33:34
|
Semertak
Зарегистрирован: 11/12/2017 13:30:20
Сообщений: 3
Оффлайн
|
Цель: Работа с API средствами suds в Python.
Задача: При помощи инструмента suds сконструировать верный запрос к бизнес-методу сервиса Меркурий.
Проблема: Не получается задать содержимое поля data типа ApplicationDataWrapper.
Моя попытка:
Эти и некоторые другие действия создают следующий запрос:
Результат выполнения этого метода: "Unsupported application data format"
Ошибка этого запроса видна в строке №20.
Если исправить пространство имен с "ns3" на тип "ns4", то запрос будет валидно исполняться, а бизнес-метод GetStockEntryListRequest будет возвращать ожидаемый результат.
Проблема в том, что для поля getStockEntryListRequest я и так задавал пространство имен "ns4". Это видно в моем python-коде.
Не понимаю в чем проблема.
Готов с радостью принять любой возможный метод решения моей проблемы, а также любой альтернативный способ соединить Python и Меркурий.
UPD.
Названия ссылок на ns в Питон-реализации могут отличаться от названий ссылок в итоговом запросе. Это нормально.
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 14/12/2017 14:08:03
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 14/12/2017 12:48:37
|
Vladimir2017
![[Avatar]](/vetrf-forum/images/avatar/e8ad3f3f04296aa9be9de71a674e3769.jpg)
Зарегистрирован: 02/10/2017 14:31:03
Сообщений: 362
Оффлайн
|
Про питон ничего не скажу, пишу на Дельфи, запросы собираю вручную. Беру шаблон документа и модифицирую его средствами xml или текстовой подстановкой. Если бы начинал сейчас, вобще бы целиком в тексте собирал, всяко быстрее. WSDL оставил только для справочников, потому что там проблем нет.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 14/12/2017 12:57:13
|
Vladimir2017
![[Avatar]](/vetrf-forum/images/avatar/e8ad3f3f04296aa9be9de71a674e3769.jpg)
Зарегистрирован: 02/10/2017 14:31:03
Сообщений: 362
Оффлайн
|
Вдогонку: у Вас там подставляется подставляется неймспейс из версии 1.3-1.4, а запрос Вы отправляете на сервис второй версии. Проверьте импорт WSDL, похоже проблема там.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 14/12/2017 13:13:57
|
Semertak
Зарегистрирован: 11/12/2017 13:30:20
Сообщений: 3
Оффлайн
|
Vladimir2017, не уверен что в них есть ошибка. Импорт и описание ns-ов происходит автоматически. Либо я не понимаю что вы имеете ввиду.
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 14/12/2017 13:14:14
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 14/12/2017 13:31:39
|
Vladimir2017
![[Avatar]](/vetrf-forum/images/avatar/e8ad3f3f04296aa9be9de71a674e3769.jpg)
Зарегистрирован: 02/10/2017 14:31:03
Сообщений: 362
Оффлайн
|
Есть две версии API:
В версии 1.4 у getStockEntryListRequest неймспейс http://api.vetrf.ru/schema/cdm/application
В версии 2.0 у getStockEntryListRequest неймспейс http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2
У Вас указаны оба, но подставляется неправильный. Подставляться он может только если он неправильно импортировался.
P.S. Кстати у Вас и для Application подставляется не тот неймспейс, который Вы указываете. Возможно его надо указывать другим способом.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 14/12/2017 14:13:42
|
Semertak
Зарегистрирован: 11/12/2017 13:30:20
Сообщений: 3
Оффлайн
|
Vladimir2017. По поводу неправильной подстановки неймспейса для Application. Это, видимо, особенность suds. Если в Питон я указываю "ns0:Application", то в итоговом запросе вместо "ns0" может быть любое имя. Точнее цифра. Suds просто по каким-то своим законам меняет названия ссылок для итогового запроса.
А по поводу первого пункта.... Надо посмотреть.
|
|
 |
|
|
|