cancel
Showing results for 
Search instead for 
Did you mean: 

Single Webservice to perform more than 1 function in different systems

Former Member
0 Kudos

Hello,

Just to give a brief idea what i am trying to achieve is:

I want to create a Web Service which will do some operations in R/3 , some operations in SAP-CRM and some in a .Net System.

So lets say:

I have a portal from where my Sales order is getting created in CRM, and then some validations and availability check has to be performed in a .Net System and finally Delivery of that SO should be done in SAP R/3 .

So i need to create a Web Service which can perform these functions in different systems.

So how can i design my scenario.

We can manage this through creating RFC's in different systems and calling them but how about .net system and what if it has to be done through Web Service approach only.

All inputs are most welcome.

Regards,

Mayank

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Mayank,

The best approach to follow would depend entirely on what solutions you have in your system ladnscape. It's a bit of an open ended question. I think you're complicating it though.

Unless your mandate is specifically to use web services & there is a reqyurement for real-time communication, I would use RFC's all around, even for the .NET portion, see more info on making RFC calls to .NET using the SAP .NET Connector (SMP Login required):

[https://websmp103.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000719347&]

This way you will ensure delivery (or retry mechanisms at the very least). You could also ensure delivery if all parties involved support WS-RM. If you specifically need use web service communication for the .NET call, you have some options like:

- RFC to SOAP call from SAP once the .NET connector is functioning.

- Generate a Service Consumer Proxy on the SAP side using the WSDL provided from the .NET developer (once the service is ready on their side) & trigger a service call as & when you need to.

If you need to use web serivce communication all around then you can do that as well (with some Abap Proxy Provider / Consumer dev work with some custom code OR you could use SAP Enterprise Services if available). It just means extra Abap development work when you already have all the tools (IDOCs etc.) to trigger RFC calls for all the SAP-to-SAP calls.

Regards, Trevor

Former Member
0 Kudos

Hi,

I agree that using RFC calls it can be achieved easily but WS-RM is what we are looking for:

I might have complicated here but basically i want a Single web Service which can perform 3 functions in 3 different systems:

The moment it gets called from my portal it should do these below functions:

1: Create a Sales Order in SAP-CRM System

2: Do a look-up and validations of some kind from one legacy system (WS -Supported)

3: Finally create Delivery in SAP-ECC 6.0 System .

So my Single web service should be able to perform above mentioned functions.

Now: how can i achieve this functionality:

I was thinking of :

I can create 2 RFC Function modules one each on SAP-CRM and SAP-ECC6.0 System and wrap them as a WebService Consumer. Call them in SAP-CRM system the moment my portal gives a call for SO creation which is the first step to be done.

Please provide your approach on this:

Regards,

Mayank Verdia

Former Member
0 Kudos

I have some scenario with a B2B solution. The B2B only have to be connected to a CRM system but the data we need to extract is in R3 and some other in a legacy system, your requirement maybe will be achieved doing this.

1.- Make a WebService in the legacy system.

2.- Make in CRM a consumer proxy class with the wsdl from step 1

3.- When the order saves (Search for order_save badi) at CRM implement the proxy class and send the values you want to

validate in the legacy system via WebService.

4.- When you receive the answer you can send the values you want to ECC via RFC (directly), or if you need a WebService approach you will need to generate an RFC (Remote access property set) in ECc and generate his WebService and maintain via soamanager, then you will need to generate other consumer proxy in CRM to consume the ECC web service, repeat step 2 in other words but now for ECC and send the values you already validate in the legacy system.

Edited by: Isaac Mena on Jun 18, 2011 5:09 PM

Former Member
0 Kudos

Hi Mayank,

Your scenario can work the way you've envisaged it. I personally don't like the approach because your'e trying to achieve web service orchestration in code, it should rather be something that is configurable & agile (maybe using software like SAP Composition Environment), but that doesn't mean it can't be done.

You can do the 2 Function Modules in CRM & ECC 6.0 but they should be wrapped as webservice providers, not consumers. You'll need an additional webservice consumer on CRM for the WS-Supported legacy system (you would generate this consumer using the WSDL provided by the legacy system). You would then reference this consumer from within the CRM webservice provider (and also reference the ECC 6.0 webservice provider) as and when the call is required in the process chain.

Then you can trigger the CRM webservice provider from the portal as needed. Bearing in mind, this is synchronous (fire & forget) webservice communication with a real -time response. SAP does support WS-RM depending on the version/s you're running but it equates to async webservice communication for guaranteed delivery.

Regards, Trevor

Answers (0)