Technical Articles
SAP S/4HANA Extensibility: A Learning Journey
In this blog post, I want to make proposal for a learning journey with reference to learning material and links.
This blog post was completely rewritten on October 2022 to reflect the release of the developer extensibility (“SAP S/4HANA Cloud Environment”, or “Embedded Steampunk”). In June 2023 I added the aspects of “ABAP Cloud”.
As a small disclaimer, I want to point out, that this blog post focused on the ABAP-based extensibility options. This is because ABAP is in my comfort zone, and I want to leave the topics of the other extensibility options on SAP BTP to the experts in this domain.
This blog post is organized in 6 sections
- Get an Overview on The Extensibility Concept
- Key User Extensibility
- Developer Extensibility (aka SAP S/4HANA Cloud Environment or “Embedded Steampunk”)
- Classic Extensibility
- SAP BTP ABAP Environment (aka “Steampunk”)
- SAP BTP: Other Environments
Please note that this is collection of links to specific documents and resources. Please do not ask questions in the comments section of this document but refer to the specific documents or the community and ask your questions on specific extension tasks and tools there!
1. Get an Overview on The Extensibility Concept
As a first step, get a basic understanding of the extensibility concept for SAP S/4HANA. The basic buildings blocks of the extensibility concept are:
- “On-stack” extensibility using
- key user extensibility tools
- developer extensibility (aka SAP S/4HANA Cloud Environment or “Embedded Steampunk”, introduced with SAP S/4HANA Cloud 2208 and SAP S/4HANA 2022)
- classical extensibility (aka classic ABAP custom development)
- Side-by-side extensibility with SAP BTP using
- SAP BTP ABAP Environment
- SAP BTP: other environments and services, such as Java or Node.JS, powered by the SAP Extension SDK, …
- ABAP Cloud is the ABAP development model to build cloud-ready business apps, services, and extensions. It covers developer and key user extensibility with SAP BTP and SAP S/4HANA and works with public cloud, private cloud, and on-premise.
To understand the extensibility concept, I recommend:
- Read the whitepaper Custom Extensions in SAP S/4HANA Implementations – A Practical Guide for Senior IT Leadership (2021)
- Read the ABAP-focussed white paper Extend SAP S/4HANA in the cloud and on premise with ABAP based extensions (Updates 2023)
To understand ABAP Cloud, read the blogs of my colleagues, namely ABAP Cloud and ABAP Cloud – What Does It Comprise? for a starting point.
The whitepapers include also the recommendation when to use which extensibility option.
The SAP Application Extension Methodology provides methodology for assessing customer extension use cases and defining an extension target solution in a structured and formalized way. It provides a structured, technology-agnostic approach for customers and partners to define an organization-specific extension strategy. It covers challenges like ‘clean core’, ‘cloud readiness’, and ‘future proof’.
2. Key User Extensibility
The key user extensibility tools are a major pillar of the extensibility concept of SAP S/4HANA. They are designed for the cloud, but also made available in the on-premise / private cloud edition.
Key User Extensibility is available
- in SAP S/4HANA Cloud, public edition
- in SAP S/4HANA (on-premise) and SAP S/4HANA Cloud, private edition and extended edition
- (Note: for short, I will write SAP S/4HANA OP/PCE for SAP S/4HANA (on-premise) and SAP S/4HANA Cloud, private edition)
2.1 Get an Overview
In my blogs I introduce the key user extensibility tools:
- The Key User Extensibility Tools of S/4 HANA
- Extensibility – ABAP Platform
- S/4HANA Extensibility: Use Case Overview
- SCN S/4HANA Extensibility: Scenario Diagrams
- S/4HANA Extensibility Concept Details: Restricted ABAP
2.2 Teasing Videos
Laying back for a moment, you might enjoy some videos to get a visual impression on extensibility look and feel:
- Video: Journey of Managing Sales Orders in SAP Fiori: #4 Key User Adaptation
- Video: Journey of Managing Sales Orders in SAP Fiori: #5 Extensibility and Custom Fields
- Video: Extending Fixed Assets Master Data in SAP S/4HANA Cloud
- Video: Creating Custom Fields
- Video: Custom Business Objects (Creating Custom Applications, Implementing Business Logic)
2.3 Getting It All Together in a Textbook or in a Training
Schneider, Thomas; Wolf, Werner: Erweiterungen für SAP S/4HANA (in German) SAP PRESS 2018. (in German): https://www.rheinwerk-verlag.de/erweiterungen-fur-sap-s4hana_4613/
Extending SAP S/4HANA Cloud and SAP S/4HANA: https://open.sap.com/courses/s4h7/
Key Technical Topics in a System Conversion to SAP S/4HANA https://open.sap.com/courses/s4h14 -> Week 3, Units 3, 5, and 6
2.4 Documentation
Before you start developing, it might be helpful to have a look into the documentation (Note: Language and Version of the documentation can be selected in the right upper corner of the screen.):
Key User Extensibility Tools in SAP S/4HANA Cloud, public cloud edition
https://help.sap.com/viewer/p/SAP_S4HANA_CLOUD -> Product Assistance -> English -> Extend and Integrate Your SAP S/4HANA Cloud -> Extensibility -> Key User Extensibility
Key User Extensibility Tools in SAP S/4HANA (OP/PCE): https://help.sap.com/viewer/p/SAP_S4HANA_ON-PREMISE -> Product Assistance -> English -> Enterprise Technology -> ABAP Platform (or SAP Netweaver in older releases) -> Developing on the ABAP Platform -> Development Concepts and Tools -> Extensibility -> Key User Extensibility
UI Adaptation Tools for Key Users:
Adapting SAP Fiori UIs at Runtime – Key User Adaptation – SAP Help Portal
Fiori Extensibility Documentation: Extensibility – SAP Library
In the Fiori Appl Library ( Fiori Apps Library ) you can find the information on the extensibility for Fiori apps. Open the App Details for a Fiori app, and go to section Implementation Information, Extensibility.
2.5 Get Your Fingers Dirty: Tutorials, Best Practices, How-Tos
Now, you want to create some in-app extensions.
Sample Scenarios: The SAP Extensibility Explorer for SAP S/4HANA Cloud shows many real-life sample scenarios (for in-app extensibility and for side-by-side extensibility) written by application experts.
Tutorials:
- Create Custom Business Objects in S/4HANA Cloud:
https://developers.sap.com/group.abap-extensibiliy-cbo-cce-ccl.html - Create a Custom UI for SAP S/4HANA Cloud
Create a Custom UI for SAP S/4HANA Cloud | Tutorials for SAP Developers - Extend Custom Business Object with Business Rules in S/4HANA Cloud
https://developers.sap.com/group.abap-extensibiliy-rules-extend.html
Additional tutorials, tutorial-like blogs, and microlearnings, some of which I want to mention here:
- Create Custom Business Objects in S/4HANA Cloud
- SAP S/4HANA Cloud Extensibility: a series of tutorial by Rohit Khan: link1, link2, link3
- Adding Field in standard Fiori apps of S/4HANA with Custom Fields and Logic, Adding Field in standard Fiori apps of S/4HANA with Data Source Extensions
- Key User Extensibility in SAP S/4HANA Cloud Sales – excellent blog contains custom fields, custom logic, process, print form and analytics extensibility in a sales scenario
- Key User Custom Fields: When to use what type of code list
- SAP S/4HANA Cloud Extensibility – Engraving sample scenario
- Fiori for S/4HANA – Adapting Terminology in SAP Fiori apps via Key User tools
- Usage of OData Service of Custom Business Object
- How to delete multiple CBO entries
- Information Retrieval for Custom Business Objects
- Data Access Management for Custom Business Objects
- Extending Custom Business Object with Business Rules Logic in S/4HANA Cloud using SAP Cloud Platform Business Rules
- Add an Approval Workflow to your Custom Business Coding using Key User Extensibility Tools in SAP S/4HANA Cloud
- Simple application to convert number to words in SAP S/4HANA Cloud
- Microlearnings on openSAP: https://open.sap.com/microlearning -> Microlearning for SAP S/4HANA -> Expert Technology Topics – openSAP Microlearning
2.6 Understand the Differences Between On-Premise/PCE and Public Cloud
As mentioned, the key user extensibility tools are designed for the cloud, but also made available in the OP/PCE edition. However, there are some differences between public cloud and OP/PCE:
- Different UI/OData (Gateway) setup (embedded vs. hub scenario)
- Different setup of Identity and Access Management (IAM) and Communication Management
- Different transport setup (between dev, q, and p systems)
As a consequence, key user tools work differently in some areas (e.g. in OData-Publishing and UI) or are not available in OP/PCE at all (key user tools IAM/COM). Please refer to the documentation for public cloud and OP/PCE.
3. Developer Extensibility
Developer extensibility (aka SAP S/4HANA Cloud Environment or “Embedded Steampunk”) was introduced with SAP S/4HANA Cloud, public edition 2208 and SAP S/4HANA (OP/PCE) 2022.
3.1 Get an Overview
The following blogs give and overview on the new developer extensibility in the context of the different environments:
- https://blogs.sap.com/2021/09/30/steampunk-is-going-all-in/
- https://blogs.sap.com/2022/09/05/embedded-steampunk-some-more-details-for-abap-developers/
- https://blogs.sap.com/2022/12/22/abap-cloud/
- https://blogs.sap.com/2022/10/25/how-to-use-embedded-steampunk-in-sap-s-4hana-cloud-private-edition-and-in-on-premise-the-new-abap-extensibility-guide/
- https://blogs.sap.com/2023/05/24/abap-cloud-what-does-it-comprise/
- https://blogs.sap.com/2023/05/26/abap-cloud-sap-s-4hana-extensibility-may-2023-update/
3.2 Documentation
Developer Extensibility Tools in SAP S/4HANA Cloud, public cloud edition
https://help.sap.com/viewer/p/SAP_S4HANA_CLOUD -> Product Assistance -> English -> Extend and Integrate Your SAP S/4HANA Cloud -> Extensibility -> Developer Extensibility
Developer Extensibility Tools in SAP S/4HANA (OP/PCE): https://help.sap.com/viewer/p/SAP_S4HANA_ON-PREMISE -> Product Assistance -> English -> Enterprise Technology -> ABAP Platform (or SAP Netweaver in older releases) -> Developing on the ABAP Platform -> Development Concepts and Tools -> Extensibility -> Developer Extensibility
ABAP Cloud – Technical Use Cases and Recommended Technologies: https://www.sap.com/documents/2023/05/74fc05e6-747e-0010-bca6-c68f7e60039b.html
UI Development in SAP S/4HANA Cloud, public cloud edition: UI Development
UI Development in SAP S/4HANA (OP/PCE): UI Technologies
3.3 Getting It All Together in a Training/Learning Map
The Learning Journey Develop Extensions Using SAP S/4HANA Cloud, ABAP Environment provides concrete examples you can implement.
3.4 Get Your Fingers Dirty: Tutorials, Best Practices, How-Tos
The SAP Community SAP S/4HANA Cloud ABAP Environment | SAP Community provides a Product Overview, but also Hands-On Experience tutorial and a Q&A forum on the SAP S/4HANA Cloud Environment.
On the SAP Extensibility Explorer for SAP S/4HANA Cloud, you can find examples for developer extensibility, e.g.
- Create Your Own Gadget Shopping App Using Developer Extensibility
- Enrich Your Gadgets Shopping Application With Developer Extensibility Reuse Services
- … find more by searching in the Extensibilty Explorer
And there are some blogs:
3.5 Understand the Differences Between On-Premise/PCE and Public Cloud
As mentioned, the developer extensibility tools are available in the public cloud and OP/PCE edition. However, there are some differences between public cloud and OP/PCE:
- 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)
As a consequence, tools work differently in some areas (e.g. in OData-Publishing and UI) or are not available in OP/PCE at all (e.g. ADT editors for Cloud IAM/COM). Please refer to the documentation for public cloud and OP/PCE.
4. Classic Extensibility
Classical extensibility (aka classic ABAP custom development) is available in SAP S/4HANA (OP/PCE). It refers to SAP’s classic custom ABAP development model that you as customer or partner can use to extend ABAP-based on-premise SAP solutions.
Classic Extensibility Tools in SAP S/4HANA (OP/PCE): https://help.sap.com/viewer/p/SAP_S4HANA_ON-PREMISE -> Product Assistance -> English -> Enterprise Technology -> ABAP Platform (or SAP Netweaver in older releases) -> Developing on the ABAP Platform -> Development Concepts and Tools -> Extensibility -> Classic Extensibility
The SAP Community Network, ABAP Extensibility topic page is the landing page for ABAP Extensibility-related topics.
5. Side-by-Side Extensibility with SAP BTP ABAP Environment
Since 2018, ABAP as a programming language together with the rock-solid ABAP server is available on SAP BTP (SAP BTP ABAP Environment).
5.1 Get an Overview
The following blogs provide an overview on SAP Cloud Platform ABAP Environment:
The official product page SAP Cloud Platform ABAP Environment shows information on features, pricing, and resources.
5.2 Documentation
- ABAP Development on SAP Cloud Platform
- Application Operations in the ABAP Environment
- ABAP for SAP Cloud Platform (Language documentation)
5.3 Get Your Fingers Dirty: Tutorials, Best Practices, How-Tos
You can find the tutorials and other material on SAP BTP ABAP Environment in the Learning journey for SAP BTP ABAP Environment (https://help.sap.com/learning-journeys/49047e7668844d419ccee567923a475e) and in the tutorial navigator Tutorials for SAP Developers for SAP BTP ABAP Environment.
6. Side-by-side Extensibility with SAP Cloud Platform using Java or Node.JS
As mentioned before, this blog post is focused on the ABAP-based extensibility options. This is because ABAP is in my comfort zone, and I want to leave the topics of the other extensibility options on SAP BTP to the experts in this domain.
3.1 Textbook and Training
Herzig, Philipp; Heitkötter, Henning; Wozniak, Sander; Argawal, Akhil; Wust, Johannes: Extending SAP S/4HANA. Side-by-Side Extensions with the SAP Cloud Platform SDK. SAP PRESS 2018.
https://www.sap-press.com/extending-sap-s4hana_4655/
Extending SAP S/4HANA with SAP HANA Cloud Platform:
https://open.sap.com/courses/hcp3a1
Create and Deliver Cloud-Native SAP S/4HANA Extensions
https://open.sap.com/courses/s4h13
3.2 Get Your Fingers Dirty: Tutorials, Best Practices, How-Tos
In the SAP Leaning Journeys, you can find a number of learning journeys for SAP BTP environments, development tools, and services. Start the browser for SAP Learning Journeys, e.g. for the developer role: Learning Journeys – Overview (sap.com) . In this browser, you can find learning journeys, for example for:
- SAP S/4HANA Cloud Extensions on SAP BTP, SAP Cloud SDK, CAP Programming Model
- Environments, e.g. Cloud Foundry and Kyma,
- …
For Java and Node.JS, the SAP Cloud SDK (fka SAP S/4HANA Cloud Extension SDK) supports you with libraries and an SDK that makes it easy to consume the APIs and events and achieve Cloud qualities for your applications. The document SAP Cloud SDK Overview is the central landing page for the SAP Cloud SDK. The document SAP Cloud SDK Overview contains a tutorial on how to create an extension application with SAP Cloud SDK. You can find the tutorials on SAP Cloud SDK here.
On the SAP Extensibility Explorer for SAP S/4HANA Cloud, you can find examples for developer extensibility, e.g.
- Quick Time Entry for SAP S/4HANA Cloud Time Recording
- … find more by searching in the Extensibilty Explorer for side-by-side extensibility
The Localization Toolkit for SAP S/4HANA Cloud provides tutorials/how-tos for country & language-specific extensions.
Last, but not least, there are additional tutorial-like blogs, some of which I want to mention here:
- Video: Side-by-Side Extensibility (New UI)
- SAP S/4HANA Cloud – Side-by-Side Extensibility
- Setup of CPI iFlow with Custom Business Object
Is there any information anywhere about how a customer can translate their extensions?
Yes, ususally you can find this in the documentation of the extensibility tool, for example for custom business object, custom fields or for Fiori UI development (I18N).
Very comperihensive sharing. Thank you so much.
Hello Thomas
Great blog. I also found this blog with a worked example helpful:
https://blogs.sap.com/2019/04/15/sap-s4hana-cloud-extensibility-engraving-sample-scenario/
Kind regards
Amin Hoque.
Hi Thomas,
Great document ,I worked in JAL 2008 where I learned SAP performance optimisation and scalability approach from you.Now I am reading all this where I am working on this.
Thanks for your document.
Regards,
Sairam
Is there some document giving difference between S4 HANA Cloud and S4 Hana On-prem version for In-APP extensibility features ,development scenarios
Hello Thomas,
Nice blog.
Great resources given by you for study/learning.
Thank you so much.
Hi Thomas,
I've a question/doubt regarding ABAP strategy, It's possible to have only on-premise an ERP or SAP S4HANA with a SAP Netweaver side-by-side extensions here I have all my main custom code. All the blogs of documentation always talk about BTP, except "ABAP Steampunk is going all-in" the part were it wrote "... Steampunk is a great option for loosely coupled side-by-side extensions or for partners offering SaaS solutions written in ABAP. This is somewhat comparable to the solutions that were running side-by-side on NetWeaver. Let’s take a short trip back in time.
In the on-prem world, customers could adapt SAP software by modifying it, or by writing custom code that could make use of any SAP object (red in the drawing). There was no dedicated stable and public interface, and that was exactly the reason for annoying upgrade hiccups. With NetWeaver Standalone, it was at least possible to write loosely coupled extensions with a lifecycle separated from the ERP core....".
What I'm not sure if this still is possible for S4HANA.
Thanks in advance
Regards.
JoaoPauloReis
Hi JoaoPaulo,
this is a very general question. If you start to read the documenents I linked in this blog, you will also find a lot of information on in-app extensibility. And there is now also a edicated stable and public interface for stable extensions. See e.g. my blog Restricted ABAP and SAP S/4HANA On-Premise | SAP Blogs
Best regards,
Thomas
.
Thanks for the quick reply Thomas,
If I read correctly from your blog, my case is 3 and 4, we still have clients that don't want to go to cloud or can't go to cloud due to security restrictions. Conclusion, if I understand your blog we still can have side-byside extensibility even for SAP S/4HANA on-premise and netweaver (same version as the NW 754 or 755), i.e., that need to match the same ABAP version of the S/4HANA, I can I have this scenario. Correct?
Thanks in advance
Regards,
Joao Paulo Reis
"...Before closing, I would like to point out in which cases the use of restricted ABAP can be helpful in on-premise systems:
For use case 1 (move custom applications to SAP Cloud Platform ABAP Environment), I recommend reading the blog How to check your custom ABAP code for SAP Cloud Platform ABAP Environment. It explains in detail how to use ABAP Test Cockpit (ATC), the SAP Fiori App Custom Code Migration, and the new ATC Cloud readiness checks.
… to be continued with more details on use cases 2, 3, and 4...."