Technical Articles
SAP S/4HANA Extensibility Options For Clean Core Journey
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.
Motivation
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 is also providing 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)? 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.
Contents
- Current customer situation
- Challenges with the classic extensibility model
- What are the extensions?
- Why does SAP S/4HANA need extensibility?
- What and why about the clean core concept?
- What is the new extensibility model?
- SAP S/4HANA Extensibility Options
- 3-tier extensibility model for SAP S/4HANA On-premise and PCE editions
- How to handle Classic Custom Code Migration?
- Decision Matrix for Extensibility Options
Current customer situation
Our business is doing fine with the classic ABAP extensions. We have spent a huge amount of effort in building the custom processes as per the business demands. Our system has become complex over time due to customizations and enhancements. Classic extensibility is extremely powerful and flexible to meet every single requirement of the business and keep them happy regardless of the system that has become over time inefficacious and substandard performance. We are facing challenges in terms of high maintenance IT cost and lack of innovation. Our goal is to become Intelligent Enterprise with digital ERP transformation. Reduce the costs, modernize to keep up with the competition, and bring value from our operational data.
Challenges with the classic extensibility model
- High TCO for system maintenance and software upgrades.
- Extensive planning and testing. Making sure the upgrade does not break the system.
- Software changes lead to high adoption efforts.
- SAP Standard code and Customization are not clearly separated, there is no interface.
- Classic extensibility adds complexity to the SAP Core and averts from adoption of agile practices and standardized business processes.
- Redundant data and unused custom code living within the core ERP system.
- Example: You have used an SAP object that is not whitelisted by SAP in your extension. After an upgrade, the used SAP object has been changed or deleted. Now you will have to adjust the extension thus upgrade is delayed and the speed of innovation is decreased.
- The slow rate of innovation as the system was modified via standard and custom codes.
- Limitations and struggle to reach the fast-changing business needs to compete and lead.
What are the extensions?
- Software engineering principle for enhancements without impairing existing system functions.
- It can be the addition of new functionality or modification of existing functionality.
- Measure the ability to extend and the effort required to implement an extension.
Why does SAP S/4HANA ERP need extensibility?
- Extend business process for optimization, innovation, or automation
- Extend the UX of existing processes and provide controlled access for external user groups
- Extend data insights & analytics by combining data in one central place
- Extend the ecosystem with side-by-side Software as a Service (SaaS) apps
ERP Extensibility
What and why about the clean core concept?
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, and integration.
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:
- Fit-to-Standard: Leverage SAP standard processes when possible.
- Apply a zero-modification policy from the project’s first day.
- Leverage the full potential of new extension options (In-App, Developer, or Side-by-Side ) which fit your needs best.Use whitelisted and released APIs.
-
Eliminate enhancements that are redundant to standard code and functionality, as well as “clones” of standard code.
-
Think and act like moving SAP S/4HANA on-Premise to SAP S/4HANA Cloud byusing capabilities of SAP BTP Extension & Integration Suites for application development and integration.
Some principles when building extensions to keep the core clean.
How to plan and adopt a clean core strategy for an SAP S/4HANA ERP transformation project?
- Greenfield project: Start with the stay clean strategy to bring system the system closer to standard processes, and keep the system up-to-date, including modern extensibility and integration options as well as data governance.
- Brownfield project: Start with the get and keep clean strategy to bring system the system closer to standard processes, including the transformation from traditional custom code to modern extensibility, integration capabilities, and duplicate data cleansing.
Understood! Tell me the benefits of it:
-
Reduce TCO (Time, Effort & Cost)
-
Faster deployment and Ready for a smooth upgrade.
-
Reduce test efforts for business users and Adoption efforts for developers.
-
IT service providers can offer upgrade projects at a fixed price.
-
No costly maintenance for unused artifacts and data.
-
-
Innovation at Market Speed.
-
Captivate innovation delivered by SAP.
-
React fast to changing business requirements.
-
- Data to value.
- Consistent data allows for reliable forecasting and predictions for confident decisions.
-
Become cloud-ready and Competitive at any point in time.
-
Moving SAP S/4HANA on-Premise to SAP S/4HANA Cloud.
-
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.
What is the new extensibility model?
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:
- Smoother upgrades.
- Little to no testing efforts.
- Simplified adoption and LOBs drive innovation timelines.
- Standardized and optimized business processes.
- Pave the way to the cloud.
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 S/4HANA Extensibility Model Options
SAP S/4HANA New Extensibility Model Options
The new extensibility model in SAP S/4HANA can be divided into three parts:
- Key User Extensibility in the SAP S/4HANA Core
- Developer Extensibility in the SAP S/4HANA Stack
- Side-By-Side Extensibility on the SAP Business Technology Platform
1. Key User (In-app) Extensibility
SAP Fiori extensibility apps(tools) help you to customize user interfaces, processes, email templates, or forms using a low-code/no-code(LCNC) paradigm. It empowers business experts or citizen developers (typically a user from the business department) to add extensions to SAP solutions without the need to dive deeply into the implementation details. They typically have deep knowledge of business processes and configuration with no or only limited coding or debugging skills. Some development skills are recommended for developing custom business objects and adding business logic using the cloud ABAP web editor.
Scenario | Simple low-code/no-code tool features for the S/4HANA extension |
Use-cases |
|
Benefits |
|
User Personas | Business expert, implementation consultant, citizen developer, key user |
Tools | Extensibility Fiori Apps, 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:
- Go to the SAP Fiori apps reference library
- Search for the title of the app you want to configure
- Choose your product (S/HANA Cloud or S/4HANA)
- Change to the tab Implementation
Key user Extensibility Pattern Architecture
Key User Extensibility Tools
2. On-stack Developer Extensibility
This option bridges the gap between the key user and side-by-side extensibility options. On-stack developer extensibility enables you to develop custom ABAP code, and partner extension developments requiring coupling with SAP S/4HANA data, transactions, or apps using a restricted ABAP version. The requirements of the extension project go beyond the scope of key user extensions.
Scenario |
Custom ABAP development projects that need tight coupling to SAP S/4HANA data, transactions, or apps that require full access to development capabilities like debugging, refactoring support, version control, etc.
|
Use-cases |
|
Benefits |
|
User Personas | ABAP developer, Fiori (UI5) developer |
Tools | Eclipse-based IDE (ABAP Development Tools) SAP Business Application Studio (SAPUI5 Adaptation Project) |
Clean Core Index | High |
Learn More |
- Eclipse-based IDE (ABAP Development Tools) with a debugger, troubleshooting, and testing tool support
- A cloud-optimized subset of ABAP language i.e. ABAP Cloud syntax.
- ABAP RESTful Application Programming model (RAP) to build upgrade-safe extensions inside your core ERP system.
- Only use released APIs and the stricter syntax check of ABAP Cloud. (Note that to fully utilize this you need to be on a recent version of S/4HANA >= 2022 though it’s still possible to follow this system with older releases.)
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
- Switch from classic ABAP extensibility (standard ABAP) to ABAP for cloud development for a development object or package
- Inspect the “Release state” for used APIs and objects
- The ABAP cloud development model ensures that only released local APIs of the underlying ABAP Platform can be used.
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.
3. Side-by-side Extensibility
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 |
Loosely-coupled extensions, process automation, and applications, such as partner SaaS solutions or custom applications targeting a different end-user group.
|
Use-cases |
|
Benefit |
|
User Personas | ABAP developer, BTP full-stack developer, Citizen developer |
Tools |
PRO-CODE:
– Eclipse-based IDE (ABAP Development Tools)
– SAP Business Application Studio
LOW-CODE:
-SAP Build Apps
-SAP Build Process Automation
-SAP Build Work Zone
|
Clean Core Index | Medium |
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
ABAP RESTful Application Programming Model (RAP)
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.
- RAP is a powerful framework consisting of a set of concepts, tools, and languages.
- A strategic long-term solution for the ABAP developments.
- Help developers to build innovative, cloud-ready, enterprise applications of different domains, such as transactional and analytical applications.
- RAP offers a standardized development flow based on Core Data Services (CDS), the ABAP language, and business services in the modern, Eclipse-based ABAP Development Tools (ADT).
- RAP is available on
- SAP BTP ABAP Environment (Steampunk), provides the ABAP platform as a service (PaaS) on SAP BTP. ABAP-minded customers and partners can reuse their ABAP skillset to build new cloud solutions, or to transform already existing on-premise ABAP assets to the cloud.
- SAP S/4HANA ABAP Environment (Embedded Steampunk)
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
- CDS is the backbone of the SAP Cloud Application Programming Model (CAP) to build data models, defining the UI layer with those definitions (annotations) and service definitions on a conceptual level.
- CAP-based projects benefit from a primary focus on the domain rather than delving into overly technical disciplines.
- SAP programming model is compatible with any development environment, but recommend using the SAP Business Application Studio.
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 |
3.2 LOW-CODE
SAP Build Apps
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.
- Build Full-Stack Enterprise-Apps in Minutes – Absolutely Zero Coding Required
- Drag-and-drop the user interface and Create any logic without code.
- With SAP Build Apps everyone can become a full-stack cloud developer.
- Easily add your own data integrations or get started with some of ours.
- Users can design both mobile and web applications with a pixel-perfect design using the drag-and-drop functionality and a rich component library.
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.
SAP Build Process Automation
- Users can create forms, manage decision logic, and build, adapt, and organize process flows with drag-and-drop simplicity.
- Automate repetitive manual tasks – such as copy-and-paste operations, data extraction, data entry, and data creation – using no-code and low-code capabilities or the built-in automation recorder.
- Built-in AI capabilities enable intelligent document processing –like extracting data from structured or unstructured documents to transfer it to your enterprise systems for processing – without needing data scientist support.
- Simplifies process and task automation so business users can unleash their process expertise without writing code.
- Adapt, improve, and innovate business processes with no-code workflow management and robotic process automation capabilities.
SAP Build Work Zone
- Users can create beautiful, custom business sites for themselves, colleagues, suppliers, customers, partners, etc., without writing any code.
- Business sites created with SAP Build Work Zone provide central access to relevant applications, processes, and information.
- Maximize productivity by enabling guided experiences and knowledge sharing.
4. Classic Extensibility (Not available in SAP S/4HANA public edition)
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 S/4HANA On-Premise –The classical extensibility option is available but not recommended.
Available extensibility options for SAP S/4HANA editions
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.

