Skip to Content
Technical Articles
Author's profile photo Leslie Castle

SAP Fiori for SAP S/4HANA – App Variants are the EASY way to control App Features

As a UX specialist in the SAP S/4HANA Regional Implementation Group, I’m privileged to work with many of our SAP S/4HANA customers.  Many of these customers have been working with SAP S/4HANA for many years and have successfully used the App Variants feature to adapt the user interface for SAP Fiori apps for other users.

Have you ever come across an SAP Fiori app with loads of great functionality, however it does more that you want for certain users? Wouldn’t it be great if, for example you could just remove one or more of these features? You could ask a developer to copy the SAP Fiori App in question, however, there is a MUCH easier, quicker, and cheaper way to achieve the same objective – App Variants.

Good news! There is now new and improved tooling so you can learn how as a business expert to adapt the UI of an app for other users.

You can refer to the following for more information:

In this blog post we will cover the following topics:

  • What are App Variants
  • Who creates App Variants
  • What can I change with an App Variant
  • Example Use Case for an App Variant
  • Impact of App Variants on your business users
  • How to create an App Variant
  • How to assign an App Variant to your Business User
  • Test your App Variant
  • App Variants – Prerequisites
  • App Variants – Where to create them
  • App Variants – Transport options
  • App Variants – FAQ

What are App Variants

App Variants are apps that you create based on UI changes that you as a key user made via Adapt UI adaptation. Instead of saving your changes in your original app, you save them in a new app.

The new app is called an “app variant”, literally a variation of the original app. You can assign your new app variant to nominated business users via their business role(s). So you can assign the original app to some users, and your app variant to a different set of users.

Think of it as getting 2 (or more) apps for the price of one!

Who creates App Variants

Key users create App Variants using Adapt UI (aka UI Adaptation). Key users are users who are authorized to make changes on behalf of other users. Refer to SAP Fiori for SAP S/4HANA – What is Key User Extensibility and Who are your Key Users

What can I change with an App Variant

Almost anything you can do with Adapt UI you can save as an App Variant. For example, you can remove buttons, relabel fields, expose hidden fields, hide sections, etc.

IMPORTANT: What you can do with Adapt UI depends on your SAP S/4HANA release and the floorplan of the app. For example: in an Overview Page app you can make changes to cards; in a Manage app (i.e. List Report floorplan) you can make changes to the filter and table areas; in an Monitor app (i.e. Analytical List Page floorplan) you can make changes to filters, tables, and charts; and so on.

You optimize the UI of an app and then make the adapted app available to other users. One of the most common uses of App Variants is to remove features you do not want certain users to have.

In this blog post, you will see how to use Adapt UI to create an App Variant as a Key user and then assign this variant to the relevant business roles using the tool – Launchpad App Manager. For more information on the Launchpad App Manager, refer to Adapting Launchpad App Descriptor Items.

Example Use Case for an App Variant

Using SAP Fiori App F1060A Supplier Invoices List (Version 2) as an example, we are going to enhance this using the Adapt UI as a Key User. As a Key User, you don’t want all users to be able to delete invoices.  There are some users who you only want to be able to view the invoices. You can use Adapt UI to remove the ‘Delete’ button to avoid users accidentally deleting invoices:

Example%20User%20Case%20for%20an%20App%20Variant

Example User Case for an App Variant

Impact of App Variants on your business users

After creating an App Variant, the app variant appears like a new app – similar to the original app and with your changes applied. For the example use case you can see that the ‘Delete’ button is not shown as expected.

Impact%20of%20an%20App%20Variant

Impact of an App Variant

How to create an App Variant

Adapt UI is a special feature users can use to make changes. Refer to Adapting SAP Fiori UIs at Runtime – Key User Adaptation.

Key users use Adapt UI to make common changes to SAP Fiori apps, such as exposing standard (optional, by default hidden) SAP fields or custom fields. This allows a key user to coordinate one or more teams of end users. In this role, you also want to make sure that they can work efficiently. This approach also allows you to make changes in a no-code and upgrade-safe way without the need for a developer thereby saving time.

  • Logon as a key user and select the app you want to change – in this case select the tile Supplier Invoices List
  • When you are in the app, as a Key User, you have the ‘Adapt UI’ feature available (only accessible to Key Users) in the User Actions menu. You can also confirm the original SAP Fiori App ID in the ‘About’ option. Click on ‘Adapt UI’ to enter the UI adaption mode:
  • You are now in the UI Adaption tab. Ensure you can see what you want to change. For this use case you need to see the Delete button clearly. Important: If you need to, you can use the Navigation tab to move to the area of the app that you want to change, then swap back to the UI Adaptation tab to make your changes.
  • Using the UI Adaptation tab, adapt the UI by removing the Delete button. Select the button and press the “-“remove option.
  • Check the button is no longer displayed. Now you can save your changes as a new app variant.From the shell bar, at the top of the launchpad, you ‘Activate’ a new version.
  • From the shell bar, click on ‘Save As’ to create a new App Variant
  • Give your App Variant a title. If you wish, you can choose an appropriate Icon
  • Now you are presented with the app ID of the newly created App Variant. Click ‘Copy ID and Close’ to copy the app ID to the clipboard. IMPORTANT: You will need this app ID in the next steps so keep a note of it:And that’s it! Now you need to assign your app variant to your users.

