|
09.11.2016, 05:35 | #1 |
Участник
|
Ax2012 веб-сервисы и умеют ли они SOAP?
Товарищи, начал недавно погружаться в пучину веб-сервисов.
Передо мной стоит следующая задача: мне надо реализовать на базе Ax2012R3 веб-сервис аналогичный существующему (сейчас реализованному в NAV) по существующей спецификации, с учетом того что менять на стороне, потребляющей веб-сервис ничего нельзя Простейшие веб-сервисы делать я, положим, умею, и вызывать их из той же Аксапты или какой-нибудь .NET приложения, но тут столкнулся со следующим: сейчас на стороне потребления с веб-сервисом общение идет полностью через SOAP - то есть там руками создается SOAP-пакет с header, body и т.д. Вопрос мой в следующем (прежде чем начать разрабатывать сервис, хотелось бы это понять): могу ли я в Ax2012 сделать сервис и выставить его во внешний мир так, чтобы он понимал SOAP ? будет ли это происходить автоматически (когда я по умолчанию выставляю сервис как NetTcp адаптер) или мне надо использовать другой адаптер, или какие-то настройки и т.д.? Если я смотрю WDSL текущего запроса, то я вижу там описания подобного вида: Код: <operation name="Operation"> <input name="Operation" message="tns:Operation"/> <output name="Operation_Result" message="tns:Operation_Result"/> </operation> <message name="Operation"> <part name="parameters" element="tns:Operation"/> </message> <message name="Operation_Result"> <part name="parameters" element="tns:Operation_Result"/> </message> <element name="Operation"> <complexType> <sequence> <element name="input" type="string" maxOccurs="1" minOccurs="1"/> </sequence> </complexType> </element> <element name="Operation_Result"> <complexType> <sequence/> </complexType> </element> Код: <wsdl:operation name="getVendAccount"> <soap12:operation soapAction="http://tempuri.org/SimpleService/getVendAccount" style="document" /> <wsdl:input name="SimpleServiceGetVendAccountRequest"> <soap12:header message="i0:SimpleServiceGetVendAccountRequest_Headers" part="context" use="literal" /> <soap12:body use="literal" /> </wsdl:input> <wsdl:output name="SimpleServiceGetVendAccountResponse"> <soap12:body use="literal" /> </wsdl:output> <wsdl:fault name="AifFaultFault"> <soap12:fault name="AifFaultFault" use="literal" /> </wsdl:fault> </wsdl:operation> |
|
09.11.2016, 10:00 | #2 |
Участник
|
1) веб сервисы изначально "понимают" SOAP, просто AX2012 генерит кучу разных сообщений для обработки
2) то что вы хотите можно сделать реализовав методы и объекты вашего сервиса, например, с помощью CLR реализовать объекты с помощью System.Runtime.Serialization методы самого сервиса должны получать и возвращать объекты CLR единственно, таким методом все равно не удасться управлять min/maxoccurs |
|
Теги |
ax2012, soap, wdsl, web-services |
|
|