Skip to Content
Author's profile photo Jocelyn Dart

Fiori for S/4HANA – Adapting Terminology in SAP Fiori apps via Key User tools

I’m part of the SAP S/4HANA Regional Implementation Group who assist customers implementing the latest SAP S/4HANA releases. One of the questions we are asked from time to time is how to override the texts – such as field labels, table and column headings – in delivered SAP Fiori apps. In this blog you will learn how to use in-app Extensibility with the Key User tool Adapt UI to override texts. 

So you want to use a SAP Fiori app in SAP S/4HANA, the app fits with your business process, business role and the task… but all that SAP terminology is getting in the way of user adoption.  Your users just don’t think in SAP terms. They need the texts adjusted to fit how they think about their work.

You need to override the texts – such as field labels, table and column headings – in the delivered SAP Fiori apps. Typically you might need to do this if:

  • You need to override SAP standard terminology with industry terms, e.g. change Product to Article
  • You need to override SAP standard terminology with organization-specific terms, e.g. change Old Material Number to Our Company Reference
  • You need to add a new language dialect to meet local market standards, e.g. override US English with Australian English.

There are 3 main options for adapting texts for SAP delivered Fiori apps:

  1. As an authorized business expert or functional lead, using in-app Extensibility with Key User tools
  2. As a developer, using Classic Extensibility to adapt texts via a Metadata Extension
  3. As a developer, using Classic Extensibility to adapt texts via a SAPUI5 Extension Project

It’s worth noting that the 3 approaches for adapting texts can be used together in a complementary way depending on the type of app and the texts to be changed. For example you might use Key User tools to adapt the static texts of an app, and a metadata extension to adjust dynamic texts.

IMPORTANT: Regardless of which approaches are used, all changes are made in the Development system and transported through the system landscape to the Production system as per the usual SAP change and transport management process.

In this blog you will learn how you can do this using in-app Extensibility with the Key User tool Adapt UI to override texts. Watch for an upcoming blog where you will find out how to use metadata extensions for texts. If you need this urgently then you will find sufficient information in the SAP Help Portal on Creating a MetaData Extension, on Annotation Propagation, and on Adding Translated Text to a MetaData Extension.  And of course SAPUI5 Extension Projects have already been covered in many blogs and in official documentation including the localization concept used for i18n.properties files.

TIP: You can also enable UI Adaptation in your own custom Fiori apps as explained in UI Adaptation at Runtime: Enable your App.

When to Adapt Texts via Key User tools 

 

In-app Extensibility via Key User tools enables business experts, functional leads, and other authorized persons to adapt a Fiori app. Certain changes, such as overriding texts, can be made when you are in the Fiori app itself.  This approach is called runtime UI Adaptation. If you are authorized, you can access the Adapt UI option in your Fiori Launchpad Me Area.

You can change static texts using runtime UI Adaptation in Fiori elements apps, and in freestyle Fiori apps that support flexibility services.

In-app Extensibility via Key User tools is the easiest and quickest approach to use when available, e.g. for SAP Fiori apps of application type  Fiori elements, and for SAP Fiori apps of application type freestyle Fiori (SAPUI5) apps that support SAPUI5 Flexibility Services.

Dynamic texts, such as the count of items at the top of table, are a bit more involved.  And freestyle apps don’t always provide full flexibility. Even with Fiori elements apps, not every text is covered by UI Adaptation – at least not yet (which texts are covered has been growing with new releases of SAP S/4HANA and SAP S/4HANA Cloud).  Where UI Adaptation cannot be used, in SAP S/4HANA a classic extensibility approach may also be needed, depending on which texts you need to adjust.

TIP: Check the App detail in the Fiori Apps Library to find the application type. The Application Type field tells you what framework was used to build the app and you can then quickly determine which extension options are likely to be available.

Classic Extensibility can be used as a fallback approach when In-app Extensibility is not available or doesn’t provide access to change all the texts you need to adjust, e.g.:

Options for extending SAP Fiori apps are explained in more detail in the SAP Guided Answer on How to extend a SAP Fiori app in SAP S/4HANA.

Prerequisites for Adapting Texts via Key User tools 

There are 3 prerequisites:

  • The Adaptation Transport Organizer must be configured
  • Optionally (and recommended) a workbench transport request can be created and assigned to the user to collate their changes
  • The user must be authorized to perform UI Adaptation at runtime

As an administrator you control in-app extensibility transports via the Adaptation Transport Organizer.  You can also use the Fiori app Extensibility Inventory to monitor and act on Key User extensions created by others.

You use Transaction S_ATO_SETUP to set up the Adaptation Transport Organizer in the Development system. Here you can control the transports, e.g. assign a namespace or prefix to all changes.

More information on Configuring Adaptation Transport Organizer can be found in the SAP Help.

TIP: You will also find some additional details in SAP Note 2283716 – S/4HANA Key User Application is not configured

The user who will perform the changes is recommended to be assigned to a workbench transport request. You can create a workbench request and assign it to the relevant key user in transaction SE01.

NOTE: Alternatively changes can be saved to a Local Object. However if the changes are to be transported, as an administrator you will need to reassign them later to a workbench transport request.  Reassigning objects from Local Objects to  is more effort, so you are recommended to create a transport request up front.

The user id that will perform the changes must be authorized to make UI Adaptations.  You authorize a key user by assigning them the security role SAP_UI_FLEX_KEY_USER in the security role maintenance transaction PFCG.

Process for Adapting Texts via UI Adaptation at runtime

You start by logging on to the Fiori Launchpad in the master language that you want to make your changes.

Navigate to the App that you want to change, e.g. using the Home Page tiles, or the App Finder.

The following examples are shown using the Fiori app Product Master / Manage Products

Once you are in the app, navigate to the screen that holds the texts that you want to change.

Open the Me Area and press the Adapt UI icon.  Remember you will only see this button if you are authorized to perform UI Adaptation as explained in the prerequisites section.

The app will open UI Adaptation mode.

TIP: If you need to navigate within the app to get to the text you need to change, simply swap to Navigation mode (click on the Navigation button at the top of the screen). E.g. You might need to select a row to get a button to activate so that you can change the text of the button. Once you have reached the text you need to change, swap back to UI Adaptation mode (click on the UI Adaptation button at the top of the screen) ready to change the texts.

Which texts you can change depends on your SAP S/4HANA (or SAP S/4HANA Cloud) version.  In SAP S/4HANA 1709 you can change:

  • Table Headings
  • Column Headings
  • Group labels
  • Field labels

TIP: You can also make other changes as well in UI Adaptation mode depending on your SAP S/4HANA version.  In SAP S/4HANA 1709 you can:

  • change the sequence in which buttons are arranged in a toolbar
  • hide tables
  • hide thumbnail images
  • hide header groups
  • add/hide sections
  • add/hide groups (within a section)
  • add/hide fields (within a group or section)
  • change the order of fields, field groups, and sections

While you are in UI Adaptation mode, select and overtype the text you want to change.

Once you have finished making your changes press Publish to save those changes.

When you publish you will then be asked to assign your changes to your Transport Request. Use the dropdown on the Transport field to find suitable transport requests you can use, and then just press Ok to confirm.

TIP: You can also use the option Local Object if your administrator will take charge of reassigning your changes to a transport request. This is more work for the administrator so it’s worth asking them for a transport request before you start. The transport request is a Workbench Request (i.e. cross-client). Technically the transport objects are of object type LRCD (LRepository Client-Dependent content).

IMPORTANT: *** DO NOT ATTEMPT to do multiple screens at once *** 

Each screen has its own set of texts, and each screen may technically be a different app.  Fiori navigation is intentionally seamless which means as a user it can be difficult to tell if the current screen is from the same or a different app).

Use the Exit button (in the top right hand corner next to the Publish button) to exit UI Adaptation mode between screens.  Navigate to the screen and text you need to change, then use the Adapt UI icon in the Me Area to open the current screen in UI Adaptation mode.

Repeat the process of overtyping texts.  You can make any other UI Adaptation changes at the same time.  In the example below as well as changing texts, you can see that the following changes have been made:

  • added a new field group called Admin Data
  • moved some fields into the Admin Data field group
  • hidden a field called Authorization Group
  • added a field Net Weight.

Finish by publishing the screen and save it to your transport request just as you did previously.

TIP: If you change your mind or make a mistake, you can always use the Reset button (next to the Publish button) to set the screen back to the original texts.  You can use the Reset button at any time to reset the changes of the current screen – even after you have published your changes!

Once you are finished all you need to do is let your administrator know that your changes are ready to be transported.

IMPORTANT: If you are working in multiple languages, you might need to translate these texts as well.   You will notice that after changing the texts that your adapted texts have changed all languages.  You can see this by logging in as the same user in a different language (in the examples you can see German).

TIP: You can find more on UI Adaptation in the SAP Help Portal in the User Guide for SAP Fiori Launchpad in the section Adapting Fiori Apps at Runtime > Making UI Changes

You will find more on how to translate these texts in this blog Fiori for S/4HANA – Translating Terminology in SAP Fiori apps via Key User tools.

Becoming a SAP Fiori for SAP S/4HANA guru

You’ll find much more on our SAP Fiori for SAP S/4HANA wiki

Brought to you by the S/4HANA RIG

Assigned Tags

      17 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Thomas Schneider
      Thomas Schneider

      Great blog!

      It might be worth to mention, that you can do the same in SAP S/4HANA Cloud. And event better: You can skip the part "Prerequisites for Adapting Texts via Key User tools" in SAP S/4HANA Cloud, because this is already preconfigured. Just assign the Extensibility catalog to a business role of a user that should do the text adaptations.

      Best regards, Thomas

       

       

       

      Author's profile photo Vimal Mohan Jain
      Vimal Mohan Jain

      Hi Jocelyn,

      This is a very informative post. I had one question. Is it possible to create multiple adaptations of the same UI so that the adaptation which is presented to the user depends on his/her assigned role(s).

      Best regards, Vimal

       

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Vimal, It wasn't then. With SAP S/4HANA 1909 this should now be possible - and something I am exploring.

      Author's profile photo Pawan Kalyan K
      Pawan Kalyan K

      Hello Jocelyn Dart ,

      I have created custom fields using Custom Fields and Logic App and have added the same in Manage Purchase Contract App. All things have moved correctly to Quality systems. Everything is fine. Now we have created one more custom field and have added this new field to Manage Purchase Contract. But Post moving this Transport, Changes are not reflecting in UI of Quality. We have repeated addition of this new field again using Key User - UI Adaptation and transported this to Quality. But still no luck . Can you please suggest me what might have gone wrong?

       

      Thank You Very Much...!!!

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Pawan

      Strange...did you check the custom field was enabled for Manage Purchase Contract in the Custom Fields and Logic app?

      If not, hopefully you raised a SAP Incident.

       

      Author's profile photo Chaitra A
      Chaitra A

      Hello Jocelyn,

      The blog was very informative..

      Can freestyle Fiori apps be extended using In-app extensions and key user tools be used for UI adaptions of freestyle Fiori apps?

       

      Best Regards,

      Chaitra

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Chaitra, Yes they can if they have been written to accomodate SAPUI5 Flexibility services. There's some pointers on how to about this in Oliver Graeff's blog https://blogs.sap.com/2020/06/25/ui5-flexibility-for-key-users-always-at-your-service/

      Author's profile photo Amit Kumar Singh
      Amit Kumar Singh

      Hello Jocelyn Dart,

      Thank you for a wonderful blog.

      I used CFL app to add the custom fields in "Manage Business Partner App", Supplier Core View. I was able to move the changes to QA as well. However, the issue I am facing is, we have two client in development System: 010 and 020, I made the changes in 010 but the changes are not reflecting in 020 even though the changes are in a workbench TR which is cross-client.

      Is there anything I am missing?

      Thank you!

      Regards,

      Amit Singh

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Amit, Thanks for the encouragement! Re your issue, it may just be caching. So try clearing all the caches including your web browser cache and see if that sorts it. If you are  using Chrome browser, I would also suggest using an Incognito window... Chrome  is a hoarder 😉

      Author's profile photo Subhadip Bose
      Subhadip Bose

      Adapt%20UI%20-%20Transport%20issue%20in%20Testing%20ClientHI Jocelyn Dart -

      Adapt UI - Transport issue in Testing Client

      Thank you for the excellent blog!! 

      I do have a situation though and would like to seek some advice in relation to that :

      I have used the CFL app to add Z fields to the Delivery line item business context - to get it extended into the API and BAPI's and populate the Z fields in the LIPS table extension using Interfaces. Now my requirement is that I would like to add them to the Manage Outbound Delivery app and have been able to do it successfully at the Delivery Line item level.

      The only problem is, when I try to publish and put it in a TR, the popup window is not showing up any TR, although I've open workbench TR assigned to me. The catch here is I'm doing this Runtime Adapt UI in a testing client and not the golden client (dev client) which is the origin for my Transport Management. The limitation here is the Adapt UI cannot be done in the Dev client, because we are not allowed to create data in the Dev client and hence cannot navigate to the item level screen in this case.

      I know that there used to be an easy solution for this scenario in Screen Personas where we can create Flavors in Testing client, setup a "push to client xxx" and then transport pushed objects from the Dev client to a TR.

      What is the equivalent solution for a Runtime Adaptation (Adapt UI) in this case?

       

      Thanks,

      Subhadip

      Author's profile photo Maxime Dere
      Maxime Dere

      Hello Subhadip Bose

      Did you found a suitable workaround for publishing the Adapt UI to Q and P systems ?

      The limitation here is the Adapt UI cannot be done in the Dev client, because we are not allowed to create data in the Dev client and hence cannot navigate to the item level screen in this case.

      Author's profile photo Silvia Govednik
      Silvia Govednik

      Hi Jocelyn!

      Thanks for the great blog! I was wondering if there are any restrictions when using hub deployment (S/4 OP 2021) regarding Key User Tools?

      Many thanks and kind regards,
      Silvia

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Silvia, The deployment mode of your Fiori Frontend server should make no difference to creating extensions. Standalone/hub mode does require some duplication of security authorisations effort in assigning changes, eg when creating app variants.
      Hope that helps

      Author's profile photo Morne Smart
      Morne Smart

      Hi Jocelyn, thanks for some great Fiori blogs and podcasts. Do I select a customising or workbench transport when publishing UI Adaptation? The "Select a Transport" dropdown selection offers both customising and workbench requests.  I have an S/4 HANA 2021 FPS01 hub deployment. The UI adaptations are in the development client with the intent of transporting through the tiered landscape.

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Morne. Generally speaking from a transport perspective  key user changes are considered similar to configuration so usually a customizing request is usually the best option.

      The exception is custom fields and logic, custom CDS views, and custom analytical queries as those all result in development objects, such as tables and CDS views, and those should be on a development request.

      Hope that helps

      Author's profile photo Morne Smart
      Morne Smart

      Thanks Jocelyn - I'll try the customising request as you recommend.

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Ah... you may need a  workbench request if you are publishing an App Variant - as that creates a new development object. When you press Publish it should tell you if the transport request is acceptable anyway.