Skip to Content
Technical Articles
Author's profile photo Carine Tchoutouo Djomo

Evolution of the ABAP Programming Model

🔥 Check out the new SAP Community subtopic page Modern ABAP Development with RAP!
Latest News: 
2022-12: ABAP Cloud (blog)
2022-09: Modern ABAP Development with RAP
2021-10: Modernization with RAP (blog)
2021-07: Compact Feature Availability Matrix of ABAP Programming Models (blog)
2021-01: Renaming of SAP Cloud Platform ABAP Environment to SAP BTP ABAP Environment
2020-10: Free openSAP course on Building Apps with RAP
2019-10: RAP is available on-premise starting with SAP S/4HANA 1909. Read the blog: Getting Started with RAP

At the end of my blog Be prepared for the ABAP Programming Model for SAP Fiori, I mentioned that the ABAP platform development team was working on an evolutionary development of the ABAP Programming Model for SAP Fiori: The ABAP RESTful Programming Model.

We’re all set! The ABAP RESTful Programming Model (aka ABAP RESTful Application Programming Model – or RAP for short) is now generally available within the SAP Cloud Platform ABAP Environment – SAP’s new ABAP PaaS offering – launched on September 4th 2018. [Read more]

I would like to explain what this evolution is all about and what it means for ABAP developers, using the illustration below.

/wp-content/uploads/2016/02/sapnwabline_885687.png

The different sections I will handle in this blog are:

/wp-content/uploads/2016/02/sapnwabline_885687.png

Classic ABAP Application Programming

Most SAP customers are using SAP enterprise software based on the ABAP release 7.50 or lower.

On these ABAP releases, various UI technologies are available for building applications, e.g. classic Dynpro, Web Dynpro ABAP, Floorplan Manager and WebClient UI framework.

With the ABAP release 7.4, SAP started to heavily optimize the ABAP platform for its in-memory database SAP HANA. In this context ABAP Core Data Services (CDS) were introduced to offer the next generation data modeling infrastructure and data access. CDS-based data models are semantically rich data models that can be used for all application domains. Additionally, SAP Gateway became an integral part of the AS ABAP with release 7.4 and the Business Object Processing Framework (BOPF) also found its way into the ABAP platform with release 7.5.

For several reasons – e.g. modern web application user experience, mobile enablement and cloud readiness – SAP decided to support a RESTful communication between backend and frontend. Combined with the decision to apply a new role-based and consumer-grade user experience using a modern UI design paradigm, the new SAP Fiori development stack was born with:

  • SAPUI5 as SAP’s UI development toolkit for HTML5 – with SAP Fiori Elements offering reuse building blocks and complete floorplans for a higher UI development productivity for the most common application patterns
  • OData as REST-based protocol including metadata allowing a model driven approach and enabling SAP Fiori Elements-based UI development
  • the ABAP Platform for the business logic
  • ABAP Development Tools in Eclipse and SAP Web IDE for the backend and the frontend development respectively

SAP’s decision to make SAPUI5 and OData as core technologies of the SAP Fiori development stack brought new challenges regarding the development of applications – especially transactional apps.

This led the ABAP platform team at SAP to work on the introduction of a new programming model that will offer an efficient and standardized way for building all types of delightful and SAP HANA-optimized apps, i.e., transactional, analytical and search apps, and also best support product qualities such as continuous work and device switch on the UX level, extensibility and scalability on the cloud-readiness level, when at the same time preserving the well-known ABAP platform assets like lifecycle management and supportability. Another important aspect was to enable an easy onboarding of developers without having to read tones of documentation first.

The ABAP Programming Model for SAP Fiori was introduced for this purpose.

Read more:  SAP Fiori | ABAP Development for SAP HANA 

ABAP Programming Model for SAP Fiori

With release 7.5, the ABAP Programming Model for SAP Fiori was first made generally available and then further enhanced with the following releases.

