Skip to Content
I am using “Adapt UI” button to try to adapt some standard Fiori UI.

To my surprise, this button is not available in some system, although all necessary authorizations have been granted to my user:
I debugged the button rendering logic in the same where the button display is working correctly, and find the plugin sap.ushell.plugins.rta is responsible to manage this button.
Where does this plugin come from? From the code below, we know the plugin configuration is stored in window.sap-ushell-config.

This server side configuration is hard coded in launchpad html file, variable sServiceSideConfig in line 76 and converted to JSON object in line 79.

Paste the content of sServerSideconfig to notepad:

\x7b\x22ui5\x22\x3a\x7b\x22resourceRoots\x22\x3a\x7b\x22\x22\x3a\x22\x2fsap\x2fbc\x2fui5_ui5\x2fui2\x2fushell\x2fresources\x2f\x7e20161212025200\x7e\x22\x7d\x7d,\x22ui2CacheBusterToken\x22\x3a\x22\x7e4A3375BD016D83256D071D17363AC0EE\x7eC\x22,\x22ui5CacheBusterToken\x22\x3a\x22\x7e20161212025200\x7e\x22,\x22cacheBusting\x22\x3a\x7b\x22cacheBusterToken\x22\x3a\x22\x7e4A3375BD016D83256D071D17363AC0EE\x7eC\x22,\x22patterns\x22\x3a\x7b\x22\x5e\x5c\x2fsap\x5c\x2fbc\x5c\x2fui5_ui5\x5c\x2f\x28\x5b\x5e\x2f\x3f\x23\x5d\x2a\x5c\x2f\x5b\x5e\x2f\x3f\x23\x5d\x2a\x29\x28\x5b\x3f\x23\x5d.\x2a\x29\x3f\x22\x3a\x7b\x22replacement\x22\x3a\x22\x2fsap\x2fbc\x2fui5_ui5\x2f\x241\x2f\x5bCacheBusterToken\x5d\x242\x22,\x22order\x22\x20\x3a\x20100\x7d\x7d\x7d,\x22bootstrapPlugins\x22\x3a\x7b\x22plugin_1\x22\x3a\x7b\x22component\x22\x3a\x22fin.central.user.defaultparameter\x22,\x22url\x22\x3a\x22\x2fsap\x2fbc\x2fui5_ui5\x2fsap\x2ffin_acc_userpar\x2f\x7eD34995E7A1B31A8749F9FAEB5D7D7336\x7e5\x22,\x22manifestUrl\x22\x3a\x22\x2fsap\x2fbc\x2flrep\x2fcontent\x2f\x7e20161229074544.1119540\x7e\x2fapps\x2ffin.central.user.defaultparameter\x2fapp\x2fsap\x2ffin_acc_userpar\x2fmanifest.appdescr\x22,\x22self\x22\x3a\x7b\x22name\x22\x3a\x22fin.central.user.defaultparameter\x22,\x22url\x22\x3a\x22\x2fsap\x2fbc\x2fui5_ui5\x2fsap\x2ffin_acc_userpar\x2f\x7eD34995E7A1B31A8749F9FAEB5D7D7336\x7e5\x22\x7d,\x22asyncHints\x22\x3a\x7b\x22libs\x22\x3a\x5b\x7b\x22name\x22\x3a\x22sap.m\x22\x7d,\x7b\x22name\x22\x3a\x22sap.ui.core\x22\x7d\x5d,\x22requests\x22\x3a\x5b\x7b\x22name\x22\x3a\x22sap.ui.fl.changes\x22,\x22reference\x22\x3a\x22fin.central.user.defaultparameter.Component\x22\x7d\x5d\x7d,\x22config\x22\x3a\x7b\x22sap\x2dushell\x2dplugin\x2dtype\x22\x3a\x22UserDefaults\x22\x7d\x7d,\x22plugin_2\x22\x3a\x7b\x22component\x22\x3a\x22sap.dfa.help.utils.adapters.fiori\x22,\x22url\x22\x3a\x22\x2fresources\x2fsap\x2fdfa\x2fhelp\x2futils\x2fadapters\x2ffiori\x22,\x22self\x22\x3a\x7b\x22name\x22\x3a\x22sap.dfa.help.utils.adapters.fiori\x22\x7d,\x22config\x22\x3a\x7b\x22product\x22\x3a\x22SAP_S4HANA_CLOUD\x22,\x22version\x22\x3a\x221702\x20500\x22,\x22editor\x22\x3a\x22false\x22,\x22system\x22\x3a\x22\x22\x7d\x7d,\x22plugin_3\x22\x3a\x7b\x22component\x22\x3a\x22sap.ushell.plugins.rta\x22,\x22self\x22\x3a\x7b\x22name\x22\x3a\x22sap.ushell.plugins.rta\x22\x7d,\x22asyncHints\x22\x3a\x7b\x22libs\x22\x3a\x5b\x7b\x22name\x22\x3a\x22sap.ui.dt\x22,\x22lazy\x22\x3atrue\x7d,\x7b\x22name\x22\x3a\x22sap.ui.core\x22\x7d,\x7b\x22name\x22\x3a\x22sap.ui.rta\x22,\x22lazy\x22\x3atrue\x7d,\x7b\x22name\x22\x3a\x22sap.m\x22\x7d\x5d,\x22requests\x22\x3a\x5b\x7b\x22name\x22\x3a\x22sap.ui.fl.changes\x22,\x22reference\x22\x3a\x22sap.ushell.plugins.rta.Component\x22\x7d\x5d\x7d,\x22config\x22\x3a\x7b\x22\x22\x3a\x22\x22\x7d\x7d\x7d,\x22startupConfig\x22\x3a\x7b\x22version\x22\x3a\x221.2.01\x22,\x22client\x22\x3a\x22381\x22,\x22dateFormat\x22\x3a\x222\x22,\x22tislcal\x22\x3a\x5b\x5d,\x22email\x22\x3a\x22\x22,\x22firstName\x22\x3a\x22William\x22,\x22fullName\x22\x3a\x22William\x20Intsales\x22,\x22id\x22\x3a\x22CB9980001995\x22,\x22language\x22\x3a\x22EN\x22,\x22languageBcp47\x22\x3a\x22en\x22,\x22lastName\x22\x3a\x22Intsales\x22,\x22numberFormat\x22\x3a\x22X\x22,\x22rtl\x22\x3afalse,\x22system\x22\x3a\x22XT4\x22,\x22theme\x22\x3a\x22sap_belize\x22,\x22timeFormat\x22\x3a\x220\x22,\x22timeZone\x22\x3a\x22UTC\x22,\x22welcomeMessage\x22\x3a\x22\x22,\x22themeRoot\x22\x3a\x22\x2fsap\x2fpublic\x2fbc\x2fthemes\x2f\x7eclient\x2d381\x2f\x7ecache\x2dcLcsqv7IJA6wgNr.LPCOPw41QWo\x22,\x22seed\x22\x3a\x22tTRKkR5.OYtaSB2P\x2dPs1ZA\x22,\x22userProfile\x22\x3a\x5b\x7b\x22id\x22\x3a\x22ACCESSIBILITY\x22,\x22value\x22\x3a\x22false\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22CHARSET\x22,\x22value\x22\x3a\x22utf\x2d8\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22CONTENT_DENSITY\x22,\x22value\x22\x3a\x22compact\x22,\x22editState\x22\x3a3\x7d,\x7b\x22id\x22\x3a\x22DATE_FORMAT\x22,\x22value\x22\x3a\x222\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22EMAIL\x22,\x22value\x22\x3a\x22\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22FIRST_NAME\x22,\x22value\x22\x3a\x22William\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22FULL_NAME\x22,\x22value\x22\x3a\x22William\x20Intsales\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22LANGUAGE\x22,\x22value\x22\x3a\x22en\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22LAST_NAME\x22,\x22value\x22\x3a\x22Intsales\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22NUMBER_FORMAT\x22,\x22value\x22\x3a\x22X\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22RTL\x22,\x22value\x22\x3a\x22false\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22THEME\x22,\x22value\x22\x3a\x22sap_bluecrystal\x22,\x22editState\x22\x3a3\x7d,\x7b\x22id\x22\x3a\x22TIME_FORMAT\x22,\x22value\x22\x3a\x220\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22TIME_ZONE\x22,\x22value\x22\x3a\x22UTC\x22,\x22editState\x22\x3a1\x7d,\x7b\x22id\x22\x3a\x22TRACKING_USAGE_ANALYTICS\x22,\x22value\x22\x3a\x22undefined\x22,\x22editState\x22\x3a3\x7d,\x7b\x22id\x22\x3a\x22WELCOME_MESSAGE\x22,\x22value\x22\x3a\x22\x22,\x22editState\x22\x3a1\x7d\x5d,\x22isJamActive\x22\x3atrue,\x22isEmbReportingActive\x22\x3afalse,\x22services\x22\x3a\x7b\x22targetMappings\x22\x3a\x7b\x22baseUrl\x22\x3a\x22\x2fsap\x2fopu\x2fodata\x2fUI2\x2fINTEROP\x22,\x22relativeUrl\x22\x3a\x22TargetMappings\x22,\x22cacheId\x22\x3a\x223747C42E017C755D68D930CF65BF660A\x22\x7d,\x22personalization\x22\x3a\x7b\x22baseUrl\x22\x3a\x22\x2fsap\x2fopu\x2fodata\x2fUI2\x2fINTEROP\x22,\x22relativeUrl\x22\x3a\x22PersContainers\x22,\x22cacheId\x22\x3a\x22331D24E47CB232D662E42AA1B17FD0E4\x22\x7d,\x22pbFioriHome\x22\x3a\x7b\x22baseUrl\x22\x3a\x22\x2fsap\x2fopu\x2fodata\x2fUI2\x2fPAGE_BUILDER_PERS\x22,\x22relativeUrl\x22\x3a\x22\x2fPageSets\x28\x27\x252FUI2\x252FFiori2LaunchpadHome\x27\x29\x3f\x24expand\x3dPages\x2fPageChipInstances\x2fChip\x2fChipBags\x2fChipProperties,Pages\x2fPageChipInstances\x2fRemoteCatalog,Pages\x2fPageChipInstances\x2fChipInstanceBags\x2fChipInstanceProperties,AssignedPages,DefaultPage\x22,\x22cacheId\x22\x3a\x228CDCD4A847681ED6B3B3260FB4742526\x22\x7d,\x22startUp\x22\x3a\x7b\x22baseUrl\x22\x3a\x22\x2fsap\x2fbc\x2fui2\x2f\x22,\x22relativeUrl\x22\x3a\x22start_up\x22,\x22cacheId\x22\x3a\x223747C42E017C755D68D930CF65BF660A\x22\x7d\x7d\x7d\x7d

Decode it via some online decode tool:
Here we can find out that the Adapt UI plugin is there:

Then we do the same check on another system where Adapt UI is missing, here the plugin configuration is missing. As a result, this button missing issue is not caused by inadequate user authorization, but the needed plugin is not returned by server side.
For more detail about server side configuration and how I finally manged to make this button visible, please refer to this blogĀ Fiori launchpad page server side configuration.

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

  1. Parag Jain

    Runtime adaption is missing in 1.38.X, is it supported only in 1.40.X / 1.42.X version only ?

    PS – Context is HCP and not on-prem.

    (0) 

Leave a Reply