cancel
Showing results for 
Search instead for 
Did you mean: 

Web Service with different operations how to Call ?

Former Member
0 Kudos

Hallo Experts,

XI Scenario is ABAP Proxy - XI SOAP-Adapter - WEb service

I have to consume a webservice form XI, which has differnent operations.

The service is imported to XI through extenal definition via wsdl file

?xml version="1.0" encoding="ISO-8859-1"?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://tempuri.org/BS2000" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="BS2000" targetNamespace="http://tempuri.org/BS2000">

<types>

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://tempuri.org/BS2000" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" elementFormDefault="unqualified" targetNamespace="http://tempuri.org/BS2000" />

</types>

<message name="UTMECHTInput">

<part name="nb_tac" type="xs:string" />

<part name="nb_daten_laenge" type="xs:int" />

<part name="nb_daten" type="xs:string" />

</message>

<message name="UTMECHTOutput">

<part name="nb_status" type="xs:string" />

<part name="nb_status_text" type="xs:string" />

<part name="nb_upic_rc" type="xs:int" />

<part name="nb_daten1" type="xs:string" />

</message>

<message name="UTMTESTInput">

<part name="nb_tac" type="xs:string" />

<part name="nb_daten_laenge" type="xs:int" />

<part name="nb_daten" type="xs:string" />

</message>

<message name="UTMTESTOutput">

<part name="nb_status" type="xs:string" />

<part name="nb_status_text" type="xs:string" />

<part name="nb_upic_rc" type="xs:int" />

<part name="nb_daten1" type="xs:string" />

</message>

<portType name="BS2000">

<operation name="UTMECHT">

<input message="tns:UTMECHTInput" />

<output message="tns:UTMECHTOutput" />

</operation>

<operation name="UTMTEST">

<input message="tns:UTMTESTInput" />

<output message="tns:UTMTESTOutput" />

</operation>

</portType>

<binding name="BS2000" type="tns:BS2000">

<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />

<operation name="UTMECHT">

<soap:operation soapAction="" />

<input>

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

</input>

<output>

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

</output>

</operation>

<operation name="UTMTEST">

<soap:operation soapAction="" />

<input>

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

</input>

<output>

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

</output>

</operation>

</binding>

<service name="BS2000">

<port binding="tns:BS2000" name="BS2000">

<soap:address location="http://194.175.255.5:9003" />

</port>

</service>

</wsdl:definitions>

from there a message inrterface is defined with messages UTMTESTInput and UTMTESTOutput.

This is used in an ABAP PROXY to SOAP scenario..

Mappings are defined and work properly.

When i configure a new commuinication channel the service is called

but returns with error ' Service not found' (because the service UTMTESTInput is called

The communication channel is type SOAP ; HTTP; SOAP1.1, Integration Server and Target URL

is it possible to call the webservice with a certain operation , because there is no SOAPaction defined ?

An How to do This

Thank you in advance

Bernhard

Accepted Solutions (1)

Accepted Solutions (1)

henrique_pinto
Active Contributor
0 Kudos

You have to change the import method of the wsdl in the External Definition, since your wsdl is in rpc-style. In the Messages drop-down list, select the Except rpc-style entry.

http://help.sap.com/saphelp_nw70/helpdata/en/43/ce993b45cb0a85e10000000a1553f6/frameset.htm

You'll probably have to redefine your mappings.

Regards,

Henrique.

Answers (1)

Answers (1)

stefan_grube
Active Contributor
0 Kudos

> is it possible to call the webservice with a certain operation , because there is no SOAPaction defined ?

That is always the case. You choose the operation while a create the interface from the external definition.

Check the message payload after mapping and make sure, that root tag name and namespace are as expected on receiver side.

Regards

Stefan

Former Member
0 Kudos

Hallo Stefan

Thank you for your quick reply

The case is that then namespace in the payload is UMTTESTInput ( like the message ) and the service expects

UTMTEST.

how can i rename this ??

Regards Bernhard