Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Webservice call using WSDL

Former Member
0 Likes
1,535

Hi All,

How we can make use of the WSDL file for calling the Webservice from outside the SAP system? I have a RFC FM pointed to a service definition and I have the WSDL file with me.

Can you please guide me how I can make use of this WSDL for the Webservice call?

Thanks for your help in advance.

Thanks,

Greetson

1 ACCEPTED SOLUTION
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
1,404

Now that it is exposed, it can be called by anything that can comsume a web service. For example, in java or .net, you could simply consume this service. Also, for testing purposes, you could consume this in that same ABAP system, by creating a ABAP web service proxy class.

Regards,

Rich Heilman

6 REPLIES 6
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
1,405

Now that it is exposed, it can be called by anything that can comsume a web service. For example, in java or .net, you could simply consume this service. Also, for testing purposes, you could consume this in that same ABAP system, by creating a ABAP web service proxy class.

Regards,

Rich Heilman

Read only

0 Likes
1,404

Hello Rich,

Thanks for your immediate response. What are the steps we need to follow for creating the Proxy object in SE80 I see four options HTTP, UDDI, Localfile & XI repository. What is the expansion for each of these???

How we can call the WSDL from ABAP or from .NET??? do you know the steps???? of we need to talk to a respective platform developer???

Thanks for your help .

Greetson

Read only

0 Likes
1,404

Hi, yes, since you have the WSDL, then you could simply use "Local File" option, and then select your WDL, the proxy will then be generated based on the WSDL. Then the ABAPer or .net guy can call this proxy using the proxy class. You should get with the developer to call these, if you are not familar with it.

Regards,

Rich Heilman

Read only

0 Likes
1,404

Hello Rich,

I had tried the Local file option for the WSDL that I have for the following Blog Service definition:

/people/thomas.jung3/blog/2005/01/05/develop-a-web-service-that-sends-an-email--in-abap

But i am getting the fellowing error :

Proxy generation terminated: Message must have exactly one part

Message no. SPRX046

Background

During proxy generation, an interface description in WSDL format is

fetched from the Integration Builder or another source and interpreted.

This WSDL document must describe the whole interface correctly.

==> Display WSDL Document

Diagnosis

In a WSDL document, a <message> must contain exactly one <part>,

therefore:

<message name="doGetCachedPage">

<part .../>

</message>

In this instance, a <message> has no <part> or multiple <part> entries.

Proxy generation cannot process such messages.

System response

Proxy generation is terminated.

What might be the issue?

looks like the ESDL file that I Have has one or more <part> tag in it.

Following is my XLM file code :

<?xml version="1.0" encoding="utf-8" ?>

- <wsdl:definitions targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:n0="urn:sap-com:document:sap:rfc:functions" xmlns:n1="http://www.sap.com/webas/630/soap/features/authentication/" xmlns:sap="http://www.sap.com/webas/630/wsdl/features" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

- <wsdl:types>

- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions" elementFormDefault="unqualified" attributeFormDefault="qualified">

- <xsd:simpleType name="char1">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="1" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="char10">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="10" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="char20">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="20" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="char220">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="220" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="char30">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="30" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="char32">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="32" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="char50">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="50" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="numeric3">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="3" />

<xsd:pattern value="\d*" />

</xsd:restriction>

</xsd:simpleType>

- <xsd:simpleType name="numeric6">

- <xsd:restriction base="xsd:string">

<xsd:maxLength value="6" />

<xsd:pattern value="\d*" />

</xsd:restriction>

</xsd:simpleType>

</xsd:schema>

- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:sap-com:document:sap:soap:functions:mc-style" targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" elementFormDefault="unqualified" attributeFormDefault="qualified" xmlns:n0="urn:sap-com:document:sap:rfc:functions">

<xsd:import namespace="urn:sap-com:document:sap:rfc:functions" />

- <xsd:complexType name="Bapiret2">

- <xsd:sequence>

<xsd:element name="Type" type="n0:char1" />

<xsd:element name="Id" type="n0:char20" />

<xsd:element name="Number" type="n0:numeric3" />

<xsd:element name="Message" type="n0:char220" />

<xsd:element name="LogNo" type="n0:char20" />

<xsd:element name="LogMsgNo" type="n0:numeric6" />

<xsd:element name="MessageV1" type="n0:char50" />

<xsd:element name="MessageV2" type="n0:char50" />

<xsd:element name="MessageV3" type="n0:char50" />

<xsd:element name="MessageV4" type="n0:char50" />

<xsd:element name="Parameter" type="n0:char32" />

<xsd:element name="Row" type="xsd:int" />

<xsd:element name="Field" type="n0:char30" />

<xsd:element name="System" type="n0:char10" />

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

</wsdl:types>

- <wsdl:message name="ZtestWebservice">

<wsdl:part name="From" type="xsd:string" />

<wsdl:part name="Message" type="xsd:string" />

<wsdl:part name="Subject" type="xsd:string" />

<wsdl:part name="To" type="xsd:string" />

</wsdl:message>

- <wsdl:message name="ZtestWebserviceResponse">

<wsdl:part name="Return" type="tns:Bapiret2" />

</wsdl:message>

- <sap:Feature name="design_0" uri="http://www.sap.com/webas/630/soap/features/authentication/">

- <sap:Property qname="n1:AuthenticationLevel">

<sap:Option value="n1:Basic" />

</sap:Property>

</sap:Feature>

- <wsdl:portType name="ZES_TEST_MAIL">

<sap:useFeature feature="tns:design_0" />

- <wsdl:operation name="ZtestWebservice">

<wsdl:input message="tns:ZtestWebservice" />

<wsdl:output message="tns:ZtestWebserviceResponse" />

</wsdl:operation>

</wsdl:portType>

- <wsdl:binding name="ZES_TEST_MAILSoapBinding" type="tns:ZES_TEST_MAIL">

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

- <wsdl:operation name="ZtestWebservice">

<soap:operation soapAction="" />

- <wsdl:input>

<soap:body use="literal" namespace="urn:sap-com:document:sap:soap:functions:mc-style" />

</wsdl:input>

- <wsdl:output>

<soap:body use="literal" namespace="urn:sap-com:document:sap:soap:functions:mc-style" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

- <wsdl:service name="ZES_TEST_MAILService">

- <wsdl:port name="ZES_TEST_MAILSoapBinding" binding="tns:ZES_TEST_MAILSoapBinding">

<soap:address location="http://sapecddemo.ssdomain.com:8001/sap/bc/srt/rfc/sap/ZES_TEST_MAIL?sap-client=800" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Please advice.

Thanks,

Greetson

Read only

0 Likes
1,404

Or if you simply want to test the web service, you can go to transaction WSADMIN in the system where you created it. You can then navigate to your service in the tree, and select it, then choose web service homepage from the application toolbar. Hopefully, you have a java system installed along side the ABAP, because this WS Homepage runs on the java side. You can then test the WS from this page, using the "Test" button on the page. Yes, this transaction is obselete but will still work for your purposes. If you want to try your hand at transaction SOAMANAGER, be my guess.

Regards,

Rich Heilman

Read only

0 Likes
1,404

Hello Rich,

I had tested the WSDL using the home page . Here it works fine. But I want to create a proxy object and want to call the proxy object from ABAP .

is there anything you can help on the error that I told you in the previous post??

Thanks for your help in advance.

Thanks,

Greetson