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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2017, 20:57   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Вызов SOAP сервиса из DAX2009 без использования references - есть ли примеры в стандартном приложении
Всем доброго времени суток.
Вдруг возникла задача вызывать внешний WEB сервис из DAX2009. Есть WSDL файл, формат обмена совершенно понятен.
Стандартно такие обращения делаются просто - бросаем в ветку references ссылку на wsdl и Аксапта нам генерит красивые прокси. Но есть две засады:
  • Данный механизм работает только тогда, когда WEB сервис общедоступный без пароля.
  • В момент создания ссылки есть прямой доступ к сайту сервиса.
В моем случае сам WEB сервис запоролен. кроме того, для вызова нужен прокси сервер, поэтому простой вариант с созданием ссылки не подходит.
В общем, нужно вызывать сервис, работающий с SOAP и получить от него ответ. Соответственно, нужно как-то упаковать данные для запроса в строку и распаковать полученный ответ из строки.
Понятно, что SOAP это, в общем-то, обычный XML и, приложив силы, вполне можно для конкретного случая самому нарисовать код.
Вопрос простой: есть ли в стандартном приложении DAX2009 примеры того, как вызывать SOAP запрос? У меня было стойкое убеждение, что это должно быть где-то в районе AIF*, но как-то не получилось найти.
PS: работа с запросами http, более того, с WEB сервисами JSON (при помощи dot.net класса System.Web.Script.Serialization.JavaScriptSerializer) уже отработана, хочется либо использовать то, что есть в стандартном приложении, либо думать о том, как нарисовать фрейморк для SOAP.
Старый 22.04.2017, 21:08   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
В дополнение. Возможно, что что-то подобное есть в DAX2012. К ней есть доступ, подписка действующая, поэтому можно выдернуть что-то оттуда (работа json была подсмотрена именно в DAX012).
Старый 23.04.2017, 06:59   #3  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
А почему просто не сгенерить прокси через wsdl.exe скомпилить его в библиотеку и добавить как референс ? Стандартный визард в 9 вроде так и делает, генерит прокси класс и обертку которая его вызывает через маршалинг (зачем-то) потом компилит и добавляет ссылку в АОТ.
За это сообщение автора поблагодарили: Raven Melancholic (5), trud (3).
Старый 23.04.2017, 07:21   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Мы делали просто - Делали рефернс на сервис в VS, а получившуюся dll-обертку цепляли как refernce в АХ. Это решало 2 задачи: авторизацию и корректную обработку ошибок, возникающий при работе с сервисом (аксапта их не ловит try/catch)
За это сообщение автора поблагодарили: Raven Melancholic (5).
Старый 23.04.2017, 12:33   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Спасибо, при помощи VS срабатывает.
Но вопрос остался, хотя уже больше теоретический. Если вдруг нет возможности добавлять референс (не знаю почему, но вот так вдруг), то есть ли в стандартном приложении примеры сериализации/десериализации в XML по данным wsdl файла? Просто по xsd схеме примеры есть, а хотелось бы посмотреть как обрабатываются всякие Policy, message, binding и т.п..
Старый 23.04.2017, 14:45   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Ой.
Явно нужно отменять выходные дни - очень расслабляют. В ответах skuull и DSPIC есть намек на то, что требуется. Добавление ссылки на wsdl файл вызывает метод createServiceReference класса SysReference. Ну а дальше уже простое копание в коде.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов AIF сервиса в отдельном соединении sgt.Pepper DAX: Программирование 15 19.05.2016 12:44
Вызов веб-сервиса Ax 2012 R3 из 1C 8.2 Bega DAX: Программирование 8 06.02.2015 13:30
Примеры использования AIF Lazy_Tiger DAX: База знаний и проекты 14 16.01.2008 13:24
Импорт из html-файлов без использования внешнего парсера возможен? Avick DAX: Программирование 15 31.07.2006 15:41
XMLGenerateClasses AlexK DAX: Программирование 0 19.05.2005 12:59

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

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

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