cancel
Showing results for 
Search instead for 
Did you mean: 

Call operation on WS that have with multiple operations

Former Member
0 Kudos

Hello,

I want to
call an operation in WS that have multiple operations. I know that I can difference
that operation with the “soapAction” property in the soap adapter but my external
definition document have this property with initial value ( soapAction="" ).

Where can I set the right WS operation without the “soapAction” property???

Best
Regards,

Jose L.

Accepted Solutions (0)

Answers (2)

Answers (2)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Jose,

I know that I can difference
that operation with the “soapAction” property in the soap adapter but my external
definition document have this property with initial value ( soapAction="" ).

Where can I set the right WS operation without the “soapAction” property???

If the wsdl does not have a value for soapAction, then maybe it is using SOAP 1.2 or WSSe which could mean that the operation(by the 3rd party) is determined via message type. Try executing a request using SOAP UI and then paste the message from the Raw Tab here.

Hope this helps,
Mark

Former Member
0 Kudos

Hi Mark,

Thanks for your reply.

When I generate the request in the soapUI, the application generates this xml message:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:inf="http://...">

   <soapenv:Header/>

   <soapenv:Body>

      <inf:consultaXml soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

         <parametrosConsulta xsi:type="dto:ParametrosConsultaDTO" xmlns:dto="http://...">

            <codigoInformacion xsi:type="soapenc:string" xmlns:soapenc="?http://schemas.xmlsoap.org/soap/encoding/">?</codigoInformacion>

            <motivoConsulta xsi:type="soapenc:string" xmlns:soapenc="?http://schemas.xmlsoap.org/soap/encoding/">?</motivoConsulta>

            <numeroIdentificacion xsi:type="soapenc:string" xmlns:soapenc="?http://schemas.xmlsoap.org/soap/encoding/">?</numeroIdentificacion>

            <tipoIdentificacion xsi:type="soapenc:string" xmlns:soapenc="?http://schemas.xmlsoap.org/soap/encoding/">?</tipoIdentificacion>

         </parametrosConsulta>

      </inf:consultaXml>

   </soapenv:Body>

</soapenv:Envelope>

The definition of the message and the operation in the wsdl are:

...

<message name="consultaXmlRequest">

<part name="parametrosConsulta" type="tns1:ParametrosConsultaDTO"/>

</message>

...

<operation name="consultaXml">

<wsdlsoap:operation soapAction=""/>

  <input name="consultaXmlRequest">

   <wsdlsoap:body namespace="http://..." encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>

  </input>

  <output name="consultaXmlResponse">

</operation>

...

The soapAction is initial, and the WS have multiple operation...

I get the PI xml request with a tcp traffic monitor and the request don't have the tag:

<inf:consultaXml soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

And the web service don't know the operation that I am calling.

Please help me.

Jose.

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Jose,

The webservice that you are calling looks like it is rpc-encoded. You have to use Java mapping (check Do Not Use SOAP Envelope in Receiver CC) to exactly match the raw request that you see in SOAP UI.

Hope this helps,

Mark

nabendu_sen
Active Contributor
0 Kudos

Hi Jose,

Please find the below blog where its mentioned how to call the specific operation of a Web Service:

http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/07/18/how-parameterized-mapping-udf-asm...

Former Member
0 Kudos

Nabendu,

That blog is for dinamic call of operation using the soap action. My problem is that my wsdl don't have soap action defined and I can't use the soapAction configuration.

Please let me know how to call the operation without using the soapAction.

Thanks

Jose.