cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with Consuming ABAP Server Proxy WSDL in InfoPath

Former Member
0 Kudos

Tried to design a InfoPath (MS Office 2003) form from a WSDL file of a web service generated from an ABAP Server Proxy in a NW2004s SP10 system. InfoPath rejected this WSDL with error “InfoPath cannot use the selected Web service method for receiving data because the method does not provide valid XML data”. Tried other WSDL files from other web services from ABAP Proxy with InfoPath, all got rejected.

Validated the WSDL file with XMLSPY, no error. Tried to import the WSDL into XI 3.0, no error. Also tried the WSDL in .NET C#, also worked fine. It seemed only InfoPath does not like this WSDL from ABAP Proxy.

Created a similar web service in XI 3.0 and InfoPath had no problem with its WSDL. Then I compared the two WSDL files. There are differences. After try and error on changing the differences, I have nailed down to the XML tag that caused the problem. Please see the extracted WSDL line attached at the end. In the XI 3.0 generated WSDL the wsdl:message and the wsdl:part have the same name. In the ABAP Proxy generated WSDL the wsdl:part has the name “Parameters” which is different from the wsdl:message. After I copied the wsdl:message name to the wsdl:part name, InfoPath accepted the WSDL file without any problem.

I know the fix but I like to find out the root cause. Is this a known issue? Did we miss some configuration setting that’s causing this issue? Any help will be much appreciated.

      • WSDL from NW2004s SP10 ABAP Proxy

<wsdl:message name="RegionR3GetList_Req_MT">

<wsdl:part name="Parameters" element="tns:RegionR3GetList_Req_MT"/>

</wsdl:message>

<wsdl:message name="RegionR3GetList_Resp_MT">

<wsdl:part name=" Parameters" element="tns:RegionR3GetList_Resp_MT"/>

</wsdl:message>

      • WSDL from XI 3.0 Interface

<wsdl:message name="RegionR3GetList_Req_MT">

<wsdl:part name="RegionR3GetList_Req_MT" element="tns:RegionR3GetList_Req_MT"/>

</wsdl:message>

<wsdl:message name="RegionR3GetList_Resp_MT">

<wsdl:part name="RegionR3GetList_Resp_MT" element="tns:RegionR3GetList_Resp_MT"/>

</wsdl:message>

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Anne Tarnoruder has pointed out to me that her SDN article "Consuming SAP Enterprise Services in a Microsoft Office InfoPath Form" has described the the cause and workaround of this issue on page 9. I am extracting it below and mark this thread as answered. Thanks to Anne but not sure how I can award point to her.

Currently SAP supports only the Document style of WSDL, and not the Microsoft-specific RPC style, which causes a problem when consuming SAP services in the Microsoft environment. In this example, you need to apply a workaround that involves a minor correction of locally-stored WSDL files:

a. In the Project Explorer toolbar, click the Show all files icon and expand the Web reference folder.

b. For each Web reference in the project, perform the following steps:

c. Open the WSDL file, replace all instances of <wsdl:part name="parameters" with <wsdl:part name="parameter" (remove the s in parameters) and save the file.

d. Right-click the Reference.map file and choose Run Custom Tool to invoke a utility that generates code for XML Web services. This recreates the local proxy.