The ABAP Programming Model for SAP Fiori offers a standardized way to efficiently develop modern and intrinsically SAP HANA-optimized web-based applications of all types, i.e., search, analytical and transactional apps. It is the current best practice for application developments in SAP S/4HANA.

The ABAP Programming Model for SAP Fiori is mainly based on modern and proven technologies such as CDS, BOPF and SAP Gateway, especially using the advanced SEGW option Referenced Data Source (RDS) to easily exposed a given scope of an CDS data model as OData service. A lightweight CDS-based flavor of the BOPF framework is used in this context for the transactional processing.

With ABAP 7.51 the draft capability which is used for setting exclusive locks and storing intermediate – and even inconsistent – data was introduced. It enables the development of complex SAP Fiori apps with stateless communication and new application qualities such as continuous work and device switch.

The underlying application infrastructure integrates and orchestrates the different technologies in the best possible manner for supporting Greenfield scenarios where new applications, including their custom logic, are designed and implemented from scratch. Greenfield scenarios allow a high level of flexibility regarding the application design and architecture.

The situation looks quite different for Brownfield scenarios where the custom transactional application logic typically already exists based on coarse-grained create, update and delete operations and thus allow less flexibility with respect to application design and architecture. Brownfield scenarios are not supported by the ABAP Programming Model for SAP Fiori.

After the consolidation of the ABAP Programming Model for SAP Fiori, the next logical step was to integrate the different concepts into the ABAP and CDS languages, as well as to support the complete backend development flow natively in the ABAP Development Tools to reduce the total cost of development (TCD). Another important aspect was to tackle the different limitations due to the use of existing technologies in a non-disruptive manner.

With the aim to tackle the different aspects of the SAP Fiori development stack mentioned above, the ABAP RESTful Application Programming Model was introduced!

Learn more:  Getting Started with the ABAP Programming Model for SAP Fiori 

ABAP RESTful Application Programming Model

The ABAP RESTful Application Programming Model (aka ABAP RESTful Programming Model) is the evolutionary successor of the ABAP Programming Model for SAP Fiori. It enables the efficient and standardized development of web-based applications and Web APIs. It is generally available to customers and partners within SAP Cloud Platform ABAP Environment starting with release 1808.

SAP has opted here for a cloud-first delivery approach in the SAP Cloud Platform with a quarterly update cycle and plans to deliver it on-premise with SAP S/4HANA at a later time*.

The illustration below shows the big picture of the ABAP RESTful Programming Model with three main layers:

  • Data Modeling and Behavior where the business object modeling and the queries definition occurs. At this layer the transactional behavior is defined and implemented.
  • Business Service Provisioning where the OData exposure of the backend Data occurs in two steps. First the protocol service scope definition where the relevant data model entities are specified, and then the proper binding to the OData protocol.
  • Service Consumption where the scenario dependent consumption occurs – using for example SAP Fiori Elements.

The golden rules of the ABAP RESTful Application Programming Model are:

  • Eclipse-based experience for the backend development tasks in the ABAP Development Tools
    • Eclipse-based editors provided for all involved standard tasks; SAP GUI no longer needed
    • Clear entry point and clear development flow from one task to the next one
    • Fast developer on-boarding without reading tons of documentation
  • ABAP Language and CDS are the main interfaces to the developers 
    • Direct support for business object development (data modelling and transactional enablement) in CDS and the ABAP Language;
    • No need for separate framework such as BOPF and framework-specific tools; No code generation and therefore avoidance of possible code redundancies and inconsistencies
    • Standard implementation tasks via typed APIs supporting useful IDE features like static code checks, auto-completion and element info
    • Avoidance of runtime errors by using static code checks thanks to typed APIs
  • Powerful frameworks for runtime components 
    • Taking over and standardizing the technical implementation tasks
    • With dedicated code exits for application-specific business logic provided on protocol agnostic layers

Similarly to the ABAP Programming Model for SAP Fiori, business objects remain the major entities in the ABAP RESTful Application Programming Model.

Beside the Greenfield scenarios, Brownfield scenarios are also supported – allowing the reuse of existing legacy code.

