cancel
Showing results for 
Search instead for 
Did you mean: 

WSDL Import to generate a proxy

Former Member
0 Kudos

<b>Hi All,</b>

I<b> am trying to import a wsdl file through SE80 to generate a client proxy. The wsdl file is as follows</b>:

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.opentravel.org/OTA/2002/11" xmlns:tns="https://webservices.sabre.com/websvc" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" targetNamespace="https://webservices.sabre.com/websvc">
	<types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:import namespace="http://www.opentravel.org/OTA/2002/11" schemaLocation="SessionValidateRQRS.xsd"/>
			<xsd:import namespace="http://www.ebxml.org/namespaces/messageHeader" schemaLocation="msg-header-2_0.xsd"/>
			<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
			<xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="envelope.xsd"/>
			<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/ws/2002/12/secext" schemaLocation="wsse.xsd"/>
		</xsd:schema>
	</types>
	<message name="GetSessionValidateInput">
		<part name="header" element="eb:MessageHeader"/>
		<part name="header2" element="wsse:Security"/>
		<part name="body" element="xsd1:SessionValidateRQ"/>
	</message>
	<portType name="SessionValidatePortType">
		<operation name="SessionValidateRQ">
			<input message="tns:GetSessionValidateInput"/>
		</operation>
	</portType>
	<binding name="SessionValidateSoapBinding" type="tns:SessionValidatePortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="SessionValidateRQ">
			<soap:operation soapAction="OTA"/>
			<input>
				<soap:header message="tns:GetSessionValidateInput" part="header" use="literal"/>
				<soap:header message="tns:GetSessionValidateInput" part="header2" use="literal"/>
				<soap:body parts="body" use="literal"/>
			</input>			
		</operation>
	</binding>
	<service name="SessionValidateRQService">
		<port name="SessionValidatePortType" binding="tns:SessionValidateSoapBinding">
			<soap:address location="https://webservices.sabre.com/websvc"/>
		</port>
	</service>
</definitions>

<b>When I tried to import this, there was an error mentioning "Proxy generation terminated: Message must have exactly one part".

Now when I removed the header and header2 from input message like below, I was able to generate the proxy. </b>


<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.opentravel.org/OTA/2002/11" xmlns:tns="https://webservices.sabre.com/websvc" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" targetNamespace="https://webservices.sabre.com/websvc">
	<types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:import namespace="http://www.opentravel.org/OTA/2002/11" schemaLocation="SessionValidateRQRS.xsd"/>
			<xsd:import namespace="http://www.ebxml.org/namespaces/messageHeader" schemaLocation="msg-header-2_0.xsd"/>
			<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
			<xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="envelope.xsd"/>
			<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/ws/2002/12/secext" schemaLocation="wsse.xsd"/>
		</xsd:schema>
	</types>
	<message name="GetSessionValidateInput">
		<part name="body" element="xsd1:SessionValidateRQ"/>
	</message>
	<portType name="SessionValidatePortType">
		<operation name="SessionValidateRQ">
			<input message="tns:GetSessionValidateInput"/>
		</operation>
	</portType>
	<binding name="SessionValidateSoapBinding" type="tns:SessionValidatePortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="SessionValidateRQ">
			<soap:operation soapAction="OTA"/>
			<input>
				<soap:body parts="body" use="literal"/>
			</input>
		</operation>
	</binding>
	<service name="SessionValidateRQService">
		<port name="SessionValidatePortType" binding="tns:SessionValidateSoapBinding">
			<soap:address location="https://webservices.sabre.com/websvc"/>
		</port>
	</service>
</definitions>

<b>I would like to know, if it is possible to generate the proxy without removing these nodes since these nodes are very important for my scenario.

Thank you,

Geetha</b>

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Geeta,

What you can do is that as you have an .WSLDL file saved in a destination. Now goto Integration Repository of XI then under Interface Objects you have "External Definitions" import the .WSDL as an external destination then now you can find the your requirments for message interfaces are imported. Then create an Outbound or Inbound Message Interface as per your requirements. Activate it in XI

If all the connections are fine with XI system and your R/3 system, your Proxy Structure is created.

Hope this Helps you...

Regards,

KishoreJ.

Answers (4)

Answers (4)

Former Member
0 Kudos

Geetha,

Hope this will be of some help to you .

http://hertenberger.co.za/?cat=29

Regards,

Former Member
0 Kudos

Hi Geetha ,

To me your approach seems to be perfectly alright..

Just for the making it doubly sure ..Kindly go through..

http://help.sap.com/saphelp_nw04/helpdata/en/81/845f3c31727d59e10000000a114084/content.htm

@chirag

SPROXY is on of the way of Proxy generation not the sole one..

Regards,

Former Member
0 Kudos

Hi Chirag,

I am trying to consume a SOAP web-service like mentioned in the blog

https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1012. [original link is broken] [original link is broken] [original link is broken]

Can you please help me out here?

Thank you,

Geetha

Former Member
0 Kudos

if ti's related to XI why don't you import it in XI and then generate a proxy from SPROXY in SAP system

Former Member
0 Kudos

HI,

For proxy generation you have to go to SPROXy transaction at R3 end and which will generate the ABAP classes and methods and structure which you have created in SAP XI.

Can u pls explain what you want to achieve?

Thnx

Chirag Gohil