How to assign an App Variant to your Business User

This step is typically done by your launchpad content administrator. You will need to understand the basics of SAP Fiori catalogs. That is:

– Technical catalogs hold original entries for launchpad app descriptor items (i.e. tile/target mapping combinations that control what the tile looks like and where selecting the tile takes you). Technical catalogs are client-independent

– Business catalogs hold references to the original entries in technical catalogs. Business catalogs are used to collect and assign tile/target mappings to business roles. Business catalogs are client-specific.

You will need a custom technical catalog to hold your app variant details.  You can either use an existing catalog OR create a new catalog.

– Create an entry in your custom technical catalog for your App Variant

– Reference your App Variant entry in a business catalog. Use a business catalog that is assigned to  the business role of your user.

You can see how this works for our example use case:

  • Using the Launchpad App Manager, you create a new technical catalog Z_TC_SUPPLIER_INVOICE_APPS. You use the ‘Copy from other catalog’ option to copy the tile/target mapping combination for the original Supplier Invoices List app to your custom technical catalog.  For the example use case you would copy SupplierInvoices-list1 tile and target mapping from SAP_TC_PRC_COMMON.
  • Hint: How do you know what to copy? Remember the About option in the section ‘How to  create an App Variant’. You can search for the original entry using the SAP Fiori App ID.
  • Your results should look as follows. Click on ‘Duplicate’

  • At this point, you now have 2 identical launchpad app descriptor items in your custom technical catalog. There are 2 entries with:
    – Semantic Object = SupplierInvoice
    – Action = list1
  • VERY IMPORTANT: You will need to adjust the action of your duplicated entry so that you can tell the original app and the app variant apart. Change the Action so you have a unique action for your new app variant. For example, list1DisplayOnly.                              
  • You need to adjust the tile and target mapping details of your duplicated entry to point to the app variant id. In the duplicate launchpad app descriptor item, replace the SAPUI5 component id with your app variant id, i.e. the app variant id that you copied during Adapt UI.

 Adjust the SAP Fiori ID and Transaction Code so you can tell it is a custom app variant.

– Hint: For ease of monitoring please keep the values of the SAP Fiori id and Transaction Code fields identical. Using transaction code to hold the SAP Fiori ID was introduced with SAP S/4HANA 2021. In SAP S/4HANA 2020 you will only maintain the SAP Fiori ID.

– Hint: For ease of support, it helps to have some similarity between the original app id and  the app variant. E.g. Original app = F1060A, App Variant = F1060A_V_ReadOnly. Consider having a naming convention.

Fill the Target Application Title with a suitable title so you can tell the duplicate from the original. For example, Supplier Invoices List – Display Only. IMPORTANT: Remember your users will see this title in navigation links.

  • So you can tell the tile for the original app and the tile for the app variant apart, you need to change the tile details as well. Adjust the Tile definition to add a subtitle, e.g. “Display Only”. Save your technical catalog.
  • Now that you have maintained the original tile/target mapping entries for your app variant in the technical catalog, you need to reference these new entries into your custom business catalog. You need to do this so that the app variant can be assigned via the business catalog to the business role. You do this step in the Launchpad Content Manager. For example, you could create an empty Business Catalog Z_BC_AP_OVERVIEW.  You then use the “Add Tile/Target Mapping” option to reference the entries from your technical catalog Z_TC_SUPPLIER_INVOICE_APPS into your custom business catalog Z_BC_AP_OVERVIEW.

  • Finally, you need check your business catalog is assigned to a business role. For example, in transaction PFCG, set up a business role called Z_BR_AP_PROC. Assign your custom business catalog Z_BC_AP_OVERVIEW to this role. You can do this in transaction PFCG menu tab or, if you are using an existing business role, you can add the catalog in the Roles tab of the Launchpad Content Manager.

  • Assign your business role Z_BR_AP_PROC to your key user and business user. Hint: You assign the role to your key user so that they can make further adjustments to the app variant, if needed, and so that, after testing, they can Publish the app variant to a transport request.

