ABAP Platform – Part 2 – New programming models
This is the second part of the 4 blog posts regarding what is new on the ABAP Platform:
- ABAP Platform – Part 1 – Evolution from SAP Netweaver
- ABAP Platform – Part 2 – New programming models
- ABAP Platform – Part 3 – What’s new for the system administrators
- ABAP Platform – Part 4 – what’s new in ABAP Platform 2020 (New – Update 23.11.2020)
In the previous blog post, I presented you the evolution of the SAP Netweaver platform towards the ABAP platform. Now I going to provide a short overview of the new programming models available in ABAP Platform and SAP Cloud Platfrom, ABAP Environment.
Evolution of the ABAP programming language
Most of all SAP functionality developed in the last 40+ years is written in ABAP. The ABAP programming language is our flagship and has demonstrated that is a proven and robust platform to develop business applications.
Over the years, SAP has updated and modernized the ABAP programming language, we can distinguish 3 main milestones:
- The Classic ABAP programming language (Up to Netweaver ABAP 7.50)
- The ABAP programming model for SAP FIORI (Starting with Netweaver ABAP 7.50)
- The RESTful ABAP Programming Model (Available since ABAP platform 1909)
It’s no secret that many of our SAP customers are still running and developing SAP software using the classic ABAP programming model available for SAP products based on SAP Netweaver 7.40 and lower.
With the ABAP release 7.4, SAP started to optimize the ABAP platform for the SAP HANA in-memory database (code push-down) but many of these applications are still based on classic Dynpro, Web Dynpro ABAP, Floorplan Manager and WebClient UI framework.
The ABAP Programming Model for SAP Fiori was released with SAP Netweaver 7.50 and offered a standardized way to develop modern SAP HANA-optimized web-based applications efficiently.
Why a programming model? Because it offers a standardized, well-documented, model-driven programming model that highly improves default implementation tasks. Of course, applications can be developed without a pre-defined programming model. However, this results in very heterogeneous approaches across different application areas (e.g. no common approach for integrated testing, traceability and support tools for the end-to-end stack, UI decoupling is not guaranteed, etc…)
The ABAP Programming Model for SAP Fiori was based on proven technologies (CDS, BOPF and SAP Gateway).
With SAP Netweaver 7.51 this ABAP programming model for SAP Fiori was improved, additional features were added to enable stateless applications ( removing the tight coupling of the traditional client-server model to avoid server stickiness, so that an application can move from one application server to the other, and so that the application context is not stored on the application server level)
One of the major investments in the ABAP Platform is the RESTful ABAP Programming Model (RAP), which has been generally available since the SAP Cloud Platform 1808 release and now is also available on SAP S/4HANA on-premise with the ABAP Platform 1909 on-premise release.
The RESTful ABAP Programming Model is the evolutionary successor of the ABAP Programming Model for SAP Fiori. It includes essential extensions of the ABAP language, development tools and frameworks which enable the efficient end-to-end development of intrinsically SAP HANA-optimized SAP Fiori applications and web services in AS ABAP.
The focus of this shipment is on the use of queries (read-only apps) and the development of unmanaged transactional apps based on existing application logic:
With this new RESTful ABAP programming model, you can extend your existing SAP ABAP applications or develop new ones using state-of-art technologies.
But we know that sometimes customers prefer or need to use different programming languages, tools and/or frameworks… that’s why SAP is also offering a new programming model, The SAP Cloud Application Programming Model (CAP) which is an open and opinionated, framework of languages, libraries, and tools for building enterprise-grade services and cloud native applications.
The SAP Cloud Application Programming model (CAP) is also based on Core Data Services (CDS) like the RESTful ABAP programming model (RAP) but offers support for JAVA and node.js and it’s more flexible to integrate additional frameworks, libraries and tools.
Confused? Let’s try to summarize the current solutions provided by SAP to develop/extend SAP applications. SAP offers two REST-based application programming models:
- ABAP RESTful Programming Model (RAP)
- Evolution of the ABAP programming model for FIORI
- Avaialable for SAP Cloud Platform, ABAP environment since 1808
- Avaialable for S/4HANA on premise 1909+ (currently with reduced feature scope)
- Evolution of the ABAP programming model for FIORI
- SAP Cloud Application Programming Model (CAP)
- based on CDS but based on Node.js and JAVA
It’s interesting to note the conceptual similarities between the Cloud Platform Application Programming Model (or CAP) and the Restful ABAP Programming Model (RAP). Both are based on CDS (Core Data Services) but in the CAP are implemented on Java or Node.js instead of ABAP… let’s see what are the preferences of the SAP ecosystem and programmers in the next years.
Call to action
If you want to know more about the similarities and differences between these 2 programming models (CAP vs RAP) please have a look at these links:
- SAP TechEd 2019 : CAA103 – Get the big picture of the ABAP RESTful programming model
- CAP official documentation: https://cap.cloud.sap
- openSAP course: Building applications with CAP
In the next blog post I will talk about the new features and tools introduced by SAP for the systems administrators to simplify the administration tasks and reduce the TCO of the SAP solutions.
This is the blog part 2 of the 4 blog posts regarding what is new on the ABAP Platform: