cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping using SOAP lookup API to call RFC exposed as Web Service

Former Member
0 Kudos

Hello!

I have built a prototype that is using the SOAP lookup API to call the RFC_READ_TABLE RFC exposed as a Web Service.

The Web Service receives the call and processes it but returns a SOAP Fault instead of a SOAP Response and thus the lookup fails.

09.01.2008 11:33:05 Success SOAP: request message entering the adapter with user XIREPUSER

09.01.2008 11:33:05 Success SOAP: completed the processing

09.01.2008 11:33:05 Success SOAP: continuing to response message 42ecd600-be9e-11dc-9b8d-001a4b068db7

09.01.2008 11:33:05 Error SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Document Format Error

Error in the mapping test tool is:

Error while lookup: Exception during processing the payload.Problem when calling an adapter by using communication channel Rec_read_table_SOAP (Party: , Service: com_hp_read_table_webservice, Object ID: cddea2f159a238efa76386f9886dde46) null

com.sap.aii.mapping.lookup.LookupException: Problem when calling an adapter by using communication channel Rec_read_table_SOAP (Party: , Service: com_hp_read_table_webservice, Object ID: cddea2f159a238efa76386f9886dde46) null

The request XML the mapping sends out is working with the WebAS test tool so there is no problem with the XML payload.

In the SOAP communication channel I put in

Target URL: http://<host>:<ABAP port>/sap/bc/soap/rfc

SOAP action: http://www.sap.com/RFC_READ_TABLE

which I got from the WSDL (http://<host>:<ABAP port>/sap/bc/soap/wsdl11?services=RFC_READ_TABLE&sap-client=<client>)

I'd appreciate any hints what might be wrong, thanks for your help.

Regards, Tanja

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

I think the URL is not correct. Check the URL in the WSDL.

Check also, if the user and password are correct for the backend and have the necessary rights for the RFC call.

Regards

Stefan

Former Member
0 Kudos

Hello!

> I think the URL is not correct. Check the URL in the WSDL.

The SOAP action and URL in the WSDL http://<host>:<ABAP port>/sap/bc/soap/wsdl11?services=RFC_READ_TABLE&sap-client=<client> is:


<binding name="RFC_READ_TABLEBinding" type="s0:RFC_READ_TABLEPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="RFC_READ_TABLE">
<soap:operation soapAction="http://www.sap.com/RFC_READ_TABLE"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="RFC_READ_TABLEService">
<documentation>SAP Service RFC_READ_TABLE via SOAP</documentation>
<port name="RFC_READ_TABLEPortType" binding="s0:RFC_READ_TABLEBinding">
<soap:address location="http://<host>:<ABAP port>/sap/bc/soap/rfc"/>
</port>
</service>

> Check also, if the user and password are correct for the backend and have the necessary rights for the RFC call.

For testing I used my personal user which has SAP_ALL.

I will not spend a lot of more time on this as in the meantime we have decided to use the RFC instead of the SOAP lookup API which was working fine.

Regards, Tanja

Former Member
0 Kudos

Hi Tanja,

Only a hint...

To make a lookup between XI and ECC it is better to use RFC than SOAP. We have tested it looking for performance, and it is a little better with rfc in lookup scenario (in end to end scenario soap is better).

Other hint, "SAP_ALL" is not really "all" when you are dealing with soap adapter (or any other adapter at java stack).

regards!

roberti

Answers (0)