The OData exposure is now done via business services created in two steps. As first step, a protocol-agnostic service definition where the relevant business objects and additional information (e.g. value helps) to be exposed are specified. And then as second step the binding of the service definition to a given protocol and scenario – UI or Web API. Currently only OData is supported as communication protocol.

Watch this SAP TechEd 2018’s replay of session CNA215 to get an a big picture overview of the ABAP RESTful Programming Model on the SAP TechEd Online platform.

[âš  2023-05-03] Sorry but this SAP TechEd archive is no longer available. Instead, check out 🟢 A Beginner’s Guide to RAP

Learn more: Getting Started with the ABAP RESTful Application Programming Model 

How can SAP customers and partners be prepared for the new world?

In order to enable a smooth move to the ABAP Programming Model for SAP Fiori at a later time, we’ve compiled a list of recommendations (DOs and DONTs) for customers and partners developing new applications on ABAP release 7.4 and downwards.

These recommendations are also valid for a smooth move to the ABAP RESTful Application Programming Model.

Read more: Be prepared for the ABAP Programming Model for SAP Fiori (Blog)

What about applications built with the ABAP Programming Model for SAP Fiori?

This is a valid question from SAP customers and partners who want to safeguard their investments.

SAP is aware of this and plans to provide an integration option of the CDS-based BOPF BOs within the ABAP RESTful Application Programming Model to reduce significantly the migration effort from the ABAP Programming Model for SAP Fiori.

The current state of planning is to offer such option in the year 2020*.

On the other hand, SAP will continue to support the ABAP Programming Model for SAP Fiori beside the ABAP RESTful Application Programming Model in the future for upwards compatibility reasons.


 Related Information

Find links to different learning materials around the programming models described in sections 2 and 3.

* This is the current state of planning which may change at any time without further notice from SAP.

