In situation where you get slow download time through your, rather than to rely on 3rd party caching, we recommend you to use the “Offline mode” or “Prefer Cache” features included in the SAP BI Platform and mobile client application.
<How “Prefer Cache” option works>
“Prefer Cache” works on top of downloaded dashboards and has no implications if a dashboard is not downloaded (If the dashboard is not downloaded, then the cache cannot work).
The way it works is like this:
1.User downloads a dashboard.
2.Opens it in online mode.
3.Whatever backend requests are triggered during this workflow, will be cached on client.
4.If “Prefer Cache” is enabled then whenever user opens the dashboard afterwards, cached content will be displayed. This functionality does not consider changes in backend i.e. even if backend data has changed, client will display cached data and not the latest data.
5.To display latest data, you need to update the document. If document is updated then local cache gets deleted and latest data will be displayed.
Prefer Cache – Prerequisites
- As can be seen from point 4 in the earlier slide, you should not use “Prefer Cache” if backend data changes frequently as in your case because currently there is no option to delete the cache from client.
- Our proposed solutions also use “Prefer Cache” option but, since there is no option to delete cache, we need one more action to delete the old cache by updating the dashboard.
- In order to control the cache and update it only when you really need to update the data, please perform the following.
1. Set feature.dashboards.prefer.cache.enabled = true
3.Update manually or automatically the dashboard when it is necessary to push updated data to the client devices.
- To update the dashboard, you do not need to update anything inside the dashboard, just exporting the dashboard once again is enough to change the value of “update timestamp” in the repository.
|Configuration to check||Remarks|
to check C
Set offlineStorage = true in CMC -> Applications -> SAP BusinessObejcts Mobile -> Properties.
Refer to SAP Mobile Administrator’s guide section “4.7 Configuring Application’s Behavior by Specifying Properties on the Server” for more information. http://help.sap.com/businessobject/product_guides/boexir4/en/631_mobiOS_admin_en.pdf
Unmark “Confidential” if it is set as confidential in the dashboard properties.
You can verify by looking at padlock icon, if it is confidential, you will see the icon, if not confidential, there would be no icon shown.
Grant the rights to users to save dashboards on device (only when the right is granted and offlineStorage=true, users can download/save BI documents to the device).
See the section “4.8 Granting Users the SAP BusinessObjects Mobile Application Rights on BI platform”: http://help.sap.com/businessobject/product_guides/boexir4/en/631_mobiOS_admin_en.pdf
Set the parameter “offlineStorage.ttl” to proper values.
The default value is 365 days (offlineStorage.ttl=365), this means that the downloaded documents would be cached and expired after 365 days and are automatically removed from the local memory of device. Please adjust the value to your business needs.
Prefer Cache – Updating Dashboard Time Stamp
If it is not possible to update the dashboard manually as in your case (because that would involve too much operational workload to end-users), then possible alternative for you would be to use some automatic procedure to update the dashboard. Here are some possibilities to update the dashboard time stamp.
Using Java SDK script
Use Java SDK script to update the time stamp, and configure some schedule mechanism to execute the java script, at defined interval (for ex: every 1 week or 2 weeks), or under some trigger condition.
Scheduling an LCM job
Schedule an LCM job to re-upload the dashboard at fixed dates or under some trigger condition.
How to create a trigger condition using Events for solution 1 & 2
- You can create a “trigger event” that will execute the SDK script on the condition that new data is added in the database.
- To achieve this kind of mechanism, you need to know some database columns that will always be updated when new data is added into database.
- For example, you can use ETL_Flag
- Then based on the database ETL_Flagtrigger event set in BI server would trigger the execution of SDK script or LCM job schedule to update the required dashboard time stamp.
- As a consequence, the dashboard would be pushed to the client devices, as it has been flagged as updated, and the old cached version would be deleted from the client devices.