Developer Extensibility for SAP S/4HANA Cloud on the SAP API Business Hub
This blog post helps in understanding developer extensibility for SAP S/4HANA Cloud (aka Embedded Steampunk) and discovering them on the SAP API Business Hub.
Today, customers and partners can use key-user extensions and side-by-side SAP Business Technology Platform (BTP) extensibility to extend SAP S/4HANA Cloud. What is the motivation behind introducing Developer Extensibility? Do customers need all these? When to use what? And finally, where to discover the released artifacts from SAP.
You will learn
- Overview of Developer Extensibility
- Demystifying Steampunk together with Embedded Steampunk
- Comparison of available extensibility options
- Discover released developer extensibility artifacts from SAP
Developer extensibility allows you to create development projects in an SAP S/4HANA Cloud system. It gives you the opportunity to develop cloud-ready and upgrade-stable custom ABAP code on SAP S/4HANA Cloud, combining the benefits of custom ABAP code, with the required restrictions for Cloud readiness, and the SAP S/4HANA programming model to build SAP Fiori apps.
- ABAP RESTful Application Programming model (RAP) to build services and SAP Fiori apps
- Eclipse based IDE (ABAP Development Tools) with debugger, troubleshooting, and testing tool support
- ABAP software lifecycle support
To ensure Cloud readiness, you should consider the following restrictions:
- Cloud-optimized subset of ABAP language
- Usage of released SAP APIs/objects in the custom code
- Usage of predefined extension points to extend SAP objects
- Controlled access to admin, user, authorization, monitoring tools, and services
- No security by default when creating your own tables, in particular, you can’t use ILM (Information Lifecycle Management) and IRF (Information Retrieval Framework)
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. It provides the ABAP Platform in the Cloud as a PaaS (Platform as a Service) offering. Customers and partners can build ABAP extensions and add-ons on Steampunk. Steampunk provides a public PaaS interface containing the ABAP Platform objects which can be used by extensions. On top Steampunk contains a Cloud ready ABAP development model for customers and partners.
Embedded Steampunk reuses the top layer of Steampunk SAP BTP: The Steampunk ABAP development model and currently is offered only with SAP S/4HANA Public cloud.
Internally, SAP S/4HANA Cloud and Steampunk share the same ABAP Platform code line anyway (marked blue), with Steampunk being a kind of frontrunner for innovations. So, it is just a logical next step to embed the Steampunk development model directly into the SAP S/4HANA Cloud stack. Custom extensions developed with Embedded Steampunk now have the same properties that made Steampunk Cloud-ready and upgrade-stable:
- Usage of stable public interfaces only
- No modifications of SAP code
- Restricted usage of the ABAP language and other technologies
- Restricted usage of system functionality
- Efficient development with RAP
Developing extensions with Embedded Steampunk using ADT (ABAP Development Tools) feels exactly like developing with Steampunk on BTP. With one important additional benefit: Embedded Steampunk extensions can not only call the more technical ABAP Platform interface (green), but also a local public S/4 interface containing the business functionality (for example, CDS views like I_Product, replacing direct access to table MARA, or RAP facades for the creation of purchase orders). In SAP S/4HANA Cloud, the custom code itself is either an own app or service, or implemented via public extension points, using the well-known BADI technology.
If you are an ABAP developer and willing to familiarize yourself with RAP, with ADT instead of SE80, or with clean APIs instead of freestyle modifications, you will feel directly at home with Embedded Steampunk. You can use all the tools and processes you already know. And these are the same tools and processes thousands of developers are using each day at SAP.
What extensibility option suits my purpose?
Compare the extensibility options in the following table:
|Key User Extensibility||Developer Extensibility||Side-by-Side Extensibility|
|Scenario||Smaller low/no-code extensions||Tightly coupled more complex extensions and apps||Loosely coupled extensions and apps|
|Target environment||Fully integrated in SAP S/4HANA Cloud stack||SAP BTP|
|Target group (persona)||Key users||ABAP developers||Developer|
|Released object types||BAdIs, CDS views||BAdIs, classes, interfaces, CDS views, behavior definitions, authorization objects||BAPIs, IDocs, OData APIs, SOAP APIs, events|
Discover Developer Extensibility Artifacts on the SAP API Business Hub
If Developer Extensibility or Embedded Steampunk is for ABAP Developers, then where are they can find the APIs to build the extensions? Also, are there any technical documentation available which developers can refer to?
SAP API Business Hub acts as a central place to discover SAP S/4HANA Cloud digital artifacts available to the customer which end-users can explore, extend, and adapt SAP S/4HANA Cloud with built-in and side-by-side extension capabilities. These details can help customers or partners to search available developer extensibility APIs and consume them.
You can see the developer extensibility artifacts published on SAP API Business by follow the below link.
This blog post should help you understand developer extensibility for SAP S/4HANA Cloud and discover them on SAP API Business Hub.
Please feel free to contact us with any questions you may have. Thanks for reading this blog post, hopefully you enjoyed it!
Important links for further information:
Thanks for sharing!!
Thanks for sharing. Nice blog.
It will be nice to also see a sample developer extensibility case in detail.
Hi Swati, I'm glad you liked it. You can look for sample scenarios in SAP Extensibility Explorer app
thanks for sharing this nice blog!
Are the Side-by-Side Extensibility available in both environments (Neo and CF)? And what are the major differences?
Thankyou for sharing this informative blog.
Just to understand this bit better, is there a single source of truth (any SAP system table/view?) with regards to objects released for Developer/on-stack Extensibility vs generic ABAP on Cloud?
For instance, in SAP API Hub (under S/4HANA Cloud); if we check for a released CDS View, inside the detail page - we find a detailed information on its Release States, which includes - Release State Key User Extensibility, Release State Developer Extensibility, Extensible with Key User Extensibility and Extensible with Developer Extensibility.
(I did check Table ARS_W_API_STATE which gives us indicators for Use in Key user and Use in Cloud Dev.) Wanted to understand what is the right SAP Table/View where we can see these metadata for Released objects. Purpose is to differentiate the between (ABAP on Cloud) objects that are released for Developer/on-stack extensibility vs the ones for (non-S/4H) BTP ABAP. Any related information would be highly appreciated. Thanks!