Difference between SAP ABAP and SAP RAP

Preface – This post is part of the SAP ABAP RAP series.


SAP has introduced various programming models helping the organizations via development of efficient applications that meets their business needs. Over time, with changing requirements and technologies, these programming models have evolved from DYNPRO and list programming models for SAP GUI based applications to WEB DYNPRO model for web-based applications and thereafter to SAP ABAP programming model for SAP Fiori.

While SAP ABAP programming model for SAP Fiori is a key advantage in terms of evolving landscape, flexibility and efficient modelling for SAP Fiori, SAP HANA; lacks certain criteria like simplicity and typed access to business entities which seems to be the basic need for application development. Here RAP, a new programming model by SAP, fills the gap.

SAP ABAP RAP provides the intrinsic approach to build SAP Fiori based applications that are optimized for S/4 HANA and can run over on-premise as well as on the cloud.

What is SAP ABAP?

APAP stands for Advanced Business Application Programming. It is a 4th Generation (because it is domain specific language) programming language developed by SAP.
ABAP is the programming interface of Application Server ABAP (AS ABAP) in SAP NetWeaver. A prerequisite to use the ABAP programming language is to install an Application Server ABAP.
The components of an Application Server ABAP can be organized in the layers (presentation, application, and database) of three-tier client-server architecture in accordance with their tasks.


SAP ABAP RESTful Application Programming Model (RAP) was introduced by SAP Cloud Platform ABAP environment and is available with 1808 release and higher.

The RESTful Application Programming model is built on the top of the semantic data model (CDS) and the transactional services are exposed in behaviour definition and implementation in implementing behaviour class. It also allows adapting the existing applications to be modelled which is intended to be used over a long time.  You can start from scratch (greenfield implementation) or you can reuse existing business logic (brownfield implementation).

One can develop the following end-to-end scenarios:

  • SAP Fiori service
  • Service consumption
  • Web APIs

Difference between SAP ABAP and SAP RAP

SAP ABAP is an existing on-premise coding language for SAP Systems. It is now also available in cloud as “ABAP on Cloud”. SAP RAP is a programming model that defines an architecture for efficient end to end development of SAP HANA optimized OData services.
It was basically made for on-premise (R/3 and HANA) applications. It is basically made for S4 HANA and ABAP on cloud services.
It is available for all the versions of S4HANA. It is only available for S4HANA 1909 and later.
ABAP based classical approach (reports, FM, class and OData) cannot use Entity Manipulation Language (EML). SAP RAP was designed to use Entity Manipulation Language (EML).
Business objects are supported via BOPF approach. Business objects are part of Behavior Definition Language of SAP RAP. It is an integral part of all the RAP services.
OData is created via SEGW. OData is created via CDS only.
ABAP is already stable. SAP RAP is still evolving.



Read more about SAP ABAP on its official documentation: https://help.sap.com/viewer/7bfe8cdcfbb040dcb6702dada8c3e2f0/7.5.9/en-US/2ff82a005ddd4f369b74bfda71f297c0.html

Learn about SAP ABAP on GoCoding tutorials: https://gocoding.org/abap-beginner/

Read more about SAP RAP on its official documentation: https://help.sap.com/viewer/923180ddb98240829d935862025004d6/Cloud/en-US/289477a81eec4d4e84c0302fb6835035.html

Learn about SAP RAP on GoCoding tutorials: https://gocoding.org/sap-abap-rap/


  • Barry Allen

    A Full Stack Developer with 10+ years of experience in different domain including SAP, Blockchain, AI and Web Development.

    View all posts


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.