In 2021, new extensibility options were added to the ABAP platform, increasing the power of creating extensions in the Cloud. In this blog post, I want to give an overview on the available extensibility options and also tell you which options are available where.
In the following figure, you can find an overview on the extensibility options that are available now:
Extensibility Options of the ABAP Platform
Classic Extensibility
Starting point of my blog is the classic extensibility option of the ABAP platform. Available on the market since the first SAP releases, it is a cornerstone of SAP´s market success for SAP R/3, SAP ERP, and SAP S/4HANA on-premise. Classic extensibility includes a long list of extensions techniques that were developed and leveraged by application development over time. Classical extensibility is very powerful, because it enables you to extend SAP applications (from extension includes extending database tables, code extensions via user exits, class extensions, BAdIs, … UI extensions and many more) and to use (call) all kind of SAP code (BAPIs, function modules, classes, …). Even modifications of SAP code are part of the toolbox of classic extensibility. On the other hand, classic extensions are difficult to maintain and cause major effort for regression testing and adaptation when SAP upgrades and updates are applied.
In the document
Extensibility Guide for SAP S/4HANA Cloud, extended edition, extension techniques of the classic extensibility are classified as critical for the lifecycle management and operations (“red”) or less critical (“yellow”). For example, modifications are classified as “red” extension techniques, while implementations for non-released BAdIs or classic user exits are classified as yellow. The document was written for SAP S/4HANA Cloud, extended edition, but it can also be used as guidance for on-premise. "Red" extension techniques should only be used is there is no viable alternative (in SAP S/4HANA Cloud, extended edition they are forbidden), while yellow extension techniques may be still tolerated.
Extensibility Options with SAP S/4HANA
Together with SAP S/4HANA, new extension options were rolled out that allow lifecycle-save, cloud-ready extensibility:
- In-app Key User extensibility
- Side-by-Side Extensibility on the SAP BTP
Key user extensibility is available since 2015 for S/4HANA Cloud & on-premise. It is designed for specific use cases (often the so-called last mile adaptations). The key user extensibility tools are hiding the underlying complexity from the user. It is designed for experts in business departments or implementation consultant with a high process knowledge. It uses local released, lifecycle-stable APIs and extension points only. Therefore, key user extensions can be considered as clean/green code.
Since 2014, side-by-side extensibility on SAP BTP (at that time named SAP HANA Cloud Platform) is available. You can use developer or no-code/low code tools and various technology platforms to build loosely coupled extensions using remote released and lifecycle-stable APIs and events for integrating with SAP S/4HANA. With side-by-side extensibility you can leverage skills and resources of your workforce, for example in Java or integration development, and the services and resources that are available on SAP BTP. With side-by-side extensibility, you can flexibly call-off resources for the respective runtime environment in SAP BTP. Resources can be scaled without impact on the core system. This means you can “keep the core clean” also with the aspects of workload and performance.
In 2018, SAP added ABAP to the SAP BTP, called
SAP BTP ABAP Environment or by its project name: Steampunk. Steampunk comes with Eclipse-based ABAP Developer Tools and the ABAP language version
ABAP for Cloud Development. In this language version, only released APIs and objects (such as data types) of the ABAP platform can be consumed. Remote released APIs and events are used for integrating with SAP S/4HANA (same as for other side-by-side extensions).
This was the story my colleagues and I were telling in numerous sessions, blogs, mails, … (see
SAP S/4HANA Extensibility: A Learning Journey for a collection of resources). But now lets look at the great new options that have been introduced in 2021!
2021
What did change in 2021 – for SAP S/4HANA Cloud?
The ABAP development environment was made available in SAP S/4HANA Cloud named the
SAP S/4HANA Cloud ABAP Environment (aka Embedded Steampunk). This option is available as of 2108 for early adopter customers. In the figure and in the documentation of SAP S/4HANA Cloud, you can find it under the name
Developer Extensibility. This option closes the gap that existed between the in-app key user extensibility option and the side-by-side extensibility option. It is based on the same language version (
ABAP for Cloud Development) as Steampunk, but in the embedded option, you have direct access to local released APIs and extension points of SAP S/4HANA. A nice overview on the evolution can be found in
Steampunk is going all-in.
What did change in 2021 – for SAP S/4HANA on-premise?
In my blog
Restricted ABAP and SAP S/4HANA On-Premise I discussed the use of the ABAP language version
ABAP for Cloud Development in on-premise. Using this language version in on-premise helps you to create clean/green code already in your on premise system to make your extension more update-save and prepare for a move into the Cloud. Up to now, the use of the ABAP language version
ABAP for Cloud Development in on-premise had the big disadvantage that only APIs from the ABAP platform were released and could therefore be used, but no APIs and extension points from the SAP S/4HANA layer. This changed in the version 2021. In this version SAP S/4HANA application development released about 2.500 CDS views, 200 enhancement spots (with BAdIs) and numerous objects such as data types, domains, authorization objects, … . In addition, 11 RAP business object interfaces (behavior definitions) are released. RAP business object interfaces are the successor of classical BAdIs in the world of the
RESTful ABAP programming model (RAP) . The scope of released APIs in 2021 is of course not comparable with the huge amount of functionality that you can access in classic extensibility – but is a starting point for your clean code that can grow over time.
What did change in 2021 – for SAP and partner extensions built on SAP BTP ABAP Environment?
Partners (or SAP) can create their (side-by-side) extension on SAP BTP ABAP Environment and provide it to many customers. To be able to do this in a cost-efficient manner, multi-tenancy for the SAP BTP ABAP Environment was introduced. Since release 2108, you as a partner can enable your partner solution on SAP BTP ABAP Environment for extensibility and let your customers extend them using key user tools in a multitenancy environment. This is described in my blog post
Extending the Extension – Key User Extensibility for SAP BTP ABAP Environment.
The following figures shows which extensibility option is available for which product.
Extensibility Options: Which Option is Available Where
All in all, 2021 will be another turning point for extensibility of ABAP-based solutions in the Cloud. From the viewpoint of the extensibility options, the picture is now complete. Now the crucial point is to increase the amount of released APIs and extension points and to close the remaining gaps in the toolsets for developer and key user extensibility.