SAP S/4HANA Cloud – Key User In-App Extensibility
In my previous Blog I shared with you how to set up an SAP S/4HANA Cloud system and enable users to Log-in through the SAP Cloud Identity service.
As per the SAP Activate Methodology for S/4HANA Cloud, Fit-To-Standard workshops should help you to identify Fits and Gaps in the customer needs in order to avoid extensions and custom development.
In the real world, this is not always possible. Conscious of this, SAP has developed an advanced Extensibility Technology to allow extensions and integrations with the S/4HANA Cloud core.
It’s worth highlighting here that S/4HANA Cloud Extensibility is not really Fiori Extensibility, (which could be a subject for another Blog). It’s a comprehensive set of tools, platform and methodologies to allow customers to immediately benefit from them.
In this second Blog I’m going to take you through the In-App Extensibility concept and functionalities:
- UI Adaptation
- Custom fields
- Data Source Extension
- Custom Logic
- Custom Business Objects
- Custom CDS Views
- Custom Analytical Queries
- Custom Forms and Emails templates
The extension in this scenario is implemented in the same system as the enhanced app and enables business experts and key users with no deep technical knowledge to implement common extensions to serve the customer needs extending the functional scopes of S/4HANA Cloud.
Tip: The Side-by-Side extensibility is meant to weave external content, which could be SAP Cloud solutions or third-party applications, into S/4HANA Cloud. It requires more technical knowledge and the use of SAP Cloud Platform. This is going to be showcased and illustrated in the third Blog.
Let’s start! 🙂
Key Users can personalize the SAP S/4HANA Cloud UIs to which they have access with no impact to other users. This can be done from Adapt UI in the User section, while you are displaying an app, in this case Product Master app.
The app is switched to UI Adaptation mode, where you can perform your changes, save, publish or reset to the standard state.
What you can do in the UI Adaptation mode is basically:
- Add an available field from the associated Business Object to the UI. You can also Rename, Remove, Cut & Paste or change the position of an existing field or label in the UI.
- You can do the same with a Group of fields. You can create a custom one, add fields in it, remove or change its position in the UI.
- You can add available Tabs or sections and change their position.
- In the Navigation mode, in addition to navigating to standard apps, you can make a Link navigate to a custom app which has been extended or developed.
When the Associated Business Object to the UI does not offer the field you need as a Key User, you can create a new field from the Add button in the previous screenshot and SAP does all the magic for you!
It updates structures, tables, CDS Views, oDATA and the UI in order to make it available, editable and storable.
The Custom Fields and Logic app is opened and the Business Object to which the UI is associated is selected. You can specify the name, Tooltip, Type, Length …
Note: The available Business Objects you can extend depend on your S/4HANA Cloud License.
After creating and publishing, you can enable or disable the usage or search relevance of the field in UIs and Reports. You can also check where it is used and maintain the Translation texts.
Tip: Since Master data product Filter is enabled, the field is available to apply for filters in the Product Master app.
Data Source Extension
Data Sources are CDS Views which can be used for Analytical reports, oData consumption, Mail and Forms Templates, KPI, etc.
You can go to Data Source Extension to use this new custom field or just extend an existing standard Data Source. For example, you can extend the Manage Usage Decisions data source:
What is referred to as BAdI in On-premise, is known as Custom Logic in S/4HANA Cloud. In the same Custom Fields and Logic app, SAP offers a list of Business Contexts which could be enhanced at specific points.
Once the New Enhancement Implementation is created you can code your Logic in the tiny editor where you can update values of custom fields for example.
Note: Later, I will talk more about the editor and its limitations.
Tip: If you look for the Custom Fields and Logic app in the SAP Fiori apps reference Library, filtering by Product Suite set to S/4HANA Cloud, you can find out the Business Catalog (SAP_BC_CORE_EXT) which should be assigned to the Key Users to enable them to add a Custom field.
Custom Business Objects
In this app, you can create your custom Business Objects (BO) and their corresponding database tables, CDS Views and oData.
Let’s create a Custom BO which will be used in the third Blog in the Side-by-Side Extensibility scenario!
Example: A BO to manage the product discounts hierarchy.
- Navigate to Custom Business Objects app and click on New
- Enter the name of your Custom BO and the Name in Plural and click on Create.
- Maintain the following data:
- Determination and Validation: To add custom logic before Save and After modification. This can be done only if the custom BO is Published.
- UI Generation: To generate an application based on the custom BO to create and maintain the BO data.
- Service generation: To generate an oData service which can be consumed by SAP Cloud Platform or third-party apps or services.
- Can Be Associated: To create a hierarchy and navigation capability from the custom BO to other child nodes.
- System Administrative data: If you want to let the system store data like timestamps or user names for logging purposes
- Go to Fields and Logic and maintain the fields and their types you need for your custom BO
Tip: Note that Discount field is a Code List defined separately in the same Custom Business Objects app.
- Save Draft and Publish.
- Once published, you can add custom Logic to the Before and After events.
- Click on Before Save and Create a Draft Version and add some code. Example: validate that the Discount percentage, From Quantity and To Quantity are not missing.
Note: For security reasons, the ABAP statements, Business Objects and tables you can use are limited. You can use the Importing parameters, custom BO or the class API cl_abap_context_info:
Tip: You can test your code using Variants for the importing parameters. You get the exporting parameters on the bottom of the editor:
- Publish. Now your Custom Business Object is ready for use and Consumption. Navigate to your app available in the Extensibility – Custom Apps and Services Launchpad Group.
- Enter some values for your Custom Business Object:
Note: In the third Blog, we will consume this Custom Business Object from the SAP Cloud Platform as an oData service.
Custom CDS Views
You can create custom CDS Views on the top of existing standard SAP CDS Views of your own custom CDS Views and expose them to oData or Analytical Reporting tools.
In terms of the CDS View Data definition, in the Custom CDS Views app you might need to define:
- oData exposure
- Analytical Exposure
- Associations between underlying CDS Views
- Selected Fields
- Input Parameters
Note: In the third Blog, we will see how to consume Custom CDS Views, whether created from this app or whether coming from the Custom Business Objects.
Custom Analytical Queries
This app allows you to create new Custom Analytical Queries like CDS Views intended for Analytical and reporting purposes, with the addition that it allows you to display and analyse data into a meaningful grid.
Tip: Custom CDS Views flagged as Analytical are available as Data sources for Custom Analytical queries.
Custom Forms and Email Templates
As part of the Output Management, these two apps allow you to Create Custom Forms and Email Templates based on existing standard SAP ones or totally new templates you can create and design.
An existing Data Source, which can be standard or custom, can be assigned to your template to use its fields.
For the Forms Templates, you need to download an existing template or create a new one, and use Adobe LiveCycle Designer to edit and adapt to your needs and then upload to the app.
Tip: You can use the Manage Logos and Manage texts apps to create logos and texts reusable within your templates.
As you can see, the Key User In-App Extensibility tool-kit is rich in apps and capabilities to allow you to implement your needs in your same S/4HANA Cloud system.
In the next Blog, I will show how you can use the SAP Cloud Platform to develop Side-by-Side apps and how external content can easily be integrated within your S/4HANA Cloud.
Thanks for the excellent blog!
I am facing difficulty in finding related business context for the 'Edit Billing Request' app.I want to add email functionality(using custom logic) in this app at some point.Any suggestions?
Very good blog and really useful infromation
Thanks for sharing!
Thanks for this helpful blog. One question regarding capability of doing S/4HANA Cloud extensibility.
I read from other web sites saying that S/4HANA Cloud has two variants: running on single-tenant and multi-tenant.
The extensibility you mentioned here only apply to single-tenant but not multi-tenant.
Is this true? Thanks.
The Key user In-App extensibility applies to S/4HANA Cloud single tenant edition, as well as the multi tenant edition.
I am facing issues with the Custom business objects app to use the Generate UI feature . Is it not avaialble on the S/4 HANA On-Prem Version ?
System S/4 HANA OnPrem 1809 ... created custom logic -> validation BAPI (the only available) for Business Partner Core. Custom Logic is Tested OK, Published. If I go to Business Partner Master Data App ... the validation logic is not invoked ...
Any ideas or hints how to debug ???
I am working on S4 on Prem, and I have a requirement for extending standard CDS.
Can we create, extended CDS from Custom CDS views tile or I need to create extended CDS from HANA studio(eclipse)
Thank you for the great article.
I wanted to understand if these are the same extensibility options for mobile application as well?
I have a very basic question - How are the in-app extensions better than the classical ways of extending SAP standard (like BAdI, User Exit etc) or Modification? How does in-app extensions ensure that the upgrade of the S/4 Core (could be S/4 HANA Cloud or S/4 HANA On-Premise) is fast and easy?