Using CRM Fiori apps offline
The CRM Fiori apps are highly appreciated by SAP CRM customers, and also by the user group “sales representative”, which is the focus of the current CRM Fiori apps. However one big hurdle was continously mentioned: I want to use the apps offline.
Now the first two CRM Fiori apps are available as offline-enabled apps: My Accounts, My Contacts.
A customer who is interested in using these apps offline needs to apply SAP Fiori 1.0 for SAP CRM 7.0 EHP3, SP10 (wave 10); with release to customer date October 1, 2015. As further prerequisites SAP Mobile Platform (or its cloud edition HCPms) is required, and SAP Mobile Secure.
Using an app offline means the following:
- The user can view, create and change data in the offline app. The user experience is as known from SAP Fiori.
- All data is stored locally on the device
- Data is synchronized with the CRM backend via SMP, or its cloud edition HCPms
- When having network connection data is immediately sent to the CRM backend
For app users this is great:
- You can work wherever you are, with or without network connection
- You can count always on reasonable speed of the applications
- You can forget about making sure that your changes made offline are in the CRM backend
Now let’s come to building an offline app:
The process to get an offline app on your device can be described as follows:
In the customer environment the apps are packaged for offline use: The customer assembles all relevant data in a package. Then the customer uploads this package to “Mobile Place” of SAP Mobile Secure. From there the users can install the offline app on their devices. The data ges provisioned to their devices as defined, for example “my” accounts.
See also the following picture:
Detailed documentation can be found here in “Preparing SAP Fiori Apps for Offline Use” (help.sap.com).
This approach has some great advantages:
- The offline apps are under control by the customer.
- Examples: They can be enhanced customer-specific; different offline apps can be provided for different user groups; branding, such as the use of a company-specific app-icon, can be applied.
- Which data is provisioned to the devices can be defined flexibly (default: as defined for “online” app)
- The apps are NOT native apps: One common code line is used.
- The known Fiori design principles apply, such as responsiveness.
Please note that these offline apps can be used on smartphones and tablets, starting with IOS as the first platform.
Thank you for the great post. This looks very interesting. Do you have some information or maybe screenshots of how offline specific concepts like synchronization status of individual items / handling of errors / etc. is handled in the UI?
Also from looking at the My Contacts and My Accounts pages, it seems that there are a lot of restrictions on features in offline mode. Can you confirm that some editing capability is actually available offline and that this is not just for viewing data?
When the synchronization of data is running the user can still proceed with working in the offline app. So, the synchronization doesn't block the UI. The goal is to not disturb or interrupt the user when the technical process - synchronization of data - is running. When the synchronization is started the user is informed about that. Also when it is completed successfully an information is provided to the user. With that the user can feel safe. The synchronization status of an individual item is only provided to the user if an error with that item occurred. Such an error can be found in the error log.
It looks as follows:
The user can open it, look at the different errors with detailed information and solve the errors. With the next synchronization the error log would not show these errors anymore.
It is planned to provide some more features around synchronization, such as showing the date and time of the last synchronization, or triggering synchronization automatically when the offline app is opened.
I can confirm that editing functionality in the My Contacts app and My Accounts app is available. Lately we added also the possibility to create accounts offline and edit account data, such as rating or address data. See the SAP Note 2203696 for details.
Hope this helps.
Thank you for the great aswer! I really look forward to getting this up and running on our own environment!
Can you tell me how and when synchronization is currently triggered? Does it attempt to sync periodically or is the app listening for the connection status or similar?
Currently the user needs to trigger the synchronization explicitly. There are two options to trigger it: (1) Tap on "Synchronize" command, (2) Pull down to refresh.
See the following pictures:
It is planned to provide additional, more convenient options by listening to the network connection status, as follows: If you have network connection, data is synchronized automatically once an hour and when the offline app is opened.
Thanks for the post .
Is it right to say that any SAP Fiori App can be configured to have the 'offline' functionality?
Our field service team needs an App to support SAP CRM Complaints with offline option.
Unfortunately this is not true. A SAP Fiori App needs be enabled in the coding itself by the development team to work as an offline app. If such an app is newly developed it is a good decision to already take care that it needs to support offline. This is much easier than enabling this later for an already existing Fiori app.
I have a question about the screen shot with the 3 applications.
As Account app and Contact app use the same service, I can set the endpoint of the application with the url of the service CRM_BUPA_ODATA.
But if I put the Opportunities app in the config file to have the three apps running in the same launchpad, how can i set the endpoint in the smp server ?
I assume you expect the My Opportunities app to be handled as an offline app in that case? This option is not supported yet. You need to wait for a next delivery of "SAP Fiori 1.0 for SAP CRM".
Anyhow - as soon as you have this extended flexibility - you possible can benefit from the following documentation: http://help.sap.com/fiori_bs2013/helpdata/en/9d/33bb550c208e51e10000000a4450e/content.htm
Thanks for the answer.
Let me explain my though.
The CRM fiori apps are linked between them.
For example, from Account app, you can jump into Opportunity app to create an opportunity.
So my problem is to know if I can create a offline application embedded the CRM apps launchpad (something like a custom fiori client with offline capacity)
If I can not, is the only solution to create independent mobile offline apps that can call each other ?
In case you want to have an integration between these apps that show updates in one app immediately in the other app (for example changed contact data) none of these approaches work as expected.
If the integration can be a little bit more loosely coupled it possible makes sense to try out your first scenario that includes the custom fiori with offline capability. However for this app you need to make sure that it has an app descriptor maintained (manifest.json). Also it is a question if you use the cloud packager or the local CLI packager.
You can see there are a few details to verify, think of - and perhaps try out.
I will ask a colleague that is expert in this specific area if he can join the discussion.
From my side I would suggest that you start trying out a few things so that you can check the details and verify the result.
Thanks for the reply.
I will try the following :
first : extend the standard Opportunity app to a stand alone opportunity mobile app with offline capacity
two : custom fiori client with three apps and offline capacity
For the app packager, i will try the two ways (Cloud and local)
Thanks for your help.
I hope I could write a post about this soon
Could you please suggest the services that are used for offline enablement? Are the below services contains all the functionalities/features specific to Offline?
We are running on SAP Netweaver 7.4(SAP_GWFND 740 0015 SAPK-74015INSAPGWFND SAP Gateway Foundation 7.40)
Appreciate your support !
Can you suggest how to download attachments and cache them in offline store at high level. I tried to save the stream using $value but binary is not getting saved . Same issue is discussed in the below blog and $value seems to be a constraint in Offline oData.
Please shed some lights here. Appreciate your support.