cancel
Showing results for 
Search instead for 
Did you mean: 

Abap Proxy vs Odata Proxy

luchorio2016
Explorer
0 Kudos

Hello Dear Experts.

I just watching this post: Exposing master data as ODATA service from S/4 HANA on-premise | SAP Blogs

I have a question , currenlty we have many scenarios ABAP Proxy on ECC On Premise with SAP PO.

Is there any advantage to create OdataProxy vs ABAP Proxy when we migrate our ECC on Premise to S/4 Hana? and use CPI, or in what case can we use Odata Service?

Regards

Accepted Solutions (0)

Answers (1)

Answers (1)

alex_bundschuh
Product and Topic Expert
Product and Topic Expert
0 Kudos

Pedro has nicely described some use cases for OData services but when it comes to exchanging messages between SAP ERP or SAP S/4HANA and either of the integration platforms SAP Process Orchestration or Cloud Integration in an async way and reliably, hence with quality of service exactly once, then I would stick to ABAP proxies or web services

Alex

VijayKonam
Active Contributor

The major fact that needs to be understood here is that OData services are synchronous in nature and are always pull or push based. You can not have outbound Odata service unless CPI or the client initiates the call. So one size does not fit all. Also, for process integration(not the system) scenarios proxy is much more recommended due to asynchronous message processing. I would not do Odata unless it is a very light weight mobile client type of integration.

dr_ajt
Participant
0 Kudos

Alex,

I'm quite interested in your observations here. I've used SAP ABAP proxies on ECC and S4 systems with classic PO and CPI for years and never had any problems in performance on the SAP side using both async and sync methods. Currently a colleague with more OData experience (and no proxy experience) has built an interface and we're experiencing performance and stability issues. When CPI polls the OData service, we may get timeouts and we're at the mercy of external systems. Within the OData service we're marking data as sent, when in fact that's not always true, it has merely been passed to CPI which may have not actually delivered anything.

Notwithstanding the limitations of CPI relative to classic PO, where do you see the line fall between proxy and OData being the best tool for the job?

In our case we're moving basically a table of 65,000 records in XML via the interface in one go - which isn't the most stable scenario as you'd expect. If it were a proxy I'd be sending the data in smaller chucks and only updating state in S4 once CPI has confirmed delivery of each record. As it's running from a S4 process, I can pause after each proxy call and then send more data until all possible data has been sent. If we get transmission failures (we can't control for the other end being offline) then we can control retries before giving up gracefully. The main point being that when I start again I won't have accidentally marked things sent that have not been sent.