Показать сообщение отдельно
Старый 09.11.2016, 05:35   #1  
Pandasama is offline
Pandasama
Участник
 
449 / 133 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
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>
Если я смотрю WDSL своего простого запроса в Ax2012, то вижу совсем другую картину вроде такой:
Код:
<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>