3-tier extensibility model for SAP S/4HANA On-premise and PCE editions
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 handle Classic Custom Code migration?
- Analyze the classic ABAP custom code with the Custom Code Migration App to estimate the impact. Custom Code Analysis for SAP S/4HANA with SAP Fiori App Custom Code Migration
- Detect and Retire unused classic ABAP custom code. In the analysis, it is found that roughly 60% (sometimes even more) of the code is not used productively in a typical ERP system. Removing obsolete code significantly reduces the effort for custom code adaptation. At the same time, this is certainly a first step toward a clean digital core.
Learn more: ABAP Testing and Analysis
ABAP Cloud Use Cases – Overview and Recommendations
Refer official guide: ABAP Cloud – Technical Use Cases and Recommended Technologies
Classic RICEFW Vs Modern Extensibility With BTP
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 |
Decision Matrix for Extensibility Options
Refer official guide Chapter 3: WHEN TO USE WHICH CLOUD EXTENSIBILITY OPTION
Requirements | Key User Extension | On-Stack Extension | Classic Extension | Side-by-side Extension | |
Users & UX | Involve consumers of the corporate products and services (B2C) (for example, service orders, master data self-services, catalogs, Webshops, mobile access) | X | |||
Involve business partners (B2B) to enable direct collaboration (for example, order review and approval, service or good receipt, quality control, and delivery checkpoints). Purchase order approval workflow.
|
X | ||||
Involve employees (B2E) who otherwise have no access to the business solution (for example, outsourced workers, leased workers, mobile workers) | X | ||||
SaaS solution, that integrates it to SAP and third-party on-premise, cloud, and hybrid products based on standard and custom APIs. | X | ||||
Adapt existing UIs based on the SAP Fiori UX – Add, hide, move, or regroup fields on the screen, add custom fields, and change label texts. | X | ||||
Improve UX by redesigning the UI for existing applications (for example, simplifying data-entry screens, dropping screens that are not required, auto-filling fields, and enabling speech-to-text, translation, and localization functionality) | X | ||||
Open-source components and freestyle UI (non-SAPUI5/SAP Fiori) | X | ||||
Mobile native capabilities (for example, access to the microphone, camera, GEO location, and so on) | X | ||||
Data / Process | An extension to a standard business process or an application with an extensive use of data in SAP S/4HANA |
X | *X | ||
Stand-alone application based on own data model with occasional consumption of standard data in SAP S/4HANA |
X | X | |||
Extensions that store custom data in the same logical unit of work as the extended SAP S/4HANA app | X | ||||
Analytical Key User Use Cases | X | ||||
Analytical application consuming standard and custom data residing in SAP S/4HANA | X | ||||
Analytical application consuming data distributed across multiple SAP and third-party systems (for example, data lake) | X | ||||
Transactional data consistency – Custom data changed in a single database transaction with core data in the back end | X | X | *X | ||
Non-released BAdis, classic user exits business-critical logic or Anything that is not possible to accomplish using modern extensibility options for must-have type business application requirements in the ERP core. | *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 (for example, machine learning solutions from SAP, SAP Localization Hub services, tax services, Google Maps, and so on) | X | ||||
Application with unpredictable or largely varying usage and resource consumption (scalability and elasticity) | X |
*X – Not applicable for S/4HANA Public Cloud
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.
Summary
- SAP S/4HANA provides a new extensibility model that clearly separates standard and custom developments.
- The classic extensibility option is not available for SAP S/4HANA public edition.
- A clean core strategy is important for customers to consider while extending an ERP application and be ready to consume product updates and innovations.
- Key-user extension is a great tool for business users without the need for IT support.
- Side-by-Side is an extensibility model that provides freedom to choose ABAP, Java, Node.js, etc., and build a full-stack application that will run in parallel with core ERP processes.
- An embedded ABAP environment offers values for both greenfield and brownfield projects.
- Retire unused code, Custom code migration and developments with modern cloud ABAP is a go-forward strategy to become cloud competent, modularized, and agile for business needs.
References:
- SAP Business Technology Platform ABAP Environment – Solution Overview
- Extend SAP S/4HANA in the cloud and on premise with ABAP based extensions
- Developing on ABAP Platform – Extensibility
- SAP Extensibility Explorer for SAP S/4HANA Cloud
- Custom Extensions in SAP S/4HANA Implementations – A Practical Guide for Senior IT Leadership
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.
Great blog Jeetendra Kapase
Hi Jeetendra Kapase - It is excellent blog. I have some clarifications. Is the ABAP cloud programming in the on-stack approach and side by side same? You mentioned they are different. But what we know is there are two versions of ABAP. One is classical version and another ABAP cloud. Then how they differ? Another question is, the difference between on-stack and classical is that classical ABAP doesn't use RAP model. Is that true?
Thank you Abraham. Please find the below response.
Is the ABAP cloud programming in the on-stack approach and side by side same?
Yes, it's an ABAP for cloud development,on-stack is ABAP Environment( embedded steampunk) while side-by-side is BTP ABAP environment (steampunk). Side-by-side developments can also be performed using non-ABAP languages or run-time, like JAVA, Node.js using the CAP programming model on BTP
One is classical version and another ABAP cloud. Then how they differ?
ABAP Cloud is a cloud-optimized language to build cloud-ready business apps, services, and extensions. The development environment is Eclipse with ADT (NO SAP GUIs, TCODEs). It does not allow SELECT on standard table e.g. MARA, instead use CDS view I_Product, CALL FUNCTION is not allowed. only released public/local APIs. Modifications of SAP object not allowed e.g. Includes with USEREXIT* forms. Instead, use released BADIs and implement them. ABAP RAP programming model which is cloud-ready development syntax.
While classic/Standard is the traditional way - SAP GUI with SE38, SE11, SE80, User exits, modifications...
the difference between on-stack and classical is that classical ABAP doesn't use RAP model. Is that true?
Yes, to use RAP with ABAP cloud switch ABAP language version as ABAP for Cloud Development in Eclipse ADT. Classical means standard ABAP syntax.
Refer for more details on ABAP Cloud RAP: https://community.sap.com/topics/abap/rap
Very nice Blog!
what a brilliant blog Jeetendra Kapase
Very comprehensive blog. Thank for taking the time and effort to write. I will be sharing it with my customers whenever I have an extensibility related conversation with them.
Really a nice summary blog about sap extension, thanks for your effort.
Jeetendra, great blog and summary from references for "SAP S/4HANA Extensibility Options for Clean Core", thank you!
Nice blog Jeetendra!
I attended BTP Customer Success Day in Prague last week. One of my favorite SAP senior expert "Juergen Mahler", after his fantastic break out session "keep the core clean", mentioned that there will be an official statement/blog/clarity from SAP directly, soon, as this statement is often (mis)/(partially)interpreted by most of the teams.
Your blog also helps in this direction!
Woah! What an awesome blog post. Use cases, decision matrix, detailed information and all! Very well written (+formatted :P) and highly appreciated! 🙂
Thank you, Jeetendra!! I've been looking for a summary of this information and found bits and pieces all over, but this is the most comprehensive write-up and reference I've seen in one place. Very much appreciate the time and effort it took to do this.
Thank you for this highly comprehensive and detailed blog post, it's very helpful !
For further details please refer to section 4.5 Business Configuration (BC)
Really nice blog!
That's very nice blog! 🙂
When I started my ABAP career, there were just couple of options to enhance standard SAP logic: User-Exits and BADIs. One of the first rules that I learnt in my career was not to copy/clone/edit standard code.
User-Exits/BADIs and Standard Code modifications were 2 very distinct types of development and hence, I couldn't understand why you have clubbed them both under the "Classic Extensibility" umbrella.
Standard code modifications and cloning have been considered a bad practices at every client I had worked with and is not a new knowledge.
After a few years in my career, SAP introduced the concept of Enhancement-Points and Enhancement-Sections. Enhancement-Points allowed to add new custom logic, without modifying the standard code and Enhancement-Sections allowed to replace some of the standard logic. Again, Enhancement-Sections were considered a bad practice since it replaced standard logic. Enhancement-Points also were scrutinized during code-review since it could alter the flow of the standard logic. Implicit Enhancement-Points were scrutinized even-more further during the review sessions.
All this while, there was a concept of registering the standard SAP program to receive a license key, to allow the customers to modify the standard code. There were limited team members in the organization who had access to register the object and receive the keys. Hence, there was some control/approval on modifying standard objects. When S/4HANA came along, SAP removed the need for registering the objects. This gave developers even more power to alter standard code. I have seen customers, who didn't even bother to do the most simple tasks from then on. [e.g. modify standard VOFM routines, instead of creating a new one]
Now, reading on the blogs about clean-core, SAP seems to be saying customers have messed up their SAP systems with many customizations, that an upgrade can break them all. Hence, upgrades are now costly.
No doubt about it. But, I feel, SAP should take a little bit of blame in this situation too.
Classic extensibility includes everything we do with SAP GUI, Tcodes - SE80, SE24, SE38, SE11, etc - User exits, BAdis, VOFM routines, Modifications, etc.
The new extensibility model also includes BAdis however those are released and upgrade stable. If the customer finds a BAdi which is not been released, it is still a good choice to use and in the future replace it with the released one.
With Predefined User-exits code hooks are stable and usually do not lead to issues during upgrades. In the future, as per the current plan, this will get replaced with BAdi.
With a clean core, SAP is setting up a clear path and how to standardize the ERP extension process and how to extend ERP with a clear separation between standard code and custom code using modern extensibility options. This is beneficial for the customer if they adopt in the right manner to get SAP innovation at speed and lower TCO.
In the cloud era change is constant and SAP wants customers to get the advantage with the release updates - process simplification, optimization, and better user experience. with new extensibility, SAP is providing freedom to go beyond ABAP with side-by-side extensibility using Java, node.js, etc. to build full-stack applications which will run in parallel with ERP which was challenging with the classic extension options.
I can assure you that we (SAP) are always available to be with the customer and make them successful.
This is an awesome summary. Thank you Jeetendra Kapase .
Excellent Blog and Guidance
Great blog and I will use it with my customers. Thank you Jeetendra Kapase
Brilliant blog! I respect the time spent to make all of this information available in one place. Even for big corporations, achieving just this can be daunting as the relevant information is not necessarily available in one place, despite having large teams with skilled people. This blog is extremely helpful even if the organization has already built a strategy around Extensibility and wants to be sure that it is correct as well as current. Thanks a lot, Jeetendra Kapase.
Hi Jeetendra,
Thanks for this wonderful blog and guidance. It is very helpful as it gives Complete information in one blog with all the required links.
One question though where clarification is needed -
It is understood that Developer extensibility is only available in a 3-system S/4 Public landscape.
So in 2 Tier S/4 public Landscape, Side by Side extensibility will still work and it will provide us Eclipse-based IDE (ABAP Development Tools) and SAP Business Application Studio tools?
Thanks!
Yes, Navneet.
3-tier or 2-tier landscape: Side-by-side extensibility can be achieved with BTP ABAP environment (Eclipse IDE), Node.js, and Java(SAP Business Application Studio IDE ).
I can only echo others and say - Great blog!
Extensibility and moving towards a clean core is really THE KEY CHALLENGE for every SAP customer that has developed custom code. This blog goes a long way into explaining the best practice and when to use them - so top marks for that.
I think what we are missing now is really some good guides on how to clean up the classical situations. I plan to blog around this myself.
Thanks for a really interesting read.
//Julian
That's a great idea. I also recommend reviewing the official technical document, this covers a topic based on the usecase
https://www.sap.com/documents/2023/05/74fc05e6-747e-0010-bca6-c68f7e60039b.html
This is a very good guide on APAB Cloud extensibility, indeed.
I am part of a team working on a new and broader SAP BTP Extensibility Guide for S/4HANA that will be published later this year, covering all of the topics mentioned in this excellent blog post.
Thanks Jeetendra for the link, I shall put some study time into that!
Great blog - thanks Jeetendra. I have one question though. Why do you rate Side-by-Side extensibility only "Medium" from a Clean core perspective compared to On-Stack as "High"?
Hi David,
Great question. Even I put my thought process and experience before the clean core rating as Medium (Side-by-side extensibility) vs High(On-stack extensibility).
On-stack is rated High as extension capability is available on the same system/stack using locally released objects (CDS views, BAdis, etc.) There is no dependency on the side-by-side system integration or testing check post-core system update (one system upgrade).
While Side-by-side is rated Medium as the extension is not implemented on the same stack/system, however, you still need to make sure only released APIs are consumed to build custom apps on the side-by-side system ( BTP ABAP, BAS with HANA Cloud, etc.). There is dependency on the side-by-side system integration or testing check post-core system update (possible two system upgrades - Core and Side-by-side separately). It's recommended to have core process extensions on the same stack while applications for external SaaS access, BTP services integration, Advance analytics, etc. with a side-by-side approach. Again there is a very thin line in the ratings however there is communication between two separate systems (S4 + side-by-side) and an upgrade can be done for either system.
Thanks,
Jeet
Great blog post, very well done Jeetendra Kapase!
I'm working in the SAP Build product team, and I am involved in a project with many stakeholders to publish an SAP BTP Extensibility Guide for S/4HANA. We are covering all of the topics you mentioned here, also in relation with SAP internal Golden Path.
To give examples on how SAP BTP is complementing SAP S/4HANA, we have summarized a few use cases with SAP Build Process Automation extending S/4HANA in Finance that you can discover in this ebook: "Automate Finance Processes to Optimize Organizational Workflows and Increase Business Efficiency".
Readers will learn how SAP Build Process Automation empowers finance professionals to automate repetitive manual tasks within SAP S/4HANA and discover how to jumpstart their automation journey with our pre-built content and connectors.
Thank you Pierre COL for commenting and sharing the article links in the SAP Build area. Much appreciated!