Test your app variant

  • Logon to the SAP Fiori Launchpad as your key user and use the App finder to find your new App Variant tile:

  • Click on the tile to start the app, you will see the ‘Delete’ button is missing (#1), ‘Adapt UI’ is still available as expected (#2):

 

  • Via the User Actions->About menu option, check the SAP Fiori ID is as expected – ZF1060A_DISPLAY_ONLY

  • Logon to the SAP Fiori Launchpad as your business user and use the App finder to find your new App Variant tile. You will see the ‘Delete’ button is missing (#1), ‘Adapt UI’ is NOT available as expected (#2)

App Variants – Prerequisites:

For App Variant Pre-requisites – refer to App Variants – Pre-requisites

  • From SAP S/4HANA 2020, all the main launchpad content (including Launchpad App Manager) and layout tools can be found in the Fiori Launchpad of the Fiori Administrator role. This role (Z_FIORI_FOUNDATION_ADMIN) is generated by task list SAP_FIORI_FOUNDATION_S4, refer to Overview of tools for maintaining custom launchpad content and layout for more information.
  • Your key user must have role SAP_UI_FLEX_KEY_USER (or an equivalent custom role) assigned in your development system, so that they can use Adapt UI. IMPORTANT: Your key user does not need to have this authorization in your production environment.
  • Your key user must be assigned a transport request so that they can publish the app variant ready for transport.

Your technical team need to decide up-front whether Adapt UI transport requests will be client-independent (workbench request) or client-specific (customizing request). Once they have decided, all Adapt UI requests must use the same approach – otherwise you will receive errors on transport (e.g. “Sorry a technical error occurred”)

App Variants – Where to Create them

You make your UI changes in a development system and publish them to transport them to the production system. They can be transported via ABAP Change and Transport Management, similar to configuration.

App Variants – Transport options

You can publish the App Variant from Adapt UI using the Publish feature.  You will be asked to assign the change to a transport. Your administrator will then transport the target mapping and the tile through to the other systems in your landscape, as usual. Refer to Publishing App Variants.

Frequently Asked Questions

Can I create more than one App Variant per app?

Yes, you can create as many app variants as you need

Something’s not working. How can I get help from SAP?

Check the SAP Fiori launchpad user guide in the SAP Help Portal for section: Something Isn’t Working like It Should?

If you still can’t resolve it, raise a SAP Incident as usual. You can assign the application component CA-UI5-FL-RTA.

Can I use App Variants for SAP GUI transactions?

No, however for SAP GUI transactions you can use SAP Screen Personas for a similar result to Adapt UI. Find out more in OpenSAP course Adapting the UI in SAP S/4HANA Cloud Using SAP Screen Personas Adapting the UI in SAP S/4HANA Cloud Using SAP Screen Personas

Becoming an SAP Fiori for SAP S/4HANA guru

You’ll find much more on the community topic page for SAP Fiori for SAP S/4HANA

Other helpful links in the SAP Community:

Brought to you by the SAP S/4HANA Customer Care and RIG.

Assigned Tags

      14 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Peter Neu
      Peter Neu

      Is it also possible to e.g. set a different value for document type and make it display only so the app variant will only create documents of the intended document type?

      Author's profile photo Jocelyn Dart
      Jocelyn Dart

      Hi Peter,

      Ok so there may be several parts to this... depending on what you want to do.

      if you want to set a specific value for the document type in the filter bar you can use SAP Fiori for SAP S/4HANA – Yes Key Users can create default app settings for filters, tables, and charts

      If you want to restrict what document types a user can use then usually authorizations is the best option as explained in SAP Fiori for SAP S/4HANA –How to restrict filter values in SAP Fiori apps

      The document type in the filter bar and the document type in the Create option typically use the same authorizations. You can check the authorizations for the SAP Fiori app by reviewing the authorization objects assigned to the OData Service in transaction SU24 as per Getting back to Standard Proposals with SU24 Authorisation Variants

      Author's profile photo Peter Neu
      Peter Neu

      Thank you for the answer but it´s not the intended use. I have a developer colleague investigate the requirement.

      Author's profile photo Jocelyn Dart
      Jocelyn Dart

      Ok if it’s a more complex extension then your developer should consider an Adaptation Project created using Business Application Studio. That is the main way to  create more complex extensions.  Remember though that any of those changes will affect the app for all users.

      Author's profile photo Shai Sinai
      Shai Sinai

      Thanks for the detailed guide.

      Regarding the example use case, just out of curiosity, since I'm not familiar with the Supplier Invoices List app, isn't it possible to control the Delete button via authorizations?

      Author's profile photo Jocelyn Dart
      Jocelyn Dart

      Hi Shai, Authorizations will prevent them deleting the invoice by giving a "not authorized" error message when they press Delete.  App Variant prevents them from having a button to press at all. In practice, it's a good idea to do both.

      Author's profile photo Sriram Rekapalli
      Sriram Rekapalli

      Very helpful indeed. Thanks for the great blog as always !

      One question - Is this feature available for all Fiori apps or are there any limitations based off of the type of Fiori app, UI version etc to avail this feature?

      Author's profile photo Jocelyn Dart
      Jocelyn Dart

      Hi Sriram,

      Great question!

      Adapt UI and App Variants depend on SAPUI5 Flexibility Services being provided in the app. This happens automatically for all apps using Fiori Elements floorplans, and is our standard approach for all new apps in the more recent S/4HANA releases, including for freestyle apps (those marked with app type SAP Fiori (SAPUI5) in the Fiori apps library.

      You may find some early apps - e.g. those freestyle apps initially developed in 1511/1609/1709 - are missing these features because the SAPUI5 Flexibility Services did not exist when they were created.

      If you come across these, the correct approach is to raise a SAP Incident and state your extension use case. This can then be considered by the product owner.

      P.s. The draft/activation feature is new in S/4HANA 2022. However the Adapt UI feature has been available since 1511 and App Variant approach has been around for many releases now.

      Best

      Jocelyn

      Author's profile photo Sriram Rekapalli
      Sriram Rekapalli

      Hi Jocelyn,

       

      Thanks much for your elaborated response. Noted.

       

      Regards

      Sriram

       

      Author's profile photo Parishikta Shrivastav
      Parishikta Shrivastav
      Hi Jocelyne,
      Regarding SAPUI5 Flexibility Services being available automatically for all Apps using Fiori Elements floorplans, unfortunately we have recently come across a situation at one of our clients where this is not so.
      We would expect the UI5 Flexibility functionality which is available in S/4 HANA 2020 release is automatically available in 2022 rel. e.g. Maintain Bill of Material App F1813 this feature is available in S/4HANA2020 SP01 but not in S/4HANA 2022 SP01 (as we understand from SAP the feature is being developed *update as of June 2023 ). This is just one of the apps, but it is possible we have similar issue for other apps too.
       It would help if we have a list from SAP for this feature availability per app or if this is mentioned in apps library .
      @Leslie,
      Great concise blog!
      Regards
      Parishikta
      Author's profile photo Jocelyn Dart
      Jocelyn Dart

      Hi Parishikta

      Hmmmm... can you be more specific? Did you raise a SAP Incident for this?

      SAPUI5 Flexibility Services is part of the Fiori elements floor plans... and has been there since around late 1610 feature pack stacks.  So it is available in all releases.

      What has changed between releases are the capabilities provided by SAPUI5 Flexibility services and these are documented in the UI5 SDK change logs.... mostly there are improvements.

      E.g. Being able to set default settings for tables in an Object Page was one of the more recent additions.

      If you can give me some details I can follow up with the app owner and Fiori elements product owners

      Best

      Jocelyn

      Author's profile photo Parishikta Shrivastav
      Parishikta Shrivastav
      Hi Jocelyn,
      Thanks for your response.
      Yes indeed we raised an incident with SAP for the app/issue, and after analysis SAP came back with following response - Bill of Material doesnt support SaveAs of app variant as of now using AdaptUI feature from new UI versions. the enablement is being developed.
      Our requirement is to have a display only variant of the app F1813 using AdaptUI , but while saving the app variant we get error "Versions Model for reference 'pise.mi.plm.bom' and layer CUSTOMER were not initialized".
      Rgds
      Parishikta
      Author's profile photo Kevin Ger
      Kevin Ger

      Thank you for this blog! One question we have, when SAP upgrades the standard app, would it affect the app variant we have created through Adapt UI? Will we need to create a new app variant from the newly upgraded app to contain the new features?

      Author's profile photo Leslie Castle
      Leslie Castle
      Blog Post Author

      Hi Kevin

      Yes App variants are upgrade-safe - this is why they are part of clean core.

      Usually SAP does not make changes to apps (it’s quite rare) - instead we may deliver a successor app. In that case the app may be significantly different and you would need to evaluate whether you need to create an app variant for the new app.

      We do sometimes make changes to floorplans such as Fiori elements and these improvements are automatically applied to existing apps using that floorplan - eg in S/4HANA 2022 export to PDF and to Google Sheet was added to list reports. Those floorplans respect any existing app variants.

      Hope this helps.

      Leslie