Assigned Tags

      16 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      so we have a final working model where UI is a consumption layer cool.... but I smell something cooking is UI5 going to die a premature death. fiori is not getting much traction unless inscenarios where it is forced like with HANA db itself. But happy that ABAP is evolving.

       

      Author's profile photo Yogesh Vijay
      Yogesh Vijay

      Hi Carnie,

       

      Nice blog, with your last point ( point no 5) I get to know that there must be some migration for BOPF based BO, however what about SEGW based service?. Do we have migration for those also, or we just need to recreate them with new Service Definition and Service Binding.

      Author's profile photo Martin Reichenecker
      Martin Reichenecker

      Hi Carnie,

      if we start develop first FIORI Apps with the first programing model which is available from ABAP release 7.4, are the investment save for later S/4 / HANA conversion?

      Do you recommend starting to develop FIORI backend OData services with this release?

      Kind regards,
      Martin Reichenecker

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Martin,

      The ABAP Programming Model for SAP Fiori was introduced with AS ABAP 7.5 SP01, and the draft handling is supported starting with release 7.51 SP02.

      If you are working on release 7.40, then I recommend you make use of ABAP CDS and SAP Gateway (transaction SEGW) for building Fiori OData service. The Mapped Data Source (MDS) option is available in SEGW to expose CDS-based data models. UI annotations can be specified in the MPC_EXT classes.

      Starting with release 7.50, SEGW offers the Referenced Data Source (RDS) option which is also used within the ABAP Programming Model for SAP Fiori to easily expose CDS-based data models.

      You can find more recommendations in my Be-Prepared-blog.

      Find further information about SAP Gateway here:

      Kind regards,
      Carine

      Author's profile photo Younghwan Kim
      Younghwan Kim

      Hi Carnie,

      First of all, excellent blog about ABAP programming model for SAP Fiori.

      By the way, I was reading the What’s New in ABAP Programming Model,
      there seems is no change in S/4HANA 1909.
      Does this mean there will be no more new functionality in ABAP programming model ?

      Regards,
      Kim.

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Kim,

      you're welcome.

      The investment area regarding ABAP programming is clearly the ABAP RESTful Programming Model (Getting Started). Therefore, there is currently no plan to provide new functionality for the ABAP Programming Model for SAP Fiori which is still supported in SAP S/4HANA.

      You can find more information in the ABAP Platform Roadmap (to be updated very soon).

      Kind regards,
      Carine

      Author's profile photo Marco BĂĽrstinghaus
      Marco BĂĽrstinghaus

      Hello Carine,

      the text in section 3 is unfortunately cut off.

      Can you fix the error or provide me with the text?

      Thank you very much.

      Kind regards,
      Marco

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hello Marco,

      Which browser do you use?
      I can see the full text in Chrome whereas I have to use the horizontal scroll bar of the corresponding section to display the text in Internet Explorer.

      I hope this helps.

      Kind regards,
      Carine

      Author's profile photo Sean Zhang
      Sean Zhang

      Hi Carine,

       

      Thanks for the sharing.

      Do you already have the further information? "comparison to the ABAP Programming Model for SAP Fiori here"

       

      Thanks,

      Sean

      Author's profile photo Ramana SBLSV
      Ramana SBLSV

      Hi,

       

      Is the ABAP restful programming allowed from SAP S/4 HANA OP 1809 FPS01 version because I observed SAP released the new fiori apps nbased on this approach in ACR reports for 1809 OP version. Kindly help em to understand this concept?

      Author's profile photo Bernd Steinhauer
      Bernd Steinhauer

      Hello Carine,

      at the moment we are using the ABAP Programming Model for SAP Fiori to implement our transactional SAP-UI5-Apps (On Premise).

      Are there corresponding features in the new ABAP RESTful Programming Model for

      • Draft Handling,
      • Validations and Determinations (as I understand so far, BOPF is no longer used in ABAP RESTful Programming Model),
      • or MPC extensions in SEGW e.g. to retrieve a binary stream of a PDF document via Odata?

      Kind regards,

      Bernd

      Author's profile photo David Sun
      David Sun

      Hi Carnie,

      Excellent blog about ABAP RAP. It's big help for us.

      As far as now, the number of UI annotation control which can be used in CDS are limited, do we have any plan to enhance this part, thanks.

       

      Thank you very much.

      Kind regards,
      David

       

      Author's profile photo Sebastian Steinhauer
      Sebastian Steinhauer

      Hi David,

      great to hear from you. Please stay tuned just a little bit longer for the planned release of SAP Fiori tools - which will be a SAP Business Application Studio and Visual Studio code based suite of plugins specifically designed for SAP Fiori development .

      We are recommending to only use backend annotations for cases that already anticipate re-use. Most UI annotations can easily be added as local annotation and live with the generated app. The new tools will make this very easy.

      You can get a preview of the new tools in this session

      For SAP Fiori elements & SAP Fiori tools,
      Sebastian Steinhauer

      Author's profile photo Syambabu Allu
      Syambabu Allu

      Hi Carine,

      Thanks for sharing detailed blog on ABAP RESTful Programming Model.

      Ask here,I couldn't find the demo package(/DMO/FLIGHT_READONLY) in system(7.54 SP00 (1909 FPS01) .Can you please help here is there any prerequisite still not to meet my system.

       

      Thank you,

      Syam

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Syam,

      Thank you for the feedback.

      The ABAP Flight Reference Scenario (package /DMO/FLIGHT) has to be imported in the relevant ABAP-based systems. Two flavours - i.e. SAP S/4HANA and SAP Cloud Platform ABAP Environment - are available for download on GitHub. 

      Please find the necessary information about to import it in your system here: https://blogs.sap.com/2019/10/25/getting-started-with-the-abap-restful-programming-model/#RefScenario

      The ABAP Flight Reference Scenario is available by default in the SAP Cloud Platform ABAP environment trials.

      Kind regards,
      Carine

      Author's profile photo Syambabu Allu
      Syambabu Allu

      Hi Carine,

      Sure.Thanks for your quick response.

      Thank you,

      Syam