cancel
Showing results for 
Search instead for 
Did you mean: 

Webservice

Former Member
0 Kudos

Hi All

I am working on a Web service scenario.

I created a RFC function module and converted the same to Webservice.

But while creating communication channels in need to pass the target URL.

Please let me know, how to find the URL address.

Is it the URL address of Webservice, we need to pass there

Pls advise

Regards

Madhan Doraikannan

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Madhan,

The Info below should surely help you find an answer.

If you're on WAS 6.20 and up, you can expose an RFC as a webservice directly from WAS.

Or if you’re on Basis layer 4.6D, you'll need to use XI (or some other integration tool) to expose the RFC as a webservice.

To do this in XI you'll need to:

Integration Repository

1) Import the RFC

2) Define a message and datatype for the SOAP interface

3) Create inbound and outbound interfaces

4) Create maps between the RFC and SOAP messages

5) Create an interface map

Integration Directory

1) Create an RFC Receiver Channel

2) Create a SOAP Sender Channel

3) Generate the WSDL (Tools->Define Web Service)

You can then handoff the WSDL and a login username and password to your developer and they will have everything they need to make the WS call.

Here are answers to a few doubts u might have:

1) Do I need to actually create a WS that calls the RFC ? Isn’t the virtual interface exposed by the XI sufficient?

Yes, you need to create a WS in XI that calls the RFC.

2) If I really have to create the WS and deploy it in order to expose it with the XI, then what is my benefit of exposing it with the XI, why not just exposing it as a normal WS ?

You don't have WAS 6.20 or up. Even if you did, you may still want to expose it using XI in order to have all of your integration go through the same application.

3) If I expose my web service through the XI, how does the client application executes one of its methods? To which url does it have to access (the XI or the actual WS)?

You expose a SOAP interface in XI by generating a WSDL file. This file contains all of the information a developer will need to call the webservice including the URL.

You actually specify the URL when you generate the WSDL. Be sure to read the documentation to get the correct format because the URL that the wizard suggests isn't correct.

I hope I have answered your query.

Regards,

Abhy

Former Member
0 Kudos

Hi Puloma

Thanks for your reply.

But if i pass the URL location i am getting the following error message

Can you please advise.

Regards

Madhan Doraikannan

******************

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Call Adapter

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIAdapter</SAP:Category>

<SAP:Code area="PARSING">ADAPTER.SOAP_EXCEPTION</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>soap fault: SOAP processing failure, error id = 1001</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

Former Member
0 Kudos

Hi Madhan,

The message being sent by XI is not recognizable by the web-service.

I hope that you are givng the URL of a Default/ Document type of wsdl, not a RPC/Encoded one.

Also,I'd suggest that you go through the following weblog to check the steps you are following:

/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi

Take a look at the following two threads too:

You can download the SOAP client from sdn itself.

Regards,

Puloma.

Former Member
0 Kudos

Hi Madhan,

Yes, you are right.You should pass the location of the .wsdl file as the URL.

Regards,

Puloma.