cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP/web service to RFC scenario

alancecchini
Participant
0 Kudos

Hi,

I've just created a prototype inside-out scenario by generating a web service from a function group for two function modules in R/3 transaction SE37 then creating the required configuration in transaction SOAMANAGER for the end point/binding and this works fine using the web service navigator test tool which I run from the PI system

As we wish to use PI as our integration broker I would like to model the same scenario (a SOAP web service call to an R/3 RFC) using PI.

Obviously I need to import the RFC definitions but I'm unsure what I should map into the message interface and whether I can simply use this for the source/target message.

Would someone please briefly describe the objects,settings and links required in the Integration Repository and how to determine the URL that will be called to execute the service, I can't find any relevant documentation for this use case.

Thanks,

Alan

Accepted Solutions (0)

Answers (7)

Answers (7)

alancecchini
Participant
0 Kudos

Presumably one of the downsides with exposing the RFC as a web service is that the endpoint/binding and related configuration must be done in the backend R/3 system to release the web service then similar configuration would need to be done in the Integration Directory as this will define the source point where the process starts?

alancecchini
Participant
0 Kudos

For my scenario of exposing an RFC as a web service via PI is there any advantages to using SOAP-PI-SOAP vs SOAP-PI-RFC?

Which would SAP recommend for standard practice?

Thanks,

Alan

Former Member
0 Kudos

Hi Alan,

As you have already mentioned, if you use PI it will align with your general landscape of using PI as the common EAI tool. Obviously you have a single point of monitoring all your interfaces running across your organisation. This approach is recommended rather than a direct connection. In PI 7.1 you also have the option of direct connection using PI 7.1. Here PI's routing and mapping functions are not completely used.

Regards

Jai

former_member181962
Active Contributor
0 Kudos

Hi Alan,

SOAP-XI-SOAP would be the correct way to go.

Say, you have another system which wants to call RFC, it would have to use a JCo call or something like that.

It involves huge costs as JCo is a proprietary software.

Whereas Web Services being Open, can be called from most other systems also(Apart from XI).

The step that you decide to use SOAP-XI-SOAP over SOAP-XI-RFC is the first step towards a SOA Implementation, which is where every company, sooner than later, will move towards.

Regards,

Ravi Kanth Talagana

former_member206760
Active Contributor
0 Kudos

I think SOAP-XI-RFC is the correct way..

as this by itself means that you are exposing your RFC though a webservice...

and XI being your SOA middleware can transfer several requests from different SOAP clients to corresponding business logic in the backend..

SOAP-XI-SOAP has no meaning

former_member181962
Active Contributor
0 Kudos

Hi Tarang,

I beg to differ with your stance.

If you go for SOAP-XI-RFC scenario, you are creating a webservice with a wsdl corresponding to a structure specific to one specific Busness system.

That structure may or may not be reusable across the different partners of the company

Also, assume a hypothetical scenario where there is no XI involved at all.

Then calling a RFC would require proprietary coding which involves a Huge cost.

If the RFC is exposed a webservice, it can be invoked by any system which supports open standards without any additional cost overhead.

Regards,

Ravi Kanth Talagana

former_member206760
Active Contributor
0 Kudos

Dear Ravi,

can you throw some more light on this...

What i think is as it the binding in the wsdl generated in both the scenario would have host and port as XI server and the business service would be the sender business system.

what difference does it make

former_member181962
Active Contributor
0 Kudos

HI Alan,

Yes you are right in what you have said. But having said that, the step of creating the Binding and Service from the backend WSDL is optional in your case.

Dear Tarang,

You are right when you say we have to expose the Webservice out of XI finally in both cases.

But why i am suggesting exposing the RFC as webservice from back end is, that exposed webservice(from backend) is easier for any other systems to consume as well.

As an analogy, you can see SAP creating webservices for most of the BAPIs that are already there.

What I feel is SAP would not have gone for exposing the BAPIs as webservices if it would not foresee some benefit out of it.

Regards,

Ravi Kanth Talagana

P.S: Sorry Alan, if you feel we are hijacking your thread.

former_member206760
Active Contributor
0 Kudos

Dear Ravi,

Are you saying that you want the option of using that BAPI via 2 ways :

1. through XI....but here also you can just publish that wsdl generated by XI in service registry and others can use it...but yes the data will go though XI...

2. independently ...point to point connection without XI

Edited by: Tarang Shah on Mar 27, 2009 8:07 AM

former_member206760
Active Contributor
0 Kudos

Dear Ravi,

can you pls expalin on this ?

alancecchini
Participant
0 Kudos

Hi Ravi,

You say that creating the service/end point for the backend service is optional, please can you clarify.

In the SOAP-XI-SOAP scenario surely the backend service/end point must be set up in SOAMANAGER otherwise how would the call be made?

Thanks,

Alan

alancecchini
Participant
0 Kudos

Hi,

I understand that I need to map the web service request to the RFC request but what step do I need to do to implement this after I've imported my RFC definition.

As the parameter interface is the same what do I add to my message interface as the source target - i.e. do I need to create a message type in the IR for the web service request or can I simply use the RFC by dragging and dropping the definition and from what to where.

Thanks,

Alan

Shabarish_Nair
Active Contributor
0 Kudos

have you got a chance to look at this blog?

/people/shabarish.vijayakumar/blog/2007/11/07/walkthrough--soap-xi-rfcbapi

former_member206760
Active Contributor
0 Kudos

no need to create any message types.

directly drag and drop the same RFC in the source as well as target section of the message mapping and do one to one mapping....

obviously u will have to create one Outbound Asyn and one Inbound Asyn interface but the message type in both of them will be the same RFC

former_member206760
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Hi Alan,

In IR,

u need to create following objects:

1..Import RFC

2..create Message interface for webservice message (synchronous, outbound)

3...create mapping between webservice request and rfc request, rfc response and webservice response.

4..create interface mapping where source will be webservice interface and target will be RFC

In ID,

1...U need to create web service which will be used to test ur scenaio.

2...sender agreement

3..receiver determination

4...interface determination

Regards,

Manisha

Former Member
0 Kudos

Hey ,

If you want to send a RFC request via Webservice call then you need to create a mapping b/n soap request and RFC request and needs to map the RFC response to the soap response in case of sync scenario

once this is done you need to generate a Webservice and need to provide the WSDL to the consumer

Rajesh

agasthuri_doss
Active Contributor
0 Kudos

Hi,

Check the below threads

Cheers

Agasthuri Doss