Technical Articles
SAP Fiori Client (SP13+)
SAP Fiori is a set of applications that cover some of the most frequently used SAP software functions. These apps were written using SAPUI5 and hence can be accessed in a browser on a variety of devices. Details on the over 1000 apps are available at Fiori Apps Library. There is a demo of a few SAP Fiori apps available at SAP Fiori, Demo Cloud Edition.
When an SAP Fiori app is run in the SAP Fiori Client, it provides a set of enhancements to the app including the ability to customize or brand the app title, app icon, splash screen, first use tip screen, access native device functionality such as a barcode scanner, security enhancements such as the ability to set a whitelist of URLs the application can communicate with, handling of authentication challenges within a WebView via the AuthProxy plugin, improved attachment handling on Android and iOS and additional benefits when integrated with the SAP Cloud Platform Mobile Services or SMP 3.0 server.
A prebuilt version of the SAP Fiori Client is available from the iTunes, Android, and Windows stores at iOS SAP Fiori Client mobile app, Android SAP Fiori Client mobile app, and Windows 10 SAP Fiori Client.
Note, the Fiori Client for Android is also available from SAP at Android Fiori Client on SAP Market Place or MOB SAP FIORI CLIENT AND 1.X.X.
A custom version of the SAP Fiori Client for Android, iOS and as of SP13, Windows 10 can be created using the Kapsel SDK. Building the SAP Fiori Client yourself allows for the app to be customized. New plugins can be added or ones that are not being used can be removed.
See also the What’s New — Release Notes of the SAP Fiori Client Guide.
For additional details see the script that creates the SAP Fiori Client at
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\create_fiori_client.js,
the JavaScript file at
C:\SAP\MobileSDK3\KapselSDK\plugins\fioriclient\www\fioriclient.js,
and the documentation at Users Guide and SAP Fiori Client.
Questions on the SAP Fiori Client can be viewed using the search Questions tagged with SAP Fiori Client.
Blogs on the SAP Fiori Client viewed using the search Blogs tagged with SAP Fiori Client.
The following steps will demonstrate how to create the SAP Fiori Client using SMP SDK.
Building the SAP Fiori Client
Running the SAP Fiori Client
Customizations
Changing the App Name, Icon, and Splash Screen
Changing the Background Image
Modifying the Version
Modifying the Status Bar
Hiding Last Screen from AppSwitcher and Enabling or Disabling Screen Capture
Using Push in the SAP Fiori Client
Configurations
Opening the Fiori Client from an External Link
No Bridge
Using an X.509 Certificate
Using a Mobile Device Management Solution to Configure Initial Settings
Performance Settings
Troubleshooting
Proxying the Fiori Client through an SMP or SAP Cloud Platform Mobile Services Server
Proxying the Fiori Client through SAP Cloud Platform Mobile Services to the SAP Fiori Cloud
See also the following posts.
Creating a custom Fiori Client using the SAP Cloud Build
SAP Fiori & SMP
Introducing SAP Fiori Client 1.2
SAP Fiori – Mobile
Fiori Guidelines
SAP Fiori Launchpad
SAP Fiori Reference Apps
Mobile Single Sign-On for SAP Fiori with SAP Authenticator
Configuring SAP Fiori Client for Single Sign-On with iOS SAP Authenticator
Building the SAP Fiori Client
- Edit the file
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\config.json or /Users/i82xxxx/SAP/MobileSDK3/KapselSDK/apps/fiori_client/config.json
Only include the platforms you wish to build and remove the others. Note, building for iOS requires a Mac.
{ "packageName": "com.sap.fiori", "targetFolder": "FioriClient", "appName": "FioriClient", "platforms": ["ios", "android", "windows"], "platforms": ["android"], "cordovaPluginIncludes" : [], "cordovaPluginExcludes" : ["@sap/kapsel-plugin-push","@sap/cordova-plugin-privacyscreen"], "crosswalkEnabled" : false }
- In a command window run the following commands.
cd C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client or on a Mac cd ~/SAP/MobileSDK3/KapselSDK/apps/fiori_client npm install node create_fiori_client.js cd FioriClient
- Note it is also possible to debug the create_fiori_client.js script file. For additional details see V8 Inspector Integration for Node.js. Note this is an optional step.
node --inspect --debug-brk create_fiori_client.js
- Note that the create_fiori_client.js script has conveniently created a Cordova project containing Kapsel and Cordova plugins.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient>cordova plugins cordova-plugin-camera 2.4.0 "Camera" cordova-plugin-compat 1.1.0 "Compat" cordova-plugin-contacts 2.3.0 "Contacts" cordova-plugin-customurlscheme 4.2.0 "Custom URL scheme" cordova-plugin-device 1.1.5 "Device" cordova-plugin-dialogs 1.3.2 "Notification" cordova-plugin-file 4.3.1 "File" cordova-plugin-geolocation 2.4.2 "Geolocation" cordova-plugin-network-information 1.3.2 "Network Information" cordova-plugin-screen-orientation 1.4.2 "Screen Orientation" cordova-plugin-splashscreen 4.0.2 "Splashscreen" cordova-plugin-statusbar 2.2.2 "StatusBar" cordova-plugin-whitelist 1.3.2 "Whitelist" de.appplant.cordova.plugin.printer 0.7.0 "Printer" kapsel-plugin-apppreferences 3.15.2 "AppPreference" kapsel-plugin-attachmentviewer 3.15.2 "AttachmentViewer" kapsel-plugin-authproxy 3.15.2 "AuthProxy" kapsel-plugin-barcodescanner 3.15.2 "BarcodeScanner" kapsel-plugin-cachemanager 3.15.2 "CacheManager" kapsel-plugin-calendar 4.4.4 "Calendar" kapsel-plugin-cdsprovider 3.15.2 "CDSProvider" kapsel-plugin-corelibs 3.15.2 "CoreLibs" kapsel-plugin-encryptedstorage 3.15.2 "EncryptedStorage" kapsel-plugin-federationprovider 3.15.2 "FederationProvider" kapsel-plugin-fioriclient 3.15.2 "FioriClient" kapsel-plugin-i18n 3.15.2 "i18n" kapsel-plugin-inappbrowser 3.15.2 "InAppBrowser" kapsel-plugin-logger 3.15.2 "Logger" kapsel-plugin-logon 3.15.2 "Logon" kapsel-plugin-multidex 3.15.2 "Multidex" kapsel-plugin-online 3.15.2 "Online" kapsel-plugin-settings 3.15.2 "Settings" kapsel-plugin-toolbar 3.15.2 "Toolbar" kapsel-plugin-ui5 3.15.2 "ui5" kapsel-plugin-usage 3.15.2 "Usage" kapsel-plugin-voicerecording 3.15.2 "Voice Recording"
- Edit the following file:
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\www\appConfig.js
Provide values such as those shown below.
Note the fioriURL should be changed to reflect the webserver that hosts your SAP Fiori applications uses or to the trial SAP Fiori Launchpad.
Note the website http://jsonlint.com/ can be used to validate JSON such as the contents of the appConfig variable below.fiori_client_appConfig = { "appID": "com.sap.fiori", //"fioriURL" : "https://www.sapfioritrial.com/sites?helpset=trial&sap-client=001", "fioriURLIsSMP": false, "certificate": "", "autoSelectSingleCert": false, //"backgroundImage": "../../../nightsky.jpg", "disablePasscode": false, "passcodePolicy": { "expirationDays":"0", "hasDigits":"false", "hasLowerCaseLetters":"false", "hasSpecialLetters":"false", "hasUpperCaseLetters":"false", "defaultAllowed":"true", "lockTimeout":"300", "minLength":"8", "minUniqueChars":"0", "retryLimit":"0" //"allowFingerprint":"true" } };
The fioriURLIsSMP setting indicates if the SAP Cloud Platform Mobile Services or SMP 3.0 server should be used as a proxy to access the SAP Fiori app enabling additional logging, authentication mechanisms, push notifications etc. An example of this being set to true is shown later in this document.
The passcode policy can be set in the server management cockpit when fioriURLIsSMP is true or in the appConfig.js as shown above when fioriURLIsSMP is false. Since the passcode policy setting defaultAllowed is set to true, this allows the user the option to disable the Passcode screen. - Build and deploy the project via the following command.
cordova run android or cordova run ios or cordova run windows -- --archs=x64
Running the SAP Fiori Client
Some of the functionality of the app is illustrated below.
If the fioriURL variable is not specified in the appConfig.js or if the app is the one downloaded from the public app stores, the first screen shown requests the user to choose between Log In or Demo Mode. Demo mode uses the trial URL automatically and disables the passcode screen.
If using SAP Mobile Secure, an email can be provided instead of a URL that the Fiori Client will then use the email domain to get the details on how to connect to the Fiori app. Entering an email is typically less error prone than entering a long URL.
Note the Fiori Client will send its package name and that must match the Application Configuration ID. In the example below that is com.sap.fiori2. The Fiori Client on the app stores uses the id of com.sap.fiori.client.
The following is an example configuration in SAP Mobile Secure and the email address that would be entered.
dan@trial-i82XXXXtrial.sapmobileplace.com
New in SP14 is the ability to use the Barcode scanner to enter a URL.
The following QR code generated at QR Code Generator encodes the following trial URL.
https://www.sapfioritrial.com/sap/hana/uis/clients/ushell-app/shells/fiori/FioriLaunchpad.html?helpset=trial&sap-client=001
This screen can be skipped via the disablePasscode setting in the appConfig.js file.
The passcode policy is configured in the appConfig.js or in the SMP management cockpit when fioriURLIsSMP is set to true.
The Enter Passcode screen is shown when the app is subsequently opened or resumed from the background when a passcode has been set and the locktimeout has expired.
The first use tip screen is shown the first time the app is opened. To customize this, see the method showFirstUseTips and also logonCompletedCallback in the following file.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\plugins\kapsel-plugin-fioriclient\www\fioriclient.js
To remove it, add the below line to deviceready event in the www\js\index.js file.
sap.AppPreferences.setPreferenceValue('skipShowFirstUseTips', true);
If the URL being accessed is not available or uses HTTPS and the certificate authority that signed the web server’s certificate is not trusted by the device, an error page will be shown.
For additional details see Installing a Certificate or the HTTPS in the Security Appendix. A quick test to see if the site can be opened is to open the URL on the device’s browser.
A new feature in SP15 is the ability to save entered credentials so the user does not need to re-enter them. Note this feature is only enabled when the app has a passcode and the setting allowSavingFormCredentials is set to true in the appConfig.js or set via an fioriURL parameter.
The next time the application opens, the credentials will be automatically entered.
Note in order to use allowSavingFormCredentials feature with SAML, the IDP host must be added to the nobridgewhitelist. The following is an example URL.
https://fiorilaunchpad.sap.com?allowSavingFormCredentials=true&nobridgewhitelist=accounts.sap.com
By double tapping, a native menu is shown. The menu items are added in the initClient method in the following file.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\plugins\kapsel-plugin-fioriclient\www\fioriclient.js
The ability to view the device log and send it in an email is shown below.
The settings are implemented in fioriclient.js (and validation.html for Android).
Customizations
Changing the App Name, Icon and Splash Screen
The app name, icon and splash screen can be customized before create_fiori_client.js is run by modifying the appName in the following file.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\config.json
The icon.PNG files are under the following folder.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\template\res
The splash screen resources under the following folder.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\template\res\screen
As of SP11, the App Name in the Logon screen can be specified via the appName setting in the following file.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\www\appConfig.js
If it is not specified it defaults to SAP Fiori Client.
Changing the Background Image
The flowers background image of the SAP Fiori Client can easily be replaced via the backgroundImage setting in appConfig.js file as of SP13.
Modifying the Version
On Android and iOS, the version is specified in the following file.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\config.xml <widget id="com.sap.fiori" version="3.0.14.1"
In Xcode the build field should match the value in the config.xml file after running cordova prepare ios.
Note there is also a version displayed on the iOS settings screen. This version can be changed by editing the Resources > Settings.bundle > Root.plist file.
The version is specified in the following file on Windows:
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\plugins\kapsel-plugin-fioriclient\www\messages_en.properties
Modifying the Status Bar
Note that on iOS, there are a few settings that can control how the status bar is displayed. The Fiori Client uses the StatusBar Plugin with the following settings set in config.xml.
<preference name="StatusBarOverlaysWebView" value="false" /> <preference name="StatusBarStyle" value="default" /> <preference name="StatusBarBackgroundColor" value="#FFFFFF" />
Note that statusbar can be removed by adding the following code to the file Resources/FioriClient-Info.plist.
<key>UIStatusBarHidden</key> <true/> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
Hiding Last Screen from AppSwitcher and Enabling or Disabling Screen Capture
As of SP11, the Fiori Client includes the Privacy Screen plugin which on Android prevents the screen from being captured and on iOS and Android, prevents the last displayed screen from appearing in the app switcher. To remove this functionality run the following command to remove this plugin.
cordova plugin remove cordova-plugin-privacyscreen
As of SP 15, the Fiori Client on Android will likely have a menu option to enable or disable this feature.
Using Push in the SAP Fiori Client
The following is an example demonstrating how to send a push notification to the iOS or Android Fiori Client downloaded from the Apple App Store or the Google Play Store. To send a notification to a custom Fiori Client or for further details on the Kapsel Push plugin see Push.
- Host the following HTML page at a location that is available on the internet or use the SAP Cloud Connector to enable the SAP Cloud Platform Mobile Services server to access a page hosted on your internal network.
<html> <head> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> </head> <script> function onSapLogonSuccess() { alert("EventLogging: onSapLogonSuccess"); initPush(); } function initPush() { alert("EventLogging: initPush"); sap.Push.initPush(processNotification); } function processNotification(notification) { alert("in processNotification: " + JSON.stringify(notification)); if (sap.Push.setPushFeedbackStatus && notification.additionalData) { //SP15 new feature sap.Push.setPushFeedbackStatus('consumed', notification.additionalData.notificationId, pushFeedbackStatusSuccessCallback, pushFeedbackStatusErrorCallback); } } document.addEventListener("onSapLogonSuccess", onSapLogonSuccess, false); </script> <h1>Push Demo</h1> </html>
- Configure an application in the SAP Cloud Platform Mobile Services management cockpit. Note the below is using the cloud connector and as such the Proxy Type is set to OnPremise.
Below, the Predefined Push Configuration is enabled which can only be used with the App Store Fiori Client on iOS and Android. See also, Predefined Push Configuration.
- Open the Fiori Client and enter a URL that will be used to register against the SAP Cloud Platform Mobile Services server.
https://hcpms-i82XXXXtrial.hanatrial.ondemand.com/com.sap.fiori2?appid=com.sap.fiori2&fioriurlissmp=true
- Use the Push Desk or a REST client to send a notification to the Fiori Client. Note, in the Push Desk, you must click on the filter and select iOS and Android under the Device Type drop down.
There are further instructions on using the postman REST client here.
- The notifications will appear on the iOS or Android device.
Notice below the badge count is set to 2 as that was the number specified in the REST client via the “badge” setting.
When clicked on the Fiori Client will open and which can then take further action based on the contents of the notification.
- For more on Fiori Notifications which occur within the Fiori Launchpad see Notification Center.
Configurations
Opening the Fiori Client from an External Link
It is possible to provide a link to the Fiori Client or to a specific Fiori App within the Fiori Client on a webpage or an email. Here are a couple of examples. When the link is selected in a browser, the SAP Fiori Client will open.
<a href="com.sap.fiori.xcallbackurl://x-callback-url/openFioriUrl">Deep Link to Fiori Client</a> <a href="com.sap.fiori.xcallbackurl://x-callback-url/openFioriUrl?url=https://www.sapfioritrial.com/sap/hana/uis/clients/ushell-app/shells/fiori/FioriLaunchpad.html?helpset=trial&sap-client=001#ContactPerson-MyContact">My Contacts</a>
Note, the com.sap.fiori comes from the packageName specified in the file C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\config.json.
The second link contains the URL to be opened in the Fiori Client. In this case it contains #ContactPerson-MyContacts which will open the CRM app My Contacts.
See also Creating a Mobile Deep Link to an Application in SAP Fiori Client.
No Bridge
No Bridge prevents access to the native plugins added to the SAP Fiori Client unless the WebView URL has the same host as the fioriURL specified in the settings.
As the SAP Fiori Client from the app store can be used with a user provided Fiori URL the protection provided by the navigation whitelist in the Whitelist plugin are disabled as these must be configured at build time. Specifically, the SAP Fiori Client from the app store has the following setting in its config.xml file.
<allow-navigation href="*" />
Prior to the No Bridge security enhancement, with the combination of the Kapsel online plugin and the wildcard in the allow-navigation setting, it was possible for any page to be loaded by the WebView and that page would have access to the API’s provided by the plugins included in the SAP Fiori Client.
If you know in advance the URLs that a custom SAP Fiori Client will access, it may make sense to specify them using the whitelist plugin. It is not possible to change the settings in the config.xml for the app store versions of the SAP Fiori Client.
The following steps will demonstrate this feature.
- Create the following HTML page at a location that is available over HTTP such as the following location.
C:\SAP\MobilePlatform3\Server\webapps\sapui5\index1.html
The contents for index1.html can be copied from below content.
<html> <head> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <title>No Bridge Demo index1</title> <script> document.addEventListener("deviceready", init, false); function init() { log(location.href); log("Device version: " + device.version); } function log(line) { var results = document.getElementById("log_lines"); results.innerHTML+= "<br>" + line; } </script> </head> <body> <h1>No Bridge Demo index1</h1> <button onclick="location.href='http://YKFN00620418A.amer.global.corp.sap:8080/sapui5/index1.html'">index1.html by Machine Name</button> <button onclick="location.href='http://10.7.168.124:8080/sapui5/index1.html'">index1.html by IP address</button><br><br> <button onclick="sap.Online.showBusyIndicator()">Show Busy Indicator</button> <button onclick="sap.Online.hideBusyIndicator()">Hide Busy Indicator</button> <div id="log_lines"></div> </body> </html>
Modify the above links to use your machine’s fully qualified domain name and the IP address.
- Configure the fioriURL of the SAP Fiori Client to use index1.html referencing the fully qualified domain name such as the following URL.
http://YKFN00620418A.amer.global.corp.sap:8080/sapui5/index1.html
- Run the SAP Fiori Client.
- Notice that the navigation to index1.html by Machine Name works, and the navigation to index1.html by IP address loads but it is not possible to successfully call methods of the added plugins such as sap.Online.showBusyIndicator() because the machine name is different. The following message appears in the Android logcat when attempting to show the Busy Indicator which invokes an API of the online plugin.
The following appears in the Xcode All Output view when attempting to access this API.ERROR: Plugin 'Online' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml. 2015-11-04 12:05:33.398 FioriClient[576:104290] -[CDVCommandQueue executePending] [Line 159] FAILED pluginJSON = ["INVALID","Online","showBusyIndicator",[]]
In SP14, logging was added at the DEBUG level on Android using the log tag of FEATUREVECTOR.
In SP13 only, the showBusyIndicator does not work unless the following entry is added to the config.xml.
<preference name="useBusyIndicator" value="false" />
- Note: the following plugins are excluded from the No Bridge feature.
- Logger
- Toolbar
- Whitelist
- Device
- It is possible to specify additional URL’s that should not be affected by the no bridge feature. This can be specified via a parameter in the appconfig.js file named noBridgewhitelist as shown below.
"fioriURL":"http://YKFN00620418A.amer.global.corp.sap:8080/sapui5/index1.html", "noBridgewhitelist":["10.7.168.124:8080"],
Alternatively it can be specified as a URL parameter in the Fiori Client UI when the user provides the Fiori URL. For example on the Enter Fiori URL page, the following URL could be provided.
http://YKFN00620418A.amer.global.corp.sap:8080/sapui5/index1.html?noBridgewhitelist=*
The following are a few examples of possible values.
noBridgewhitelist=* noBridgewhitelist=wdf.sap.corp noBridgewhitelist=*.wdf.sap.corp noBridgewhitelist=*.yahoo.com,*.google.com
One common case where this may be needed is if your application contains links to attachments that are hosted on another server or if you wish to use the allowSavingFormCredentials feature with SAML.
- This feature can be disabled on Android by renaming the following two files and recreating the Fiori Client.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\template\scripts\android\after_platform_add\PluginAspect.aj to PluginAspect.aj.bak C:\SAP\MobileSDK3\KapselSDK\SP15\apps\fiori_client\template\scripts\android\after_platform_add\prepareRestriction.js to prepareRestriction.js.bak
- This feature can be disabled on iOS by adding the following setting.
- Note, if No Bridge is disabled, consider replacing * from allow-navigation in the config.xml with a more restricted pattern.
- For additional security topics see the following documents.
Technical setup of an SAP Fiori Landscape – Part 3: Mobilizing Fiori
Configuration and Deployment Information and
Configuring Security in SAP Mobile Platform.
Using an X.509 Certificate
When an X.509 certificate is installed on an iOS device, it is only accessible to select applications such as Mobile Safari or Mail. See Making Certificates and Keys Available To Your App.
It is possible to use SAP Afaria to provision the SAP Fiori Client with an X.509 client certificate. To do this include the certificate=com.sap.afaria on the URL as shown below.
https://mo-39d7636c8.mo.sap.corp:44301/sap/bc/ui5_ui5/sap/zbarc_ui5_app?appid=test&fioriurlissmp=false&certificate=com.sap.afaria
If you wish to use a third party mobile device management solution to provide the X.509 client certificate, a custom SAP Fiori Client could be built that included a custom certificate provider. The fioriURL would then include the parameter &certificate=com.mycompany.certprovider.CustomCertificateProvider.
One other option on iOS would be to create a second application that is able to acquire a X.509 certificate and then to share that with a custom SAP Fiori Client through keychain sharing. See also Configuring Keychain Sharing.
In 3.1 SP01 PL04, the Fiori Client on Android has a new URL parameter named handleX509=false which can be useful if you wish it to not respond to a certificate challenge.
Using a Mobile Device Management Solution to Configure Initial Settings
A mobile device management solution such as SAP Afaria can be used to configure initial settings similar to those that can be set in appConfig.js file on iOS.
Note if using SAP Mobile Secure or SAP Afaria place this info in the managed App Configuration section.
If the MDM supports JSON format, create a JSON object as follows:
config={ "appID":"com.sap.fiori.client.release", "fioriURL":"https://<your-host>/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=100&sap-language=EN", "fioriURLIsSMP":false, "certificate" : "com.sap.afaria", "passcodePolicy":{} }
Note the appID must match the bundle ID.
See also Configuring SAP Fiori Client Using an MDM Solution.
Performance Settings
There are a few things that can be done to improve the startup time of the Fiori Client.
- The deviceready event fires after all the plugins have loaded. Remove any unused plugins.
- The skipIndex setting can be specified in the config.xml file. This setting indicates that the Fiori Client will not load the index.html in the project directory and will only load the fioriURL. This can significantly decrease the startup time of the Fiori Client.
<preference name="skipIndex" value="true" />
For further details and limitations see skipIndex
- The useLocalStorage setting can be specified in the appConfig.js file and when set to true does not use the datavault which can take a while to unlock.
"useLocalStorage": true,
For further details and limitations see Storing configuration data outside of the datavault
- Release builds will generally run faster than debug builds.
Troubleshooting
If a problem is preventing the Fiori Client from successfully registering, the settings screen may not appear, preventing the user from changing the log level. One way to do this is to first use demo mode to show the trial SAP Fiori app, then set the log level to debug from settings screen by double tapping. Reset the app from setting screen and input the Fiori URL that is not working with the Fiori Client. The debug log level will persist across the application reset, so it will stay in debug log level.
If you cannot debug the app in Xcode, you can still view the device console output through Xcode’s Device menu. It will show the console output from all applications running on the device without debugging the application from Xcode.
The Fiori Client does not support URL shortener services or bitly URLs due to No Bridge. This feature may also cause troubles opening a URL that uses a different host or port than the one specified in the fioriURL.
Disabling the no bridge feature may correct some issues where a URL with a different host name or port are being opened.
Turning off the cachemanager which sends some extra requests to server from native library to help detect when the cache may need to be updated can be disabled via a URL parameter or in the appConfig.js.
&enableCacheManager=false "enableCacheManager": false
The section Troubleshooting SAPUI5 Apps contains some troubleshooting tips such as how to perform an end2end trace.
Finally the following link provides some steps to access a crash log on iOS. Note the instructions are for Chrome but could be adapted for the Fiori Client.
Retrieving Crash Reports on iOS
Proxying the Fiori Client through an SMP or SAP Cloud Platform Mobile Services Server
The following steps demonstrate how to proxy a SAP Fiori application through a SMP or SAP Cloud Platform Mobile Services server. Note the following appendix SAP Cloud Connector has an additional example. For further details see Configuration and Deployment Information.
- Create a Kapsel application with the following ID.
com.sap.fiori
Set the endpoint to be a partial URL of your company’s Fiori launchpad URL.
An example of a full URL to the app and then the partial URL follows.https://abc.sap.corp:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=100 and https://abc.sap.corp:443/
Add an SSO mechanism such as Basic for a URL that requires credentials.
Rewrite mode should be Rewrite URL in Backend System.Select an HTTPS Authentication provider and provide a URL that requires authentication. The URL
https://abc.sap.corp:443/sap/bc/ping?sap-client=100
will be used during the registration step to verify that the provided user name and password on the registration screen. Since an SSO mechanism is used, the app will not need to display the app’s login screen. See also Single Sign-On Integration Across Client Applications.
If the Save button is disabled, switch to the ADVANCED tab, and delete the Token Expiration Interval value.
Save the application, and then attempt to ping the endpoint.
A partial SAP Fiori URL such ashttps://abc.sap.corp:443/
should return a 404 not found error. You would see the same error if the URL was entered into a browser or possibly success if the 404 error is embedded in a 200 response.
- Notice that the endpoint (https://abc.sap.corp:443) uses HTTPS. The certificate that the endpoint server uses was signed by SAPNetCA_G2. In Chrome this can be seen by clicking on the lock icon beside the URL and choosing Details, View certificate. This certificate and it’s the cert that signed it (SAP Global Root CA) need to be installed in the SMP 3.0 server’s keystore as shown below.
The following are a couple of commonly seen error messages.Backend system cannot be reached:::Root cause:::Exception during connection execute: peer not authenticated
This error may be seen if the SMP server does not trust the certificate used by the endpoint.
Backend system cannot be reached:::Root cause:::Exception during connection execute: abc.sap.corp:443
This indicates that the SMP server cannot reach the URL. Check if the URL is reachable in a browser. If it is, it may be that your network requires a proxy server to access external URLs. Check the Use System Proxy setting and ensure the proxy settings under Settings > System > HTTP proxy host are correct in the SMP server management cockpit.
- In the following file set the variable fioriURLIsSMP to true to indicate that the connection to the app will be proxied through the SMP 3.0 server.
C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\www\appConfig.js
Set the fioriURL to a URL as shown below.
https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html
The methods parseAppConfig and handleFioriUrlWithFakeParameter will extract the host and port to connect to. Note there are additional settings that can be specified in the appConfig.js file. If the values are not specified in the appConfig.js file (for example in the version of the Fiori Client available on the Apple App Store and Android Play Store, the appConfig.js file is not editable), then they can be specified in the user provided fioriURL. If the fioriURL is not specified in the appConfig.js file then the Enter Fiori URL screen will appear and the parameters normally specified in the appConfig can be specified in the FioriURL. Here are a few examples.
//Direct to the Fiori Server via user supplied URL https://www.sapfioritrial.com/sap/hana/uis/clients/ushell-app/shells/fiori/FioriLaunchpad.html //Direct to the Fiori Server via appConfig.js "appID": "com.sap.fiori", "fioriURL": "https://www.sapfioritrial.com/sap/hana/uis/clients/ushell-app/shells/fiori/FioriLaunchpad.html", "fioriURLIsSMP": false, //Proxying through an SMP server via user supplied URL https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?appid=com.sap.fiori&fioriURLIsSMP=true //Proxying through an SMP server via appConfig.js "appID": "com.sap.fiori", "fioriURL": "https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html", "fioriURLIsSMP": true, //Mutual Authentication using Afaria/SAP Mobile Secure to provide the client certificate via user supplied URL https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?appid=com.sap.fiori&fioriURLIsSMP=true&certificate=afaria //Note that in SP08 of the SDK there is a new certificate provider named certificate=com.sap.afaria that is to only be used when not registering with the SMP server. //Mutual Authentication using Afaria/SAP Mobile Secure to provide the client certificate via appConfig.js "appID": "com.sap.fiori", "fioriURL": "https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html", "fioriURLIsSMP": true, "certificate": afaria, //SAML Authentication via user supplied URL https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?appid=com.sap.fiori&fioriURLIsSMP=true&authtype=saml2.web.post //SAML Authentication via appConfig.js "appID": "com.sap.fiori", "fioriURL": "https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html", "fioriURLIsSMP": true, "auth": [ { "type": "saml2.web.post", "config": { "saml2.web.post.authchallengeheader.name": "com.sap.cloud.security.login", "saml2.web.post.finish.endpoint.uri": "/SAMLAuthLauncher", "saml2.web.post.finish.endpoint.redirectparam": "finishEndpointParam" } } ]
See also Enabling SAML Authentication and
Configuring SAP Fiori Client Using URL Query ParametersOne tool that can be used to verify the JSON is jsonlint.com.
In order to use HTTPS the mobile device or simulator will need to trust the certificate used by the SMP server. For additional details see the HTTPS in the Security Appendix. Alternatively, use HTTP with port 8080 which is the default HTTP port for the SMP server.
Note, if the Fiori Client does not trust the certificate used by the SMP server, an error such as the following will appear on the device’s log."LogonController.getRegistrationErrorText: {\"errorCode\":\"80003\",\"errorMessage\":\"java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.\",\"errorDomain\":\"MAFLogonCoreErrorDomain\"}"
The device log can be viewed on Android via Logcat or on iOS via Xcode or via the Fiori Client View Log menu item.
- Deploy and run the app.Since fioriURLIsSMP is set to true and the fioriURL is specified, the first screen that appears is the user name and password screen.
The passcode policy is retrieved from the SMP 3.0 server during a successful registration process and then the set app passcode screen is shown.
The first use tips page is shown and then the app is loaded.
- When the appConfig.js file has fioriURLIsSMP set to true, the settings screen has two additional read only settings: Proxy Through SMP and AppID.
Note, if you wish to change the Fiori URL to point to a different SMP server and have not specified a value for fioriURL, click the Clear All Application Settings button under Reset Settings. This will cause the Enter SAP Fiori URL screen to appear. - When the SAP Fiori Client is used with the SMP 3.0 server or SAP Cloud Platform Mobile Services server, statistics can be viewed like those shown below.
Items such as the log level, the log entry expiry, and the client policy can be remotely managed.
In addition, notifications can be sent to the device, and additional security authentication mechanisms are available.
Proxying Through SAP Cloud Platform Mobile Services to the SAP Fiori Cloud
The following URL could be used with the following configuration.
https://flpportal-i82XXXXtrial.dispatcher.hanatrial.ondemand.com:443?appid=fiori.cloud&authtype=saml2.web.post&fioriURLIsSMP=true&hcpmsroute=mobileservices
Hi,
I’m currently trying to create a custom Fiori Client for Android using SP13 and I’m having Trouble with the crosswalk plugins.
Environment:
– Windows 10 Pro
– SMP SDK 3.0 SP13
– Cordova 6.1.1
When I create the project using create_fiori_client.js an error occurs when installing cordova-plugin-crosswalk-webview: “Plugin doesn’t support this project’s cordova-android Version. cordova-android: 5.1.1, failed Version requirement: >=6.”
When I check the created Folder, I see that cordova-plugin-crosswalk-webview was installed with Version 2.2.0, even though the create_fiori_client.js defines Version 1.7.2. I have also tried to install Version 2.0.0 (as in your example above), but the error occurs with this one as well.
When trying to build the apk, it Fails because of missing plugin Installation.
Now to fix the error I’ve tried to navigate to the project, uninstall platform Android, uninstall plugin cordova-plugin-crosswalk-webview, install plugin cordova-plugin-crosswalk-webview@1.7.2, install Android and then build the apk. This works without Errors, but when I install the apk on a device or Emulator, the app crashes on start.
The only way I have managed to create a functional Client, was by editing the create_fiori_client.js file and removing the crosswalk and xwalk plugins. However this is not satisfying, because of the missing benefits of crosswalk.
Do you have any idea what I’m doing wrong and how the error could be fixed?
Best regards,
Patrick
Vous avez aussi le site https://direct-qr.com/ pour créé des QR code PDF
What is the full version number of the Kapsel SDK that you are using? The version number is shown in the plugin.xml file of most of the Kapsel plugins.
I have not myself encountered that problem but can try it again using the same version you are using. I would recommend trying the latest available PL if you are not on it already.
SP 14 should also be coming out before too long.
Finally crosswalk is particularily useful if you are deploying to devices that are older than Andorid 5.0. The WebView component as of Android 5.0 is updated automatically via the app store.
Regards,
Dan van Leeuwen
Thanks for your reply. The Version number of Kapsel SDK is 3.13.6. I’ve been using PL 6 of SMP SDK 3.0 SP 13.
We have devices with all kinds of Android versions, so the use of crosswalk would be preferred.
Best regards,
Patrick Bierbaums
I believe I was able to reproduce the problem.
I think this is what is happening.
The create_fiori_client.js script adds the plugins to the project.
It adds kapsel-plugin-inappbrowser-xwalk which if you look in its C:\SAP\MobileSDK3\KapselSDK\3_13_6\plugins\inappbrowser-xwalk\plugin.xml file has a dependency to
<dependency id=”cordova-plugin-crosswalk-webview”/>
I am guessing that since this dependency does not list a specific version, the latest available version is added to the project which is 2.2.0.
I would recommend changing the dependency to be
<dependency id=”cordova-plugin-crosswalk-webview@2.0.0″/>
and then recreate the Fiori Client.
This worked for me. Hope it helps. I have also opened a bug to have the development team follow up further on this.
Regards,
Dan van Leeuwen
Thanks a lot for your help. I did the change and created a new project successfully. The APKs could also be built without problems, but when i deployed it to an Android Emulator (ARM (armeabi-v7a)) it can be installed, but crashes on start with message “FioriClient has stopped”.
I will try to deploy it to an actual device tomorrow, but I expect the same outcome, as it is the same problem I described in my initial comment as well.
I tried using command “cordova build android” as well as the build.bat, but it made no difference. The appConfig.js, has not been changed.
Update: Installed the app on an actual device today and it works! Thanks a lot!
Hello Daniel,
Thanks for writing a detailed blog.
In our case we want to achieve mutual authentication between Custom Fiori Client on mobile Device (android & iOS) and Reverse Proxy server. This means Server will challenge client for X.509 cert and client has to read it from device and present it.
As per your blog, to achieve X.509 certificate based authentication, we need to build a custom fiori client having custom certificate provider.
But Standard Fiori client user guide says that it supports mutual authentication. Also release notes for SDK SP09 says AuthProxy Plugin automatically selects client certificate.Also there is one of the SAP Note 2132513, which explains on similar lines.
I am assuming custom fiori client should be replica of standard and hence it should also support mutual authentication by default.
Can you please clarify if we need to code anything to achieve mutual authentication between Custom Fiori client on Mobile Device(android + iOS) OR it works out of the box?
Regards,
Vikrant
I am using SDK SP 13 PL1 but not able to remove the passcode screen , can you help please , i tried replacing the code at r21 on the logoncontroller.js, but it did not help
Are you using a customFiori Client? If so, modify the appConfig.js file and change the disablePasscode value to true.
I assume you could also set this via a URL parameter when you specify the Fiori Client URL if you are using the App Store Fiori Client.
Regards,
Dan van Leeuwen
Hi Dan,
Thanks for this wonderful blog i have followed your suggestions and developed, run the Custom
Fiori Client successfully.
Now customer wants to disable the passcode screen. So as you said i set the disablePasscode
value to true in my appConfig.js file. but when i built and install the app i see blank screen(white
screen). nothing is happening in that blank screen so could you please suggest.what should be
need to change.
Thanks in advance.
regards,
Sudheer.
Are you registering with an SMP or SAP Cloud Platform Mobile Service server? If so, make sure that in the management cockpit, under client policy, the passcode policy is either disabled or if it is enabled, then make sure the Default Passcode Allowed setting is checked.
Delete the app from your device and redeploy.
The new setting should only take effect the next time you perform a registration.
What version of the SDK are you using to build the Fiori Client? If you are not on 3.15.x, perhaps consider upgrading to the latest available version. You can see the version by editing the file
C:\SAP\MobileSDK3\KapselSDK\plugins\fioriclient\plugin.xml
If those don't help, perhaps check the device log or JavaScript console to see if there are any clues.
Regards,
Dan van Leeuwen
Hi Dan,
I am trying to create a Custom Fiori Client for offline usage using which I can login and send data to GW &ECC. For this project, offline functionality is a must.
I see that odata can be made offline using SMP/HCP with defining requests.
I also see that Fiori can be made offline using MobileSecure.
https://blogs.sap.com/2016/06/02/get-your-fiori-crm-app-offline-part-1/comment-page-1/#comment-357024
But I would like combine both.
So I first followed the steps to download Fiori content from front end server.
Then to this project, I am adding android platform and plugins required.
Then I am adding odata plugin to make odata offline.
Then I will create android.apk file and install on Android phone.
Then in SMP/HCP, I am adding define requests for odata offline.
But It is not working for me. It gives me the registration error on SMP.
I also want to understand, when we make odata calls from Fiori controller.js, where does it saves the data using offline store?
When we use offline template from webide, it creates an offline store in fiori code. But it does not require SMP/HCP. So do we still need to write code manually to create an offline store in fiori js files?
Pls guide me.
Thanks
seenu
The Fiori Client is meant to be used in an online manner.
If you wish to write a custom app and use it for offline scenarios that is certainly possible using the Kapsel Offline plugin.
Note the Offline plugin requires an SMP or HCPms server.
If you are using a standard SAP Fiori app, I would first check if it supports offline usage. Not all standard Fiori apps are supported in an offline scenario. There are certain OData calls that are not supported.
See http://help.sap.com/saphelp_smp3013sdk/helpdata/en/88/9d29b3fac0456b812d86b5794c6e54/content.htm
The offline database is created in the server and sent down to the device when you initially open the offline store.
I am in the process of creating a section in this guide that shows using the offline OData plugin. Hopefully that will be published before the new year.
To answer your question, when using the offline OData plugin, OData calls are fetched from the database on the device rather than from the backend server. When the device is online, a flush and refresh can be made to synchronize the data.
Regards,
Dan van Leeuwen
Happy New Year Dan.
Pls let me know once you add a section about using the offline feature in Custom Fiori Client. That would help immensely to finish my project.
Thanks
seenu
Just to be clear, the Fiori Client is an application created with the Kapsel SDK. The Fiori Client is meant to be used in an online manner. By that I mean it does not contain the web pages that make up the Fiori app that it displays. It stores some of the files in a cache to speed up load time but does not make all of the files available when offline. It acts similar to a normal web browser and only caches the files as directed to by the web server.
If you wish to create an offline app, it is possible to do with the offline plugin but that would be a new app created with the Kapsel SDK.
Note, there are limitations to the offline plugin that are described here.
https://uacp2.hana.ondemand.com/doc/d9c75eebcfa840c8a4aa4b0e6a8136de/3.0.14/en-US/889d29b3fac0456b812d86b5794c6e54.html
The plugin is further described here.
https://uacp2.hana.ondemand.com/doc/d9c75eebcfa840c8a4aa4b0e6a8136de/3.0.14/en-US/ed65d7f0acbd4ae2bb4bb59e0aa389ad.html
I hope to add a section to this guide on the offline plugin in the near future. Here is a link to an older version. https://blogs.sap.com/2015/07/19/getting-started-with-kapsel-part-10-offline-odata-sp09/
Regards,
Dan van Leeuwen
Hi Dan,
I am facing a strange issue while using Custom Fiori Client,
Technical Environment: KapselSP13PL06, Cordova Version: 6.1.1, SMP : True, SMP Server Version: 3.0, Passcode is Enabled and set by user.
Issue: We have attachment upload functionality in Fiori Application, when we upload the attachment using Android device -> It navigates to Passcode screen. -> After entering the passcode, upload is happening & its a repetitive process whenever I upload new attachment.
Regards,
Shivesh Ranjan.
That is odd. The one thing I would try taking a look at is the passcode policy and specifically the lock timeout value. In the management cockpit for the SMP or HCPms server, edit your application and under the Client Policies, enable the passcode policy and then have a look at the lock timeout value. This should control how long the app can be in the background before the lock screen appears. I think the default is 5 minutes or 300 seconds.
After setting the above go to the settings screen in the Fiori Client and choose Clear All Application Settings. This should then start a new registration with the server after which the new client policy settings would be in effect for. They would also come down as part of a settings exchange but it may take a few app restarts before they take effect.
Hope that helps,
Dan van Leeuwen
Hi Dan,
Thanks. It worked...
Regards,
Shivesh Ranjan.
Hello Dan,
I have created Fioriclient Application as per steps mentioned above & it's working.
Could you please tell me that , the above steps mentioned in documents to create FioriClient app doesn’t required SMP server to deploy the application ?
Regards,
Pavan
I am not sure I follow you question exactly. An SMP or HCPms server is optional for the Fiori Client.
If you wish to deploy a customized Fiori Client you can do so using the Apple App store or the Google Play store. You could also distribute your app to an internal store perhaps hosted by your company. I believe functionality to do so is available with the SAP Mobile Secure product.
You can also simply use the version of the Fiori Client that is already available on the Apple app store or Google play store.
Regards,
Dan van Leeuwen
Ok Thanks Dan for kind reply.
Regards,
Pavan
HI Daniel,
I am using SMP 3.0 run time SP11 on different system. I am trying to develop app using SAP Fiori Client Plugin.
I am following the above steps.
I am trying to create app on cockpit, At Authentication tab-->Authentication Provider
Select as HTTP/HTTPS Authentication and write my launchpad URL and click on SAVE button. An error is coming "error connecting to URL", I have already export all certificate on cockpit.
Thanks
Kanchan
Hi Daniel,
I tried Custom SAP Fiori Client through SAP Mobile Platform by following the steps mentioned in the above document.
I'm getting an error "Whitelist Check Failed" while registering.
Kindly, provide your help on the issue.
Thanks in Advance.
Regards,
Sandeep K S
I have not seen that particular error before. Is the URL that you specified the Fiori Client to open being redirected to another URL?
The following topic may be related.
Fiori Client No Bridge or Whitelist
Perhaps try adding the following in your appConfig.js
Hi Daniel,
Thanks for the reply.
I tried like the way you mentioned in appConfig.js file. Still, facing the same issue.
Regards,
Sandeep K S
I am trying to install SP14 PL01 but I am getting below error while executing the "node create_fiori_client.js" . Can you please advise which version I have to check.
/users/*****/SAP/moibileSDK3/KapselSDK/apps/fiori_client/node_modules/semver/semvr.js 293
throw new error Type Error("Invalid Version: " + version);
Hi Rambhupal Koka,
I have the same issue. Do you have a solution for this problem?
Greetings
Ines
Hi Daniel
Thank you very mch for the detailled and informative blog post.
Supposed you are not using smp or mobile services, no client certificates and the custom fiori client is directly configured for an on premise gateway system.
What role has the kapsel logon plugin, if any?
From my understanding the custom fiori client then starts the configured url and ends up on the launchpad logon page where the user enters username and password.
I do not see any participation of the logon plugin in this scenario, correct?
Best regards
Jan
One scenario that comes to mind is if the gateway challenges with basic authentication then the AuthProxy plugin in combination with the Logon plugin can respond with the user credentials.
See also https://blogs.sap.com/2017/01/17/getting-started-with-kapsel-part-8-authproxysp13/.
When the logon plugin is used in a direct case, the logon plugin is initialized in a different manner. There is an example of this at the below link and search for sap.Logon.initPasscodeManager
https://blogs.sap.com/2016/12/28/getting-started-with-kapsel-part-5-encrypted-storagesp13/
The Logon plugin is required by many of the other Kapsel plugins. It contains a datavault where secure information may be stored.
The logon plugin also provides a passcode screen to provide an additional passcode or fingerprint that a user would need to supply before they can access the app. For the direct case, you can specify what the passcode policy should be in the appConfig.js file.
Regards,
Dan van Leeuwen
Hi Daniel,
Thanks for the wonderful blog.I have created a custom fiori client app as per the steps posted.
Now i see that app is not getting auto refreshed and count on the approval tiles are not getting auto updated after any transaction.I see this this only on the app in iOS device but this is not the behavior in browser.
I need to manually clear cache for this to get reflected on the app.
Can you please let me know how should i handle this.
Thanks in advance.
I have not myself come across this problem before. You may wish to open a ticket with support on this.
The one option that might have an effect on this is the enableCacheManager setting. I believe it is mentioned in this blog posting.
One other option to debug this further would be to use the Safari Web Inspector or Fiddler to examine the networking requests. You could compare the requests between the case that is working in the browser and the case that is not working in the Fiori Client. It may be something about headers on the response do not indicate that the response should not be cached.
Regards,
Dan van Leeuwen
Hi Daniel,
Thanks for an excellent blog.
I have successfully followed the steps and developed the Custom Fiori Client with required
applications Fiori url. once built the .APK file i am able to run on the android emulators
successfully. but when i am trying to install the .APK file in my physical android device it is giving
an error "App not installed. This app is not compatible with your phone" .
Could you please suggest me what should be need to change, and how we can share and install
.APK files in our physical device.
Thank you,
Regards,
Sudheer
Thanks for your comments on the blog.
I have not myself encountered that error. Does this happen for any APK file you build or just the Fiori Client? At the start of this blog series are the steps to create a very simple Cordova app.
Perhaps check to see what the version of the Android device is. Note the Fiori Client will run on Android devices 4.1 +. uses-sdk android:minSdkVersion="16" (AndroidManifest.xml and config.xml)
Check to see the value of Settings > Security > Unknown sources (Allow installation of apps from sources other than the Play Store)
Regards,
Dan van Leeuwen
Hi Daniel,
Thanks for quick response,
Yes, it is happening for any APK file,
I tried with android Device 7.0 and 6.0 latest versions, I have checked with Settings > Security >
Unknown sources also but I am unable to install the app.
When my device is connected system through USB cable, that time when I run the command
"cordova run android", it is directly targeting to the connected device instead of android emulators
and installed the app successfully and working fine.
Here the problem is I could not able to install the .APK file directly in my device.
How can we Deploy/Share the "Custom Fiori Client" .APK file to android device, Could you please
suggest.
Thank you,
Regards,
Sudheer.
To distribute an app to other users, one option would be to publish the app to the Google Play Store.
Another option would be to look further into the SAP Mobile Secure/Afaria offering which I believe has an option to automatically install apps on registered devices or to have an internal app store where you could publish the app to.
Regards,
Dan van Leeuwen
Thanks Daniel,
Could you please suggest any useful links / Blogs on how we can install apps on registered
devices using SAP Mobile Secure/Afaria.
Thank you,
Regards,
Sudheer.
I found the following page that might be of some help.
https://wiki.scn.sap.com/wiki/display/DOC2/SAP+Mobile+Secure+Enablement
Regards,
Dan van Leeuwen
Hi Daniel,
Thank you for helping me to resolving the things.
so far i have developed the “custom fiori client” for android device using windows system.
Now i want to develop Custom Fiori Client for IOS devices, so i have seen the command “cordova
run ios”.
What are the prerequisites to build the custom fiori clinet for IOS device and do we need APPLE
MAC in this case?
Could you please suggest.
Thank you,
Regards,
Srinivas.
Yes, you will need a Mac with Xcode to build a custom Fiori Client on a Mac. There are further setup instruction at the start of this blog series. See https://blogs.sap.com/2016/10/20/getting-started-kapsel-part-1-sp13/
I believe Fiori Mobile offers a cloud build service but I am not as familiar with that. There are some instructions on building a Kapel app using it at the below link.
https://blogs.sap.com/2017/04/11/appendix-g-sap-web-ide-fiori-mobile-and-the-hybrid-application-toolkithat/
Regards,
Dan van Leeuwen
Thanks Daniel,
I Understood now, Mac with Xcode should required to Build a Custome Fiori Clinet.
And daniel we are looking for Deploying apps via SCCM, So do you have any idea
about this microsoft sccm tool.
When we try to import the APK file in Microsoft SCCM tool, getting the below error.
Could you please provide me any suggestions?
Thank you,
Regards,
Srilaxmi.
Dan,
Thanks for the blog, this is so helpful, I need one help on solution approach. we have requirement to deploy the Fiori client from 3rd party MDM(Microsoft SCCM) to 200 mobile devices by preconfiguring Fiori Launchpad URL, is it the only option to develop custom fiori client and generate .APK file for android and .IPA file for IOS? what are the other options if any?
Appreciate your help.
Thanks
Rami Reddy
One option would be to use the app discovery feature.
Search this blog for the text "Entering an email"
The first time the user opens the Fiori Client they would be prompted to enter an email. A REST call is then made to retrieve a configuration based on the appID and the domain portion of the email address.
Another option would be to email the URL that contains the configuration parameters to your users. You could even provide a QR code that users could scan to add the URL. (http://www.qr-code-generator.com/) An example URL might be
https://YKFN00620418A.amer.global.corp.sap:443/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?appid=com.sap.fiori&fioriURLIsSMP=true
Another option would be to use a mobile device management solution. There is an example here.
https://blogs.sap.com/2016/11/10/sap-fiori-client-sp13/comment-page-1/#mdm
Regards,
Dan van Leeuwen
Thanks for such a beautiful blog.
I was able to create a custom client but have a little concern.
We have an SSO between Portal and Gateway and Users can use their portal credentials to login.
When i test .apk on vs emulator on API-19 (kit kat) , I get the attached Netweaver screen that fulfills my requirement. But the same Netweaver Screen does not run on API-23 (Marshmellow) devices , Rather , it looks like a browser page that needs to be manually zoomed to enter credentials.
I need the attached Portal screen to be run on devices with latest API-23 Marshmellow version.
Please advise how this can be achieved.
Thanks & Rgds
One of the changes I have had to make for the samples in this guide when using Android platform at version 6.2.3 was to add a metadata tag to the top of each index.html.
I wonder if the above would correct the issue you are seeing as well?
Regards,
Dan van Leeuwen
Hi Dan ,
Thanks for your input , Edited each index.html files and generated the apk , but output not as expected.
Still the below Attached Issue when run on API Level 21(Lollipop, 5.0) and above.
Rgds
Have you tried connecting the Web Inspector to the page? Is Netweaver returning different pages for different versions of Android?
How does the page display in the device's browser?
Are you using crosswalk in your custom Fiori Client? That is one way to ensure that the browser remains constant across different Android devices.
There is more information on crosswalk at
https://blogs.sap.com/2017/01/28/appendix-c-crosswalk/
Sorry Dan for my late response.
When opened after installing the .apk file in the Emulator...
When Launchpad link opened in the browser...
Not using Crosswalk.
My requirement is to get the Logon screen with Green Tick mark on all the Android versions.
Thanks & Rgds
Since the behavior is the same in both the Fiori Client and in the device's browser, I would recommend focusing on the Netweaver server.
Regards,
Dan van Leeuwen
Hi Dan ,
Sorry if misunderstood , The .apk and the Link works as expected on devices with Kitkat(4.4) version - API Level 19.
The Issue is on devices with Android 5.0(API Level 21) and above.i.e Both the .apk and the browser link opens up as a small landscape netweaver page that needs to be zoomed in to enter the credentials.
Rgds
Hi Dan,
As you said, at the first time when a user opens the Fiori Client they would be prompted to enter an email. Then a REST call is made to retrieve configuration based on the appID and the domain portion of the email address, such as:
https://portal.sapmobilesecure.com/config-api.svc/ApplicationConfigurations/getApplicationConfiguration(AppConfigID='parameter1',EmailAddress='parameter2')
My question is can we configure fiori client to point to other mobile secure landscape than https://portal.sapmobilesecure.com? Because we have no credential on this product landscape.
I know this value is hard-coded with app store version, but can we made it by custom fiori client?
Thanks
Take a look at the file LogonController.js and search for mobilePlaceHost.
From looking at that I would expect that you could add
mobilePlaceHost="your mobile secure host";
in the C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\FioriClient\wwwappConfig.js file.
Hope that helps,
Dan van Leeuwen
Hi Dan,
Thanks for you reply.
I tried you suggestion by below steps:
But it still can not retrieve configuration from mobile place.
Attached result from rest call and fiori client
Is my steps correct? Or do i need some more configuration?
Thanks again
I took another look at the code and I believe it should be even simpler.
Have a look at this bit
//update mobilePlaceHost if caller sets it in provided context
if (context.appConfig.mobilePlaceHost != undefined) {
mobilePlaceHost = context.appConfig.mobilePlaceHost;
}
So, in your www\appconfig.js file add
"mobilePlaceHost": "https://portal.pilot.sapmobilesecure.com",
Hope that helps,
Dan van Leeuwen
Hi Dan, now I can connect to Discovery Services successfully.
Thanks!
Hi Dan,
Thanks for helping by writing this blog. I am using kaspel sdk version 3.15.3, SMPSDK SP 15, PL 2.
I am facing very strange issue where in at time of testing the app, i am able to open the attachment in IOS and Android but same is not working after wrapping the app and deploying it.
In IOS, when i try to open any
(i) image - it display me just a white screen and done option on click of which it takes me back to the previous screen.
(ii) PDF - does not open pdf and shows blank screen
In Android, when i try to open image, in few devices it opens up the image after displaying a white screen for 3 seconds but in few devices it gives error "unable to find the file" after displaying white screen.
Kindly suggest what can be the issue.
Can you clarify by what is meant by wrapping the app?
Have you looked at the JavaScript console, Xcode all output, the Android ADB logs or the Fiori Client after increasing the debug log level?
Regards,
Dan van Leeuwen
Hi Daniel,
Stumble into your blog as we’re exploring on using SMP to mobilize our existing Fiori Launchpad and enabling Push Notification feature via standard SAP Fiori Client (Appstore).
We’ve configured the Cloud Connector to connect to our on-premise systems that host the Fiori Launchpad:
Published the app on SAP Fiori Mobile Service:
Configured the Discovery Service for configuration push to Fiori Client
When we use our email for the configuration, i believe it picks up the config correctly. But at the next login page, we tried putting in our On-Premise Fiori Launchpad ID and it doesn’t work. Tried using Cloudplatform ID and it also doesn’t work. I’m wondering which ID is it actually requesting for.
Or is there any other configuration or deployment method we’re missing.
Thank you
**Update**
Managed to get the login credentials working, we missed out activating SICF service for PING. Afterward, I think the registration to SMP works. However, we haven't managed to get the Fiori Launchpad to show. I'm getting 503 Error Resource not available.
Best Regards,
Suwardi
Hi Daniel,
Thank you for such a detailed blog. I have followed the steps and able to register the application on mobile device. But after registration i am getting blank scree.
Do you have any suggestions where i have check the issue.
Thanks,
Ashwin
What platform (iOS, Android, Windows)?
What type of a registration is it? Is it a SAP Cloud Platform Mobile Services or SAP Mobile Platform server or a direct to your Netweaver Gateway?
Have you tried attaching the Web Inspector to see the JavaScript logs or looked at the native logs in Xcode for an iOS app or the Android native logs?
Regards,
Dan van Leeuwen
What platform (iOS, Android, Windows)?
=Android
What type of a registration is it? Is it a SAP Cloud Platform Mobile Services or SAP Mobile Platform server or a direct to your Netweaver Gateway?
=We are using SAP mobile platform(SMP3.0 SP13 and SMP SDK 3.0.15)
Have you tried attaching the Web Inspector to see the JavaScript logs or looked at the native logs in Xcode for an iOS app or the Android native logs?
Inspector: http://<SMP URL>:8080/com.sap.fiori/sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html?smphomebuster=5084643883615281
Error : 503 Service Unavailable
APPconfig.js file:
fiori_client_appConfig = {
"appID": "com.sap.fiori",
"fioriURL": "http://<SMP URL>:8080/sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html",
"fioriURLIsSMP": true
};
Please help.
Wanted to add one more thing our fiori server is redirected through web dispatcher and we using that URL.
One mistake I have made a few times is to forget to set the rewrite mode to rewrite URL on backend when proxying a Fiori app through the SMP server.
Do you get the same error if you go directly against the SMP server instead of through the web dispatcher?
The following blog post mentions how to do a server trace which shows the requests coming into the server and the requests it makes. That might be helpful.
https://blogs.sap.com/2017/05/11/appendix-h-tips/#serverTrace
Regards,
Dan van Leeuwen
Hi Daniel,
Thanks for the help!!!
Now it is working!! This issue was in our Fiori URL which we were trying to access over web dispatcher. When we configure it to access directly it starts working with SMP.
Hi Dan,
Thank you for this nice blog.
I have just prepared SMP SDK SP15 and I am able to create custom FioriClient for android.
I must do so to enable TLS 1.2 protocol in my FioriClient, as I used android 4.4.KitKat in which that protocol is supported but by default is disabled.
I found the workarround in the following site:
https://github.com/square/okhttp/issues/2372
but I do not know where to put the custom code which makes TLS 1.2 protocol enabled.
Could you help and tell in what script file of FioriClient KapselSDK that custom code should be inserted?
Thank you in advance
Slawomir Wrotniak
My first thought was to verify the version of TLS that occurs between the Fiori Client and a sever. I ran an Android 4.4 emulator that has a custom Fiori Client on it. The emulator is proxying its communications through Fiddler. The following post mentions how you can use Fiddler to examine the version of TLS being used.
https://stackoverflow.com/questions/34276358/how-to-test-which-version-of-tls-my-net-client-is-using
In my case, I set the Fiori Client to demo mode and examined the Tunnel to entry in Fiddler and saw that TLS 1.2 is being used.
CONNECT www.sapfioritrial.com:443 HTTP/1.1
Host: www.sapfioritrial.com
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Android SDK built for x86 Build/KK) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Version: 3.3 (TLS/1.2)
Hope that helps,
Dan van Leeuwen
Is there a way to customize the native menu showed when double tapping (Hiding Homepage-Button)? Or to change the event (double tapping can be frustrating for instance when there is a StepInput-Control on the UI and you Tap - or + Buttons to increase/decrease values)
Unfortunately the double tapping was implemented at the native level as opposed to in JavaScript so it is not configurable. You might try looking at fioriclient.js and search for sap.Toolbar.addItem but this wasn't meant to be configurable so any change you would make to the file would have to be made again the next time you upgrade the SDK.
Regards,
Dan van Leeuwen
Hi Daniel,
Browserify does not work with Android?
in below link, its mentioned that it work for Android:
https://help.sap.com/viewer/e2ed9b4f3edb4391a7a89b1af84d9606/3.0.15/en-US/8483f4c670274d2ba51ed04b4c2dc8d8.html
Technical Environment: SMP : True, Kapsel : SP15PL04, Disable Passcode: True.
Regards,
Shivesh Ranjan.
I am not seeing an error when I try it. What error are you getting? Note, I would recommend testing the startup time with Browserify on and off. I don't think there was much of a savings in terms of startup time on Android but it likely depends on the device. Essentially, browserify is going to concatenate all of the JavaScript files into one file named cordova.js.
Regards,
Dan van Leeuwen
Hi Daniel,
We tried Deploying an Kapsel App over App Store, while deployment we got this error.
Technical Environment - SMP : False, Kapsel : SP15PL04.
While deployment over App Store we choose - Language : English US, Country : India and other pre requisites.
Regards,
Shivesh Ranjan.
Hi Daniel,
I removed those folder in XCode and uploaded again. And, it got uploaded.
Thanks,
Shivesh Ranjan.
I am glad you were able to work around the issue. I believe this issue has been addressed in the latest version of the product SP 16. Apparently the issue was a case issue. base.lproj should have been Base.lproj.
Dan van Leeuwen
Hi Daniel,
My requirement is to open Fiori client on click of direct URL. To test this feature I created a sample HTML page and put below code in it.
I it in android, it’s opening Fiori client on click of direct url .
<html><body><div id=”container”>
<a href=”com.sap.fiori.xcallbackurl://x-callback-url/openFioriUrl”>Deep Link to Fiori Client</a> <a href=”com.sap.fiori.xcallbackurl://x-callback-url/openFioriUrl?url=https://www.sapfioritrial.com/sap/hana/uis/clients/ushell-app/shells/fiori/FioriLaunchpad.html?helpset=trial&sap-client=001#ContactPerson-MyContact”>My Contacts</a>
</div> </body> </html>
————————–------------------------------------------------------------------------------------------------------------
But for IOS it’s not working, Do I need to make any further modification to this code for IOS?
On IOS it's not doing anything on click of the link. I checked IOS device settings, there is no restrictions maintained.
Kindly suggest.
Hi Team,
Can some one please suggest for the above query.
Regards
I just tried this on an iOS 11 simulator and it worked. I opened the link from the Safari mobile browser. I assume you are using a custom Fiori Client using the same appConfig.js from this blog and not the Fiori Client from the app store. The app store Fiori Client uses a different appID.
Regards,
Dan van Leeuwen
Hi Daniel,
Thank you for the response.
I am trying it using standard Fiori client app. Is there any way I can achieve it(opening fiori client from direct URL click) using standard Fiori client?
As I feel a challenge in hosting Custom Fiori client app in Apple store as there extra is cost and Apple validation involved in this.
Try using
<a href="com.sap.fiori.client.xcallbackurl://x-callback-url/openFioriUrl">Open Fiori Client App Store</a><br><br>
Note the difference is in the appID com.sap.fiori (used in the custom Fiori Client in this blog) vs com.sap.fiori.client (used by the Fiori Client published to the App Store)
Regards,
Dan van Leeuwen
I tried this also
<html>
<body>
<div id="container">
<a href="com.sap.fiori.client.xcallbackurl://x-callback-url/openFioriUrl">Deep Link to Fiori Client</a> <a href="com.sap.fiori.client.xcallbackurl://x-callback-url/openFioriUrl?url=https://sapdev.genesiscare.global/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=110&sap-language=EN#Shell-home">My Contacts</a> </div> </body> </html>
But still if I am running it and clicking on My Contacs hyperlink it's not working on IOS. On android if I am clicking this link it's opening Fiori client app, Can you please suggest something for this.
Regards
I took the above HTML (replaced the quotes) and hosted it on a web server.
I then opened the page on my iPhone using Mobile Safari.
When I click on either link, I get a dialog that says Open in "SAP Fiori"?
I am not sure what else to check other than to make sure you have the same version of the Fiori Client although I wouldn't think that would matter as long as it is from the App Store.
In the settings menu, under version I see 1.10.3
Just to be clear, is either link working for you on iOS?
Regards,
Dan van Leeuwen
Hi
We are also using Fiori client 1.10.3 in our Iphone.
When I am clicking on any of this link it's opening a pop up saying "Trying to open another page" But then when I hitting enter it's not doing anything means it's not going to Fiori client.
Is it opening Fiori client for you when you click on any of this 2 links?
Will it be possible to have a skyp call session .
Are you clicking on the link from Mobile Safari?
Here are a few other debugging tips to try.
With your iPhone connected to your Mac, are there any more errors or details shown in the Web Inspector(Safari, Develop, iPhone, yourIndex.html).
In XCode, under Window, Devices and Simulators, if you select your device, it should be possible to view a console window by expanding the area at the bottom. Are there any messages there related to the problem?
I would recommend contacting support for further help,
Regards,
Dan van Leeuwen
I have a requirement where I need to open the Fiori Client if the Fiori Launchpad is accessed through an external link on a mobile device, but if this URL is being accessed through a browser on other devices(desktop), then the launchpad should open Normally, on the browser.
To test if I can trigger calling the Fiori client on mobile, I created a test hyper link and there I used <URL scheme>://x-callback-url/openFioriUrl?url=<SAP Fiori URL> and it is working fine in both iOS and Android Devices.
My company wants to provide only one link to the users for the Fiori Launchpad. How can I deal with this and how would the URL look like if it has to work both on the browser on desktop and also trigger calling of Fiori Client on Mobile.
Thanks in advance..
I found the following link and tried the below.
https://stackoverflow.com/questions/22873068/deep-link-fallback
The idea is to link to a page that you host which can then try to open the deep link in the Fiori Client and if it fails, open another URL such as the launchpad URL in the browser.
It seemed to work ok on iOS but not on Android.
I think this is due to
https://github.com/EddyVerbruggen/Custom-URL-scheme/issues/156
Regards,
Dan van Leeuwen
Hello Dan,
Thank you very much for your inputs. The approach almost worked for me. But instead of time out, I got the device type. In SICF, I created an external alias for the Launchpad service, and wrote the below code in the index.html file.
It worked for me, with a little bit of modification, both on IOS and Android. Here is my code.
Hi expert, i notice the push notification method need SAP Cloud Platform mobile Service which is pay to use application. Im just wondering, is there any method which is free?
My goal is to send push notification to fiori client (downloaded from google store)
Thanks
The Push plugin that is part of the SAP Fiori Client on the app store is for use with the SAP Cloud Platform Mobile Services.
It is possible to create a custom Fiori Client as is shown in this blog. You are free to then add other plugins to the project such as another plugin that supports push.
https://cordova.apache.org/plugins/?q=push
or
https://github.com/phonegap/phonegap-plugin-push
Hope that helps,
Dan van Leeuwen
Hi
How did you get this one C:\SAP\MobileSDK3\KapselSDK\apps\fiori_client\create_fiori_client.js,
It is part of the SAP Mobile Platform 3.1 SDK. There are some steps mentioned on how to download it at the start of this blog series.
https://blogs.sap.com/2016/10/20/getting-started-kapsel-part-1-sp13/#smp
Note the current version is 3.1 not 3.0.
Regards,
Dan van Leeuwen
Dear Dan ,
I created Fiori Client for windows desktop, But when run shows up a blank screen.
When i checked the settings , i dont see any url.
kindly advise.
Rgds
Hi Daniel!
Thank you for the blog and all great work you've done!
Do you have any plans to release an article about another approach for mobilizing fiori applications - packager?
For instance there is just zero information at sap.com about customization and "beautyfication" of its local launchpad.
Best regards,
MIkhail.
No, I do not have plans to do so. Thanks for the feedback. At the end of September we released our SAP Cloud Platform SDK for Android and I have been building up some tutorials and samples for it.
Regards,
Dan van Leeuwen
Thank you for the reply!
Best regards,
Mikhail
Hi Daniel,
Nice article. I am trying to do a Cordova Fiori build (Windows 10 and Visual Studio 2017 Community edition)
C:\SAP\MobileSDK\apps\fiori_client\FioriClient\www>cordova run windows -- --archs=x64
and I get this error.
I am not sure what the issue is. I am wondering if you might know of this issue.
Thanks,
Jay
I am not sure what I need to do. I have Node v10.15.3, NPM 6.4.1, and Cordova 8.1.2 (cordova-lib@8.1.1). I have set the environment variable
Hi Jay,
This was a known issue earlier which we fixed. You should use the latest version of the Kapsel SDK. Could you try with the latest patch version of the Kapsel SDK 3.1? If it doesn't work, please provide here the version number and I will check it.
Regards,
Peter
Hi Peter,
I just downloaded the SDK yesterday from:
https://www.sap.com/developer/trials-downloads/additional-downloads/mobile-platform-sdk-free-download-13098.html
The filename is SMPKapselSDK-311. I am not sure where to get the exact SDK version number. Is it in a file somewhere. Or can i run a command? I am including the files below that maybe indicate the version and patch. Is there another version through SDN that is at a higher patch that than URL above?
Here is the create_fiori_client.js file:
And here is the config.xml:
Thanks for your help.
Regards,
Jay
Hi Peter,
I looked through support.sap.com and software downloads and did not see the MDK. I am not sure if this is related to my oss account.
I did open up the generated project and was able to build and kick it off.
But is errors out at the logger:
I am getting the following error:
SCRIPT340: Unhandled exception at line 9, column 3 in ms-appx-web://com.sap.fiori/www/plugins/kapsel-plugin-logger/windows/src/logger_proxy_win.js 0x80040154 – JavaScript runtime error: Class not registered
I do see the plugin here though - so i do not see why i get the class not registered error:
I am not sure what to do – but it looks better than the command line build.
Regards,
Jay
Hi Jay,
The exact SDK version you can get from the package.json file from the SDK\apps\fiori_client\ directory.
The MDK is a different SAP product so it doesn't matter related to the Fiori Client.
It is good progress that you can build with the Visual Studio. The msbuild is working better than calling with the Cordova.
I saw the issue which you experienced a few times. For me the solution was to clean the solution, delete the apps\fiori_client\FC\platforms\windows\build\ directory and uninstall the Fiori Client.
Please try this and let me know the result.
Thanks,
Peter
Hi Peter Kiss and Daniel Van Leeuwen, - I was able to get the SAP Fiori client build working for Windows with the latest KAPSELSDK02_0-70003613.ZIP. I had uninstalled the Fiori client before this.
I don't see the SDK version anywhere - but I know this is supposed to be SDK 3.1 SP 2.
Here is the package json from the apps\fiori_client directory.
{
"name": "@sap/create_fiori_client",
"description": "A script for creating the Fiori Client application.",
"version": "4.2.1",
"homepage": "",
"author": {
"name": "SAP",
"email": ""
},
"dependencies": {
"elementtree": "^0.1.6",
"shelljs": "~0.8.3",
"semver": "~5.6.0",
"xml2js": "~0.4.19"
},
"keywords": []
}
Thanks,
Jay
Hello together,
Where did you download this package KAPSELSDK02_0-70003613.ZIP ?
I only can find SMPKapselSDK-311.zip
From the following link, select https://launchpad.support.sap.com/#/softwarecenter/template/products/_APP=00200682500000001943&_EVENT=NEXT&HEADER=Y&FUNCTIONBAR=Y&EVENT=TREE&NE=NAVIGATE&ENR=67837800100800005566&V=MAINT&TA=ACTUAL/SAP%20MOBILE%20PLATFORM%20SDK
SAP MOBILE PLATFORM SDK 3.1 > KAPSEL SDK 3.1
Regards,
Dan van Leeuwen
Many thanks
Hi Daniel, we have configured notifications on our fiori launchpad as explained in blog https://blogs.sap.com/2017/02/13/leading-s4hana-ux-notification-center-part-1-activation
hence whenever there is a purchase request or a purchase order created we get a notification on the launchpad. We have been told that the notifications appear on the fiori client as well, however we wanted to check how can push notification(for fiori client) be achieved in this case. Thanks in advance.
The above section of the blog demonstrates though how the Fiori Client itself can receive native push notifications and have those display in the devices notification area and provide badging on an iOS device in the Fiori Client and perhaps also in newer Android OS versions. https://blogs.sap.com/2016/11/10/sap-fiori-client-sp13/comment-page-1/#push
Hope that helps,
Dan van Leeuwen
Hi Daniel,
If we have standard fiori applications like approve purchase orders, approve purchase requests etc running on the fiori client on mobile, how can we get the push notification on the mobile for multiple fiori apps? Do we need to configure push notifications for the standard fiori application on HCPms - in that case, how will the notifications be pushed to the fiori client on mobile? or do we need to configure push notifications for the fiori client on HCPms - how will it work for multiple fiori apps for same fiori client? Please help me understand on how we can achieve the same. Thanks in advance.
Pradip
Hi Daniel Van Leeuwen,
I am trying to use the functionality to cache user credentials on an ADFS form that our users are prompted for when using our SAP Cloud Apps.
If I use a URL similar to this:
on the public app store Fiori Client, it works fine.
I also followed this documentation:
https://help.sap.com/viewer/e2ed9b4f3edb4391a7a89b1af84d9606/3.0.15/en-US/6896e3c45d4f41b182389afeec8c1cca.html
But I would like to achieve the same using custom Fiori Clients built with deprecated Fiori Mobile. If i put the same URL parameters after the same Fiori Launchpad URL, but in a custom Fiori Client app in Fiori Mobile cockpit, it seems that the Fiori Client does not parse the URL parameters (although I can see them in Settings of the Fiori Client), the functionality seems to be ignored and does nothing. Do you know if this should work?
Note that in our company we must use Fiori Mobile admin cockpit to cloud build our custom Fiori Clients because we need to add custom cordova plugins that do not exist on the public Cordova plugins list AND we must have SAP Cloud Mobile Place for our users to download our apps from.
I understand that in WebIDE I can edit appConfig.js, but my issue is that i cannot then cloud build our custom Fiori Clients into Mobile Place with custom plugins that way, so that is not good for me.
Any idea how I can save form credentials in custom Fiori Mobile built custom Fiori Clients?
Thanks,
Brendan
Hi Daniel,
how do i upgrade a custom Fiori client (using kapsel ) that was built and deployed using older Cordova and ios, version and needs to be upgraded to support the latest IOS13.1 changes, do i need to rebuild it? , or is there a way to update the plugins and libraries?
Thanks
Ronen
I would recommend building a new custom Fiori Client using the latest SDK.
Regards,
Dan van Leeuwen
Hi Daniel,
We are trying to customize Fiori client app by using ADFS login system for SSO functionality.
We have created a cordova project and built an apk project for testing but we are not sure where we can write the code for ADFS functionality for SSO in the custom app so that user does not have to input the credentials every time they open the app. Please advice us the same.
Thanks & Regards,
Vishal Sharma
Hi Daniel
i am trying to create a client for iOS using the latest SDK.
I want to access a launchpad directly from a frontend server without SMP / SAP CP Mobile Services.
The appConfig.js contains the Launchpad Enpoint as follows.
"fioriURL": "https://myserver:myhost/sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html",
"fioriURLIsSMP": false,
When starting the app both in simulator and on the device i see the splash screen and thereafter a whit screen. No errors showing up in the log. Do you have any idea or tip on this ?
THanks!
Regards
Martin
Hi Martin, There are many issue could cause this problem. Please run a check on your SDK , User iOS (Your Developer environment's iOS version & XCode Version) , Frontend (Gateway UI5 Libraries and their compatibility with iOS SDK you are using. Check logs of XCode and on simulator/Device runtime logs.
Thanks,
Chinmay
https://4qrcode.com/ you can use the free QR Code generator online without paying anything is easy and fast it gives the ability to download the QR Code with multiple formats like PNG, SVG, PDF
Hi,
Anyone can help me?
I try to explain
Every time we open our custom Fiori client, we arrive to ADFS landing page (we have disabled standard passcode policy as we only want to login with ADFS), here we have to login with user/password, and we would like to know if there is any form to use touch ID as alternative.
We want that the user have the obligation every time to login in ADFS landing page but in this case that the user had the option with TOUCH ID and when touch ID is not recognized that you can also put user/password. It is like a typical banking app.
We do not want to allow saving credential as we want that the user have the obligation to login but we want to facilitate login via touch ID.
Is it possible this using SAML2 with ADFS 4.0?
Thanks a lot