Since the introduction of a 3-system landscape (3SL) in September 2022 for the SAP S/4HANA Cloud, public edition, SAP added a new pillar to the Extensibility landscape: Developer Extensibility, also known as SAP S/4HANA Cloud, ABAP environment. But what can Developer Extensibility do? Can we do classical ABAP programming in SAP S/4HANA Cloud? Can we debug the code? Will Key User Extensibility (in-app extensibility) be of no use anymore? … Lots of questions come to our mind. Today, I would like to present some differentiation scenarios we implemented using Developer Extensibility for SAP S/4HANA Cloud, public edition, hoping it can give you some concrete ideas on the capabilities of Developer Extensibility and the typical business scenarios we can solve using Developer Extensibility.
Before we jump to the examples, I advise you to read this blog that provides a great summary of all extensibility techniques used in SAP S/4HANA Cloud, public edition.
Notes: Please bear in mind, for the cases presented below we are only using Developer Extensibility to build up core differentiation in the presented business scenarios. The UI development of these differentiated business processes is done in SAP BTP, BAS (Business Application Studio). For more details about BAS, you can check the UI Development of Developer Extensibility.
Case I: Mass processing for Work Center
In SAP S/4HANA Cloud, public edition, we have standard Apps for mass processing, like Mass Maintenance for Master Data. However, we have learned from some of our customers, that they do have requirements for mass processing for certain business objects.
On the API Business Hub, there is a new section called “Developer Extensibility”, where you will find the Business Object Interface:
Business Object Interface part on API Business Hub
With the availability of the Business Object Interface, we can develop custom Fiori applications for mass processing SAP standard business object. Here, we present an example of how we created a new application by leveraging the Business Object Interface of Work Center. With this new app, customers can choose multiple work centers for mass updating of the values of certain fields.
Business Object Interface: Work Center
Custom application “Mass processing for Work Centers”
Choose the fields for mass processing
As you can see above, we selected three fields (Supply Area, Usage, Back Flush) for mass updating, based on the customer requirement. You can also implement other fields for mass updating as long as the fields are supported in the Business Object Interface.
Another thing to mention is, that with the new 3SL in SAP S/4HANA Cloud, public edition, you can now create custom Business Catalogs - something that was not available before. Now users can assign custom applications to custom business catalogs. This new function will help us to be more precise when creating authorization controls.
Create custom Business Catalog for custom application
Case II: Mass Upload for Purchase Requisition
This is another case of custom application for mass processing: mass upload/creation. In this case, we create a custom Fiori application for Purchase Requisition mass upload. The custom application can create multiple purchase requisitions from an Excel file template. Furthermore, you can define the upload template based on your own requirement. This was implemented using the Business Object Interface Purchase Requisition.
Business Object Interface: Purchase Requisition
Custom application “Purchase Requisition Mass Upload”
Case III: Enhanced Goods Receipt Process
On the API Business Hub, under Developer Extensibility section, you will find a section for Business Add-ins “BAdIs”. Here, you will find the list of all BAdIs that you can utilize to enhance your business process by implementing your own logic.
Business Add-Ins (BAdIs) for Developer Extensibility
Recently, a customer wanted to pass some internal memos to the auto-created inspection lot when posting goods receipt for a purchasing document. We implemented this requirement by using two BAdIs. The first BAdI is MMIM_GR4XY_CHECK_DATA (Check Header and Item Data in Goods Receipts), and we used it to save the internal memo text when posting goods receipt. The second BAdI is BADI_QPL1_CHANGE_AT_CREATE4CLD (Change Inspection Lot Header During Lot Creation), and we used this BAdl to pass the saved internal memo text to the Short Text field of the newly created inspection lot when system creates the inspection lot.
Enter the text to Note field when posting goods receipt
The text will be saved to auto-created inspection lot
Enhanced the goods receipt process by 2 BAdIs
With Developer Extensibility, we can set breakpoints in the code, and easily debug the code. This will make it easier for the developer when troubleshooting is required.
Debug in Eclipse ADT tool
Case IV: Customized Inventory Aging Report
Reporting is one of the commonly used business scenarios in SAP S/4HANA Cloud, public edition. In 2SL, customers usually create custom CDS Views and use the embedded SAP Analytics Cloud (SAP SAC) to create all kinds of reports. With the new 3SL, we can create custom CDS Views using ABAP. We can implement much more complicated business logic using ABAP code that provide us much more flexibility.
The Inventory Aging report is a widely used report by our S/4HANA Cloud customers. We implemented this report in 3SL using ABAP code. We define a custom entity for data storage and implement the complicated logic in a custom Class. Moreover, we defined a maintenance object, in which customer can maintain which movement types will be counted in the inventory aging report.
Define a custom entity
A custom Class to implement the business logic
The customized Inventory Aging Report
While this blog doesn’t cover an exhaustive list of the differentiation scenarios possible using Developer Extensibility, I hope it can give you some ideas for potential future scenarios.
I would like to thank the following colleagues who supported the implementation of these differentiation scenarios: rex.xie, hongbowang, riya_yang1, qi.liu4, ecco.liu, summer23, angeladai, joey.li1.
If you would like to see more sample scenarios of Developer Extensibility, I would suggest you to visit SAP Extensibility Explorer.