In-App Key User Extensibility in SAP S/4HANA Cloud
In-app key user extensibility allows adapting standard functionality to user requirements without the need for any external tools. Whether you want to apply small changes, such as hiding standard fields for specific user groups or including business logic that triggers a change to happen, there are a variety of apps on the SAP Fiori Launchpad designed to cover diverse extensibility needs. The SAP Fiori apps are targeted to administrators and other "specialists", who have a deep knowledge of the product or a line of business area, but not a technical knowledge in coding.

Note
Check which role is required for your business user to access an application on the Fiori launchpad by looking up the relevant app in the SAP Fiori Apps Reference Library.Here's a brief overview of what you can do with the in-app key user extensibility tools:
- Change and adapt the UIs of SAP Fiori apps by moving fields around on the screen and/or adding additional fields that are available to be used for an app UI, but don't display by default.
- Create custom fields that can be added to existing Fiori app UIs or to custom UIs.
- Create your own custom templates or extend the standard forms and email templates that are associated to different business processes.
- Enhance the current business process by creating custom business logic that triggers a change to occur.
- Create a new custom user interface based on a custom business object, or that simply has an embedded URL to link to a company website or other webpage.
- Create custom business objects that can be used for analytical scenarios or to generate a simplified application where the business object is a table with data that describes different attributes related to the object. For example, banking information is contained in the Bank business object, but there are many fields within the business object that describe its characteristics, including name, address, SWIFT code, and others.
- Create customer-specific CDS Views that can be used in analytical scenarios or to generate an API to expose data for use in an external app.
Note
The management of data in an extension scenario deviates from the management of data in the standard scenarios. You are responsible for ensuring that the data used in an extension scenario is managed in accordance with any applicable legal requirements or business needs, such as data protection legislation or data life cycle requirements. Please note that the support of custom fields is currently not integrated in the privacy-by-default functionality. Therefore, the support of custom fields should not be used for the processing of personal data if this processing falls under any applicable data protection legislation.Does this app support the in-app support of custom fields?
Before we can begin working with the extensibility apps on the launchpad, we need to understand how to determine whether or not an SAP Fiori app supports custom fields, how to keep track of who is making changes, and whether or not an extension has been exported/imported to other systems.

We'll take the Create Customer Projects and Plan Customer Projects apps as an example:
- First, look up the app using it's name in the SAP Fiori Apps Reference Library. If you are looking up an app from a test script, use the Overview Table to find the app ID. IDs are generally easier to use when searching the library. For example, both apps described in this example display as two different apps on the launchpad, but they have the same app ID, so you will only find one of them in the reference library (Plan Customer Projects).
- Next, scroll to the bottom of the information on the Product Features tab to find linked text that says, "Read more in App Documentation". Click the "App Documentation" - it points you to the app information in the SAP Help Portal.
Note
If the app is supported for all deployments of SAP S/4HANA, it's important to select "SAP S/4HANA Cloud" from the drop-down menu at the top of the screen. This makes sure you are sent to the app information in the public cloud area of the SAP Help Portal. - In the SAP Help Portal, look for a section titled "App Extensibility" below the title of the app in the navigation menu. If the app isn't supported with custom fields, you won't see this text. If the app is supported with custom fields, you will see a dedicated section that you can select to find more information about the types of extensibility supported.
- After selecting the App Extensibility link, we see the business contexts available to make extensions to, and that both custom fields and custom logic are available. Custom fields are described in the UI Elements table, and custom logic is described in the BAdI (Business Add-In) table.
Extensibility Cockpit App
After learning we can make extensions with both custom fields and custom logic for the Create/Plan Customer Projects apps, we can now look up the relevant business context in the Extensibility Cockpit app in SAP S/4HANA Cloud. Each business context has a set capacity and different types of extensions take up more or less space in the capacity. For example, a custom free-text field that allows 300 characters is going to take up significantly more context capacity than a free-text field that allows 30 characters.

If someone else has made extension(s) in that same context, there will be less capacity for us to work with, however the extension the other person made might be something we want to reuse so we don't have similar/the same extensions created by different people. Extensions made within a business context can be easily used across related apps that also use that same business context. In the Extensibility Cockpit app, you can explore the available options to extend an SAP app by filtering on the type of extension, solution scope, scope item (business process), or business context. This app helps you gather information when planning or preparing to build an extension.
Extensibility Inventory App
After I make an extension, it needs to be exported from the customizing tenant of the development system, and imported to the test and production systems. The Extensibility Inventory app is used to track who last made changes to the specific extension, and whether it's been exported/imported. This app is the master library of all extensions made within the extensibility framework and helps you view associations or dependencies between them.
