Integration with SAP ERP using native AWS services (ESB)

0

Hi, I am new to AWS and I have been asked to evaluate the replacement of our ESB (service bus) and use native AWS services, our main data source is SAP ERP on Premise (financial/accounting), is this possible? We currently use adapters of the type: RFC, IDOCS, ODATA, SFTP, BAPI, WS. Our target systems are on-premise apps and SaaS services.

Please help me with this, thank you.

3 Answers
0

One option to consider is Amazon AppFlow, as it has a powerful OData Connector for SAP: https://docs.aws.amazon.com/appflow/latest/userguide/sapodata.html

AppFlow has a low/no code interface, retains SAP application level context and supports change data capture through operational data provisioning queues.

profile pictureAWS
EXPERT
Kemp_P
answered 2 months ago
0

For cases where the the ABAP system needs to initiate an event, you can use the AWS SDK for SAP ABAP. It has complete coverage of the EventBridge API as well as other APIs like SQS (techniques using the SDK to build event-driven architectures in SAP ERP using SQS are in this blog).

And if you find an EventBridge demo or blog for a different language, it is pretty trivial to rewrite into ABAP, as all the AWS SDKs are closely aligned. For example, this example of the put_events() call in Python can be rewritten in ABAP using the the corresponding ABAP call /AWS1/IF_EVB=>PUTEVENTS(). Here's a quick rewrite of thate python example in ABAP:

REPORT yevb_putevents_demo.

START-OF-SELECTION.
  " Create CloudWatchEvents client
  DATA(lo_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ).
  DATA(lo_evb) = /aws1/cl_evb_factory=>create( lo_session ).

  " Put an event
  DATA(lo_response) = lo_evb->putevents(
    it_entries = VALUE /aws1/cl_evbputeventsreqentry=>tt_puteventsrequestentrylist(
      ( NEW /aws1/cl_evbputeventsreqentry(
        iv_detail = `{"key1": "value1", "key2": "value2"}`
        iv_detailtype = 'appRequestSubmitted'
        it_resources = VALUE /aws1/cl_evbeventresrclist_w=>tt_eventresourcelist(
          ( NEW /aws1/cl_evbeventresrclist_w( 'RESOURCE_ARN')  )
        )
        iv_source = 'com.company.myapp'
      ) )
    )
  ).

  " print the response
  LOOP AT lo_response->get_entries( ) INTO DATA(lo_entry).
    IF lo_entry->get_errorcode( ) IS NOT INITIAL.
      WRITE: / |errorcode { lo_entry->get_errorcode( ) }: | &&
               |{ lo_entry->get_errormessage( ) }| COLOR COL_NEGATIVE .
    ELSE.
      WRITE: / |Event_ID { lo_entry->get_eventid( ) }|.
    ENDIF.
  ENDLOOP.
profile pictureAWS
answered 2 months ago
0

Hello Claudio Hermosilla, We would like to know more about the scenarios you are considering for native integration from AWS Services to SAP on-premises. 1/ Are you looking at application integration for action and indexing data in SAP? Are we right in assuming the direction is from AWS towards SAP in this case? 2/ Is B2B data interchange as managed EDI service useful in application integration? 3/ Do you have plans to run SAP on AWS in the near future? 4/ Are you considering data replication and analytics on AWS as well?

Happy to connect with you on a holistic solution. Can we set up a call to explore further?

Thanks, Yuva, Product Manager, SAP on AWS

answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions