
Experts, before getting into the topic, let's understand the motivation and purpose of the new modern extensibility options defined by the SAP for SAP S/4HANA Public, On-premise, and PCE editions.
A cloud-first approach is becoming the new normal powered by software-as-a-service (SaaS) applications with AI/ML, digital assistants, automating routine tasks, better user experience, flexible and agile operating model. SAP is bringing innovation into the core ERP business processes with frequent product release updates. SAP also provides freedom to go beyond standard ABAP language with a BTP side-by-side extensibility approach using BTP ABAP Cloud, Java, node.js, BYOL, etc. to build full-stack applications which will run in parallel with ERP which is challenging with the classic extension options. The extensibility option is a key capability of an ERP application that enables customers to customize their business processes with a competitive advantage in the industry and allows partners to enrich ERP with tailor-made solutions. The importance of extensibility has been confirmed by the legacy ERP flagship product SAP ECC and will remain valid for the current and future cloud ERP transformation.
SAP S/4HANA is a front-runner product providing intelligent ERP in the cloud and on-premise. The goal is to shift from the classic ABAP extensibility model to an SAP S/4HANA modern extensibility model that allows customers to consume SAP innovations, building future-proof extensions that are ready for the cloud ERP. For all, it is important to understand and know how SAP is shifting away from a monolithic architecture (SAP ECC era) to a microservices architecture that is modular, flexible, continuous deployment, and agile (SAP S/4HANA era with BTP).
There is chaos in the developer's community, how do we connect the dots for customers that are on traditional ABAP so they can take advantage of modern innovations? What is a new extension model? What is Embedded Steampunk, BTP ABAP environment? SAP CAP (Java, node.js) or RAP? What is Side-by-side BTP Extension? How it is different from standard ABAP? Where can we use SAP Build Apps with ERP? And more questions.
*** Blog Last Updated on 04/22/2025 ***
Our current ABAP customizations deliver but at a cost. Extensive modifications have led to complexity and inefficiency. While classic extensibility is powerful, it struggles to maintain a high-performing system with ongoing needs. This translates to high IT costs and hinders innovation. Our goal is to transform into an Intelligent Enterprise with a modern, digital ERP. This will reduce costs, boost agility, and unlock value from our data.
Let's understand the meaning behind the Clean + Core .
Clean... up-to-date, transparent, unmodified, consistent, efficient, and cloud compliant.
Core... the main aspects of an ERP system are extensibility, processes, data, integration, and operation.
The clean core is an extension methodology concept with the basic goal i. e. Extensions should not break an upgrade and upgrades should not break an extension. Follow the rules:
Some principles when building extensions to keep the core clean.
Here's a developer-friendly approach to a Clean Core strategy:
plan and adopt a clean core strategy for an SAP S/4HANA ERP transformation project?
Understood! Tell me the benefits of it:
Learn more, Get your organization in shape: Keep a Clean Core with SAP Business Technology Platform.
Now you have clarity clean core concept and benefits. Let's get into the main topic.
This new SAP S/4HANA Cloud extensibility model, first introduced in SAP S/4HANA Cloud public edition, is now available and recommended in all SAP S/4HANA editions, to achieve the following:
Let's understand the various new options/tools available to create stable extensions in the SAP S/4HANA ERP system by following the clean core principle, even when the classic extensibility model is still available for the on-premise, private editions and recommendations are NOT to adopt it.
SAP Fiori extensibility apps(tools) help you customize applications and their UIs, reports, email templates, and form templates using a low-code/no-code(LCNC) paradigm.. Using extensibility apps, you can create extensions without the need for extensive coding skills. Some development skills are recommended for developing custom business objects and adding business logic using the cloud ABAP web editor. Scenario
Extensibility tools empower key business users to make non-disruptive customizations to the system on their own, minimizing risk and allowing them to focus on adding business value and no deep technical knowledge required.
Use-cases
Benefits
User Personas Business expert, functional consultant, SME, or even IT resource Tools Extensibility Fiori Apps, Cloud ABAP web editor Clean Core Index High Learn More
The main argument for using key user extensibility is that simple extensions can be realized quicker than with developer extensibility because of the communication overhead between the business expert (responsible for the specification of the extension, and later for testing and approval) and the developer (responsible for development and developer test) is avoided.
Find other Key User Extensibility apps:
Key user Extensibility Pattern Architecture:
Key User Extensibility Tools
This option bridges the gap between the key user and side-by-side extensibility options.It enables you to develop custom ABAP code and partner extensions in an upgrade-stable, cloud-ready programming model using the ABAP Cloud development model. Scenario
Use-cases
Benefits
User Personas ABAP developer, Fiori (UI5) developer Tools Eclipse-based IDE (ABAP Development Tools)
SAP Business Application Studio (SAPUI5 Adaptation Project), VS Code Clean Core Index High Learn More
In contrast to side-by-side extensions, on-stack developer, and key user extensions are developed and run on the same software stack as the underlying SAP S/4HANA system. This allows extensions to direct access SAP S/4HANA logic and data via SAP extension points(BAdis), local public CDS views, SAP-released APIs, or SQL queries.
Developer Extensibility Pattern Architecture
ABAP for Cloud Development
Developer Adaptation Project
Adaptation projects are currently only supported on the S/4 HANA on-premise ABAP system or the Cloud Foundry environment, for the S/4HANA cloud it may be supported in the future, refer to the product roadmap for more details. SAP S/4HANA cloud extensibility explorer.
Extensions running on the separated (side-by-side) SAP Business Technology Platform (SAP BTP) for all other loosely coupled extension scenarios integrating with the extended SAP S/4HANA system. This model is the preferred option for developing loosely coupled but seamlessly integrated extensions to SAP S/4HANA data, transactions, or apps. Scenario
Use-cases
Benefit
User Personas ABAP developer, BTP full-stack developer, Citizen developer Tools
Clean Core Index Medium to High Learn More
Develop custom code side-by-side extension and SaaS solutions using ABAP RESTful Application Programming Model (RAP) and SAP Cloud Application Programming Model using Java, or Node.js. Use no-code/low-code applications like SAP Build Apps, Process Automation, and Build Workzone to build custom applications, process automation, and workflow management. One main difference compared to the on-stack extensibility model is that accessing business objects of SAP S/4HANA Cloud is only possible using remote APIs which are published in the SAP API Hub.
Side-by-side Extensibility Pattern Architecture
3.1 PRO-CODE
New ABAP programming model for efficiently building cloud-ready enterprise apps and upgrade-stable extensions on SAP BTP ABAP environment, SAP S/4HANA Cloud, SAP S/4HANA Cloud ABAP environment, and SAP S/4HANA 1909 and higher.
High-level RAP Programming Model
SAP Cloud Application Programming Model(CAP)
An open and opinionated framework of languages, libraries, and tools for building enterprise-grade services and applications. The CAP framework features a mix of broadly adopted open-source and SAP technologies
High-level CAP Programming Model
SAP CAP Vs RAP model, which one to choose? The choice of the programming language for your extension – ABAP, Java, or JavaScript is decisive.
Common | ABAP RAP Model | SAP CAP Model |
• RESTful OData services • Core data services (CDS) • Built-in extensibility capabilities, enabling users to extend both SAP Cloud Application Programming Model and ABAP RESTful application programming model in a similar way as with the key user (in-app) extensibility of SAP S/4HANA | • ABAP programming language • Git-enabled lifecycle management • Offers a service consumption model for easy remote OData service calls • Enables the possibility to reuse selected custom code in the cloud with SAP BTP, and ABAP environment, while rebuilding the UI and backend access • Eclipse IDE | • Supports Java or JavaScript (node.js) • Enables applications originally written as a single-tenant applications to be turned into multitenant ones through configuration • Leverages event-based communication using the SAP Event Mesh capability • Wraps the REST service calls to the underlying back-end system to Java or JavaScript functions using SAP Cloud SDK |
Evolution of SAP AppGyver is a professional application development solution designed for anyone to quickly create apps without code regardless of role or skill level.
Note: SAP Build Apps is still evolving and due to limitations on the availability of different hyper scalers, other low code and pro code solutions become equally important.
The three extensibility options are not isolated from each other. In many scenarios they are combined, for example, developing a side-by-side application in conjunction with a thin on-stack extensibility layer that offers more suitable remote APIs to access the SAP S/4HANA Cloud functionality.
This is the traditional way of the SAP ECC or S/4HANA on-prem enhancement for RICEFW ABAP custom object development like user-exits, customer-exits, classic BAdis, implicit/explicit enhancements, BTE, module-pool, etc using transaction code SE38, SE80, SE11 (SAP GUI, Eclipse ADT). Scenario Requirements that are critical for lifecycle management or business operations and NOT possible using 3 modern extensibility options(Key user, developer, or side-by-side) Use-cases
Benefit
User Personas ABAP developer Tools SAP GUI - Tcodes
Eclipse-based IDE (ABAP Development Tools) Clean Core Index Low Learn more
Basically using non-released objects from S/4HANA and an ABAP standard version (non-restricted). No restriction on the extension, it even allows you to modify the standard SAP code itself. Hence, upgrade effort increases and agility/innovation speed decreases.
Classic Extensibility Pattern Architecture
In SAP S/4HANA On-Premise –The classical extensibility option is available but not recommended .
Key user, developer, and side-by-side extensibility are available for public and on-premise editions while the classic extensibility model is available only for an on-premise edition.
Refer official guide Chapter 5: EXTENDING A NEW SAP S/4HANA CLOUD PRIVATE EDITION OR SAP S/4HANA ON-PREMISE SYSTEM
3-tier extensibility model
How to
Learn more: ABAP Testing and Analysis
The Clean Core Dashboard is a tool for monitoring the clean core compliance of your productive SAP S/4HANA Cloud Private Edition systems. Launched in August 2023 through the SAP for Me portal (Systems & Provisioning), it provides insights into how closely your system adheres to clean core principles. This dashboard is continually evolving, with new KPIs planned for future updates.
Important Note: Access to the Clean Core Dashboard is restricted to:
Refer official guide: ABAP Cloud - Technical Use Cases and Recommended Technologies
Classic RICEFW | Modern Technology/Extensibility |
Reports | •SAP Fiori Analytical Apps •SAP Custom Fiori Apps •Decoupled from the core on BTP using released APIs, Integration Suite •SAP Analytics Cloud |
Interfaces | • Extension of standard OData services or creation of new ones based on custom core data services (CDS) views with SAP S/4HANA key user (in-app) extensibility • SAP Integration Suite • SAP Application Interface Framework tool (part of SAP S/4HANA) • Event brokering using SAP Event Mesh |
Enhancements | •Custom business logic with SAP S/4HANA in-app extensibility and Developer Extensibility •BTP Cloud Foundry Runtime, Event Mesh - Business Events / Workflow |
Custom Tables | •Custom business objects with generated UI with SAP S/4HANA in-app extensibility and Embedded ABAP |
Modifications | •Key user (in-app) extensibility in SAP S/4HANA covers a wide range of business requirements for UI adaptation and business logic. •On-stack Developer Extensibility •Developer Adaptation Project |
Conversions | • SAP S/4HANA migration cockpit to load data |
Forms | • SAP S/4HANA output management: custom forms with Adobe LiveCycle Designer with OData as a data source • Forms as Service on BTP |
Workflows | •SAP S/4HANA flexible workflow •SAP Build Apps. |
User Interface | •SAP Mobile Services, SAP Build Work zone. •SAP Fiori, UI5 |
Data-Marts | • Embedded BW with CDS views, Table Functions, and AMDP or SAP Datasphere, BW/4HANA, HANA cloud |
Machine Learning | •Embedded ML based on SAP Analytics cloud. •Side-by-Side ML is used for Complex ML scenarios based on the SAP BTP (Data Intelligence, SAP HANA PAL, AI Business Services, AI Core). •Intelligent Scenario Lifecycle Management (ISLM) scenarios in SAP S/4HANA |
Refer official guide Chapter 3: WHEN TO USE WHICH CLOUD EXTENSIBILITY OPTION
Requirements | Key-User | Developer | Classic | Side-by-side |
End-Users and User Experience (UX): | ||||
External users (B2B / B2C, Fiori, non-Fiori) for service orders, master data self-services etc. | X | |||
Multi-Channel (mobile) and Mobile native capabilities | X | |||
Allow collaboration with business partners and internal employees who don't have full access to the SAP system. | X | |||
Involve employees (B2E) without access to the business solution | X | |||
SaaS solution integrates SAP and third-party on-premise, cloud, and hybrid products | X | |||
Adapt existing UIs based on the SAP Fiori UX | X | |||
Modernize existing UIs or redesign them for a better user experience. | X | |||
Open-source components and freestyle UI (non-SAPUI5/SAP Fiori) | X | |||
Business Processes: | ||||
Extend standard functionalities with focus on SAP S/4HANA data. | X | *X | ||
Develop separate applications with occasional data exchange with SAP S/4HANA. | X | *X | X | |
Extensions that store custom data in the same logical unit of work as the extended SAP S/4HANA app | X | |||
Strong consistency with SAP transactions (e.g., updates in the same logical unit of work). | X | X | *X | |
Tightly coupled and highly complex extensions directly interwoven with SAP code. | *X | |||
Non-released BAdis, classic user exits business-critical logic | *X | |||
Is a hub scenario (i.e., integrates with SAP and Non-SAP solutions and services) | X | |||
Application with unpredictable or largely varying usage and resource consumption (scalability and elasticity) | X | |||
Data and Analytics: | ||||
Analytical Key User Use Cases | X | |||
Analytical application consuming standard and custom data residing in SAP S/4HANA | X | X | ||
Consolidate data from various sources (SAP and external systems) for analysis. | X | |||
Emerging Technologies, e.g. AI,ML, also from other Hyperscalers | X | |||
Features: | ||||
Agility and independence on the back-end lifecycle | X | |||
Reactive (event-based) process extensions and custom workflows | X | |||
Use of SAP and third-party cloud services | X | |||
Application with unpredictable or largely varying usage and resource consumption (scalability and elasticity) | X | |||
Non-ABAP, Other Skillset (Benefits from a broad spectrum of developers with different skill sets ) | X | |||
Can or should be decoupled (loosely coupled) from SAP S/4HANA core | X | |||
Is a hub scenario (integrates with SAP and Non-SAP solutions and services) | X |
The clean core is a journey to be agile, reliable, and more efficient. You can not just switch it on overnight. 😉
Questions?, Please use the blog comment feature or reach out to me on Linkedin.
FAQs:
1.If I create a custom Z table and CDS view, will I be adhering to the clean core principle?
Yes. Creating custom objects (like Z tables and CDS views) within ABAP Cloud is compliant with the clean core principle. The core goal of clean core is to avoid modifying standard ERP objects and to only extend released objects.
2.Are user exits, customer exits, implicit enhancements, and explicit enhancements considered clean core?
No. Instead of using these classic enhancement techniques, you should implement SAP-released BAdIs for extensions within the ABAP Cloud released version.
3.Is SAP S/4HANA Public Cloud, by default, a clean core system?
Yes. S/4HANA Public Cloud inherently follows the clean core principle. It does not offer classic extensibility options. Instead, it provides key-user extensibility and side-by-side extensibility.
4.How can I find SAP-released BAdIs and other released objects?
You can find them in the Cloudification repository: https://sap.github.io/abap-atc-cr-cv-s4hc/?objectTypes=BADI_DEF . Alternatively, log in to your Public Cloud ERP system's ADT repository and navigate to "Released Objects" to see a list of all released objects.
5.Should standalone custom applications be built using side-by-side extensibility rather than the clean core stack?
It depends on the use case. If the application utilizes on-stack data, you can define the logic within the core system and use Fiori for the UX. This avoids unnecessary calls. If the execution logic or transactions reside within S/4HANA, the extension should stay within S/4HANA. Side-by-side extensibility is more appropriate for scenarios like reporting, integration with external systems, updating few fields via external users, or retrieving data from multiple loosely coupled ERP systems.
References:
Credits: This blog has been put together by combining the incredible efforts, suggestions, and feedback from the ABAP platform PM team (Olga Dolinskaja), CoE expert (Subit Benny), and Solution advisory expert (Ruhi Naaz Quadari) when deciding on the extensibility of S/4HANA using the Clean Core concepts.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
31 | |
8 | |
4 | |
4 | |
3 | |
3 | |
3 | |
2 | |
2 | |
2 |