Introduction to the Lesson: Exploring SAP S/4HANA Extensibility
This lesson explains the various extensibility options for SAP S/4HANA. These include key user extensions, classic extensions, developer extensions and side-by-side extensions, each serving different requirements and use cases.
This part contains the following topics:
Classic Extensibility, Overview
Summary
This traditional enhancement method involves customizing the SAP code directly in the system. This offers a high degree of flexibility, but can also lead to challenges with updates and maintenance.
Introduction
Classical enhancement in the ABAP stack is only recommended in exceptional cases. Therefore, this is not the extensibility approach in our example.
Classic Extensibility - Classic ABAP
Classic extensibility (done using Classic ABAP ) is available in SAP S/4HANA Cloud private edition as well as an SAP S/4HANA on-premise deployment. SAP S/4HANA Cloud public edition as well as SAP BTP ABAP Environment use ABAP Cloud only. Classic extensibility refers to the broad range of SAP's traditional and historical extensibility options that you as a customer or partner can use to extend ABAP-based on-premise SAP solutions.
Programming models matrix ( by product | by version | by feature )
Classic Extensibility incorporates all development paths before the introduction of ABAP RESTful application programming model. You can see that ECC systems can only be extended via Classic extensibility.
Components in the SAP S/4HANA stack
As shown in the figure, you can create custom applications (yellow components) which would be clean core compliant. However, the core can also be extended (green components), which would not be clean core compliant.
Classic Extensibility sample
For which use cases is this approach particularly suitable?
Advantages of Classic Extensibility
Availability for the following installations
Comparison of Classic ABAP with ABAP RESTful Application Programming Model
The following list is a comparison of Classic Extensibility with Developer and Side-by-Side Extensibility:
Developer Extensibility Overview
Summary
Developers have the option of making advanced customizations and extensions that go beyond the key user options. This requires in-depth technical knowledge and offers extensive customization options. The ABAP RESTful application programming model (as an essential part of ABAP Cloud) is supported on all SAP S/4HANA deployment options.
Introduction
Developer Extensibility allows customers to implement extensions while simultaneously maintaining a clean core. Frameworks and concepts are developed for this purpose. Developer extensibility is accomplished via released ABAP RESTful Application programming model extension points and / or through released BAdIs.
Developer Extensibility in a nutshell
ABAP RESTful Application programming model is a set of concepts, tools, languages, powerful frameworks, and best practices provided on the ABAP platform. The ABAP RESTful Application programming model enables the efficient and rapid development of innovative and cloud-enabled enterprise applications as well as for the extension of SAP standard applications in the cloud and on-premise. It is deeply integrated into the ABAP language and an essential part of ABAP Cloud; in addition, ABAP Development Tools In Eclipse (ADT) has been optimized to support the development process. The most important building blocks in ABAP RESTful Application programming model are:
- Core Data Services (CDS), which are used for SAP HANA-optimized queries to define semantically rich data models for all application domains and to define the transaction behavior of the modeled entities.
- The modernized and extended ABAP language, which is used to implement business logic.
- The OData protocol, which is used for stateless communication.
- The concept of the business object (BO), which is used to build transactional, analytical and integration oriented applications.
- The concept of the business service, which is used to define services.
ABAP RESTful Application programming model provides a standardized development flow in ADT and a rich feature set for building applications from different domains, either from scratch or by reusing existing custom code.
Various types of consumable services can be created with ABAP RESTful Application programming model:
- OData-based services for building role-based and responsive SAP Fiori apps.
- OData-based services for exposure as Web APIs.
- Business events.
Advantages
For which use cases is this approach particularly suitable?
Available for the following installations
The ABAP RESTful Application programming model is supported on all SAP S/4HANA deployment models as well as SAP BTP ABAP Environment.
Differences Between SAP S/4HANA Private Edition | On-Premise Versus SAP S/4HANA Public Edition
The enhancement tools are available for developers in both the SAP S/4HANA public edition and SAP S/4HANA private edition | on-premise. However, there are some differences.
- Different UI/OData (gateway) setup (embedded vs. hub scenario.)
- Different setup of identity and access management (IAM) and communication management.
- Different transport setup (between development, test and production systems.)
- This means that tools work differently in some areas (for example, OData publishing and UI) or are not available at all in S/4HANA on- Premise (for example, ADT editors for Cloud IAM/COM). Refer to the documentation for Public Cloud and SAP S/4HANA On Premise.
Side-by-Side Extensibility, Overview
Summary
With this method, extensions are developed and integrated outside the SAP system specifically on SAP BTP. This enables flexible customization without direct changes to the core system, which simplifies maintenance and upgrades.
Introduction
This approach offers many different options. One common feature is the use of released APIs from SAP S/4HANA Cloud. These APIs are used to perform CRUD operations on SAP S/4HANA Cloud data. Different concepts, tools, and services are able which can utilize these remote APIs.
Side-by-side extensions are software applications that run outside of SAP S/4HANA Cloud (or another business application) but interact with it via standard SAP APIs.
They can potentially run on any runtime application platform, but SAP offers and recommends the SAP Business Technology Platform.
Different options for a side-by-side extension
The following image shows an overview of the different side-by-side extension options.
No. 1: Full stack application development on SAP BTP
Different technologies for the individual layers
| Layer | Environment | Technology | Services |
|---|
| Database | SAP BTP | SAP HANA | SAP HANA |
| Business Logic | ABAP | RAP | Eclipse ADT |
| Cloud Foundry | CAP | SAP Business Application Studio, SAP Build Apps | |
| Front-end | Cloud Foundry | SAP Fiori Elements | SAP Business Application Studio, SAP Build App |
| Cloud Foundry | Cloud Foundry | CAP | SAP Business Application Studio, SAP Build App |
No. 2: UI development on SAP BTP
| Layer | Environment | Technology | Services |
|---|
| Front-end | Cloud Foundry | SAP Fiori Elements | SAP Business Application Studio, SAP Build App |
For which use cases is the side-by-side approach particularly suitable?
- Proxy applications for a separate target group (no ERP users).
- Convenient applications that should run separately from the ERP.
- A customized application that runs in parallel with ERP to reduce the load on the operational system.
- Customized applications that require proximity to intelligent SAP BTP services such as machine learning, AI, and so on.
- Replacement apps that integrate with various ERP and cloud services.
- Partners want to offer a SaaS solution and therefore need to operate their service independently of the SAP S/4HANA system.
- ABAP and non-ABAP developments (Java, Node.js, and so on.)
- Extension of the UI application with a no-code application such as SAP Build Apps.
- ERP workflow and business process automation.
- Pre/post-processing applications for the SAP S/4HANA system.
- Analytical applications.
Advantages of side-by-side extensibility:
Example of a side-by-side UI extension on SAP BTP
Example of a side-by-side full stack extension on SAP BTP