This blog post supplements our webinar about low-code in SAP S/4 HANA. Check the webinar: Low-Code in SAP S/4HANA for more details about this topic. At the end of this blog post, we will discuss the questions that we received during the webinar as well.
Extensibility has always been an important aspect of SAP. However, the classical method for extensions (such as calling or modifying SAP code) also has a couple of deficiencies. Checking and adjusting customizations with each new SAP upgrade takes up a disproportionate amount of time. It is also difficult for key users to make adjustments, which means that they are often reliant on developers for this type of work. Fortunately, SAP offers us many more options to create extensions nowadays.
The image above shows an overview of these different extensibility options. The Business Technology Platform can be used for Side-by-side extensibility and provides us with a lot of flexibility and other interesting functionality, such as Mendix-integration. We will focus on the extensibility options inside SAP S/4 HANA though, also called In-App Extensibility.
What is In-App Extensibility?
In-App custom extensions do not contain any modifications of SAP code (they are loosely-coupled) and they are based on stable extension points and APIs. Extensions can be added to a regular SAP transport. The concept of ‘empowering the key user’ occupies center stage and there are multiple different tools available for adding extensions.
SAP S/4HANA Key User Extensibility includes the following:
- User interface flexibility and personalization is possible with the UI Adaptation Mode. This allows you to do many different things, such as renaming labels, adding/moving fields and defining new filter and table variants.
- Custom logic and custom fields can be defined in the ‘Custom Fields and Logic’ Fiori app. You can also manage the usages of a custom field or extend SAP CDS Views and OData-Services with SAP fields that are available in CDS views.
- Create your own business objects and the corresponding database tables using the ‘Custom Business Objects’ Fiori App. In this app, you can create CDS views, OData services and UI to enter data through a user interface or load data from other customer systems. You can also implement custom logic on node level and write to custom business objects from custom logic.
There are too many different options to discuss in a single blog post, but other possibilities include:
- Custom Business Logic
- Analytics Extensibility KPI Design
- Tracing
- Custom CDS View OData-Scenarios
- Custom Communication Scenarios
- Lifecycle Management
Can these options replace classical extensibility in SAP?
This concept of adapting an existing Fiori app mainly works with Fiori Elements applications. Many S/4HANA applications are based on Fiori Elements, but this is not the case for all available Fiori Apps and related objects. Additionally, not every extension has been mapped to new options yet either. As such, In-App Extensibility cannot replace the classical method for extensibility in every situation.
You can consult the SAP transaction SCFD_REGISTRY (extensibility registry) to check which apps/OData services can be extended with custom fields and which GUI apps, CDS Views, SOAP Services, FM & IDOCS are covered by In-App Extensibility. Use this information to properly assess how specific situations need to be approached.
Our thoughts
In-App Extensibility makes it easier for key users to quickly add fields and logic to existing screens without being dependent on developers. This improves the overall usability and labor intensity. It also contributes to the “keep the core clean” principle; customizations can be added in an upgrade-safe way.
According to SAP, all key users should have access to these methods. However, we believe that it is important to limit which key users have access, since you also do not want to have too many different customizations in your system. In-App Extensibility cannot fully replace the classical method of extensibility, so it remains important that key users, UX experts and developers continue working closely together.
Q&A Webinar: ‘Low Code in S/4HANA?’
To conclude this blog post, we will shortly go over the questions about In-App Extensibility that we received during the webinar:
- “Adapt UI” let’s you add fields that SAP allows, but not all fields. Are there any alternatives if you want to use an existing field that is not in the default list?
- You can enable existing fields to be used as custom fields. Check SAP transaction SCFD_EUI.
- What about multiple language support?
- Internationalization is natively supported.
- Can you add structures of tables, or only fields?
- Only fields. You can use business objects to represent a data set though.
- Can you also implement input validation, or custom events/methods?
- You can add logic to your custom field. This can be used to check for validation for example.
- With the whitelisted APIs, can you access a back-end table (or any DB source) in the custom logic?
- You can access CDS views.