cancel
Showing results for 
Search instead for 
Did you mean: 

Single ODATA Service call to read data from multiple systems

former_member609358
Discoverer
0 Kudos

I have a scenario to be build an ODATA service for an external system to consume. This ODATA service has to in turn speaks to multiple SAP system Example : I am building an ODATA Service in CRM system Now, this CRM system to send some on the data it has to fetch from other SAP systems such as ECC,C4S, BI etc systems. We also have some complex business rules to be applied on top of it to send the data back in ODATA respsonse . Could any one suggest what is the better approach to read the data from multiple system in a single ODATA service.

Accepted Solutions (0)

Answers (4)

Answers (4)

AbhishekSharma
Active Contributor
0 Kudos

Hi Kiran,

I think there is some confusion here.

I am not saying to do below :

As per your suggestion, you are asking us to split the request from SDFC at Gateway to all SAP system parallel. Consolidate of data and application of business rule or massaging data should be at Gateway. But, my concern/question is how do we do parallel calls to multiple systems? Is this possible in ABAP?

I suggested to have GW as a separate system (which you already have) and build your Service there. Since your Gateway System must already been connected to other systems in your landscape in your service code you can use RFC Function Modules to fetch data or direct service call from all systems and finally your required data will be available in GW system.

In this way there will be only one Service call from SFDC to your GW system. Once you get all you can manipulate data per requirement.

Hope this Helps.

Thanks-

Abhishek

former_member609358
Discoverer
0 Kudos

Hi Abhishek,

In our landscape, we have gateway server as separate instance i.e, separate box.

Currently, we are trying to build ODATA service to fetch some data which is widely spread across the multiple SAP systems.

Business scenario: SFDC has to pull data from C4S, CRM and S4 system based on some business rule

As per your suggestion, you are asking us to split the request from SDFC at Gateway to all SAP system parallel. Consolidate of data and application of business rule or massaging data should be at Gateway. But, my concern/question is how do we do parallel calls to multiple systems? Is this possible in ABAP?

For your information we are planning to call ODATA service from Gateway to all other SAP system systems instead of RFC calls as C4S supports ODATA services.

Regards

Kiran

AbhishekSharma
Active Contributor
0 Kudos

Hi Kiran,

As per the details provided what I have understood is you have multiple SAP system available in your landscape and requirement is to fetch data from all SAP systems based on certain logic/condition.

One thing that you have not mentioned is where is your Gateway configured/Installed ? Is this in with CRM system or its a separate machine ?

In these kind of scenarios it is suggested to have your Gateways system to be separate and connected with all other systems available in your landscape. So in case any updates are needed that will not affect (if restart is needed after an update) any of the systems. In case of any Issue its easy to identify place.

If you have this kind of landscape then you can have RFC connections available with all systems and from Gateways system. All your request will always hit to Gateway system and then it will be redirected to other systems to fetch Information.

You can have CDS views available (if possible) in other systems to speed up the response time, once all Information available back in Gateway system then you can apply your business rules on data per requirement and sent back to UI5 application.

We had similar kind of landscape with CRM , ECC and BW.

Hope this Helps..

Thanks-

Abhishek

Andre_Fischer
Product and Topic Expert
Product and Topic Expert
0 Kudos

From what you wrote it it is not 100% clear what would be best approach.

1)

You can implement all the business logic in your CRM Systemin one OData service implementation that would then perform calls to the other systems mentioned (ECC,C4S, BI). I asume the "complex business rules to be applied on top of it" can be implemented in CRM as well.

2)

You can alternatively build the business logic on client side (since we are talking about a system to system communication and not UI based consumption) and publish the data from each system (CRM, ECC,C4S and BI) as an OData service.

But since the external system is not yours approach 1) sounds the easier one to go.

Regards,

Andre