cancel
Showing results for 
Search instead for 
Did you mean: 

Web Service --> R/3 4.6C RFC

Former Member
0 Kudos

Hi,

Is it possible to expose the functionality of RFC (R/3 4.6C) through XI as a web service ?

If yes, how ?

If no, how can I use web services to expose R/3 functionality ?

Thanks,

Elad.

Accepted Solutions (1)

Accepted Solutions (1)

STALANKI
Active Contributor
0 Kudos

Then still more simple.

Sender-SOAP adapter

reciever-RFC adapter

Does that solve the problem?

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

/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services

can help you in setting up the scenario in XI with just the difference z the reciever adapter.

Former Member
0 Kudos

There are several things I don't understand in this scenario:

1) Do I need to actually create a WS that calls the RFC ? isn't the virtual interface exposed by the XI sufficiant ?

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 ?

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

thanks,

Elad.

Former Member
0 Kudos

Hi Elad,

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

Since 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 your questions:

1) Do I need to actually create a WS that calls the RFC ? isn't the virtual interface exposed by the XI sufficiant ?

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 it's 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.

Thanks,

Jesse

Former Member
0 Kudos

Hi jesse,

could u please eloborate how to create webservice of an RFC directly.? Can u create a WS for any other interface that is defined in IR? Why bcoz..RFC is also an interface in IR .

can u suggest any weblog regarding this.

I have alreday done the scenario which u have explained.However its a very clear and detailed explanation.

regards,

datta.

Former Member
0 Kudos

Hi Jesse,

This was very helpful, thank you.

Now, the RFC is exposed through a SOAP -> RFC interface in the XI, but each request sent to the SOAP adapter needs user+password authorization, how do I allow anonymous requests to the WS ?

Thanks again,

Elad.

Former Member
0 Kudos

Hi Elad,

>>how do I allow anonymous requests to the WS ?

you cannot have annonymous requests in XI3.0. before making the soap call are you providing

userid = xxxx

password = xxxx

domain = ""

make sure the userid has the role SAP_XI_APPL_SERV_USER this is the only role required to send messages to XI.

>>how do I allow anonymous requests to the WS ?

But on the othere hand, you can trun off security for all the interfaces in XI, by turning off security in Visual Adminstrator.

cheers,

naveen

Answers (4)

Answers (4)

former_member185846
Active Participant
0 Kudos

,

STALANKI
Active Contributor
0 Kudos

elad,

since it is 4.6 c u cannot expose it as a webservice.

STALANKI
Active Contributor
0 Kudos

You have configure an RFC adapter at the sender end and map it WSDL of the reciever end.

Sender Adapter-RFC

Reciever Adapter-SOAP

Former Member
0 Kudos

But I would like the web application to use the WS in order to call the RFC.

STALANKI
Active Contributor
0 Kudos

Definetly.

You have to configure a RFC adapter and a SOAP adapter at the other end for exposing it as a webservice.

you can find the info about soap adapter configurations from blogs by siva marani and sudhir .use advanced search and check them out.

Former Member
0 Kudos

Hi Sravya,

The question is, how do I expose the web service from my 4.6C ?

When I configure my SOAP adapter I'm supposed to be using a deployed WS, the problem is, all I have is the RFC, and the 4.6C doesn't provide the WS deployement functionality.

Thank you,

Elad.