Symptom
- After executing the SAC analytic reports and using 'saved bookmark as default' option by changing the period input control, while trying to re-run the same report, we are getting Blank page (white screen). It failed to be loaded.
- As workaround : delete the default bookmark saved, and the report can be loaded again
- The issue with the default bookmark occurs after QRC Q1 2025.
- Errors in Console :
169.main.2ea78b4….js:19 Script execution failed for event "Application.onInitialization" STORE_COMMIT_TRANSACTION/1 failed as store has been destroyed
app.chunk.appBuildin…eb4670dd334b8c.js:1 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'getContainer') at c.<anonymous>
169.main.2ea78b4….js:19 [Unified Store] Atomic or eventual listener or external refresh triggered error, ignoring: [FailedAction - Action: store.refreshExternalState@[{"app":"MAIN_APPLICATION"},{"story":"storyID"},{"pageFilterWidget":"cf0a35a3-26d9-41c4-8556-8f35609fd2dc"}] - Error: Store.HandlerInvalid/External component for pageFilterWidget not found] at Error: [FailedAction - Action: store.refreshExternalState@[{"app":"MAIN_APPLICATION"},{"story":"storyID"},{"pageFilterWidget":"cf0a35a3-26d9-41c4-8556-8f35609fd2dc"}] - Error: Store.HandlerInvalid/External component for pageFilterWidget not found]
at new t
Error: [FailedAction - Action: store.refreshExternalState@[{"app":"MAIN_APPLICATION"},{"story":"storyID"},{"pageFilterWidget":"cf0a35a3-26d9-41c4-8556-8f35609fd2dc"}] - Error: Store.HandlerInvalid/External component for pageFilterWidget not found]
at new t
169.main.2ea78b4….js:19 Error: [FailedAction - Action: SET_SELECTED_MEMBERS@[{"app":"MAIN_APPLICATION"},{"story":"storyID"},{"pageFilterWidget":"cf0a35a3-26d9-41c4-8556-8f35609fd2dc"}] - Error: Store.UnhandledError/Unhandled failure during external write operation.] Unknown throwable: Protocol Error: Error [Protocol]: (#73) Connection is already released
Environment
- SAP Analytics Cloud 2025.1.5
Cause
The API NavigationUtils.openApplication("9B880501041DDEC2250600DF1D25A0C4", urlParam, false); is called in onInitialization() event, and since there are other scripts to be executed on the current page, the page navigation is failed. The issue is rare and it depends on specific pages and scripts, so, we encourage users can use workarounds to resolve the issue.
In the old version, it has fewer features than QRC 2025.01, so functions are executed faster than QRC 2025.01, so it is less likely to have navigation fail. It is still possible that the old version has the same issue if there are more functions in Oninitialization. So, using Timer is a better practice.
Resolution
Users can just change the way they apply the default bookmark.
There are several solutions. Users can pick any one of them to resolve the issue.
- If users just need to open the report and make it apply the default bookmark, they do not need to write any scripts in Application – onInitialization. They can add the parameter :
&bookmarkId=DEFAULT in the URL to open the default bookmark.
For example, the original application URL is
https://tenantxxxx/sap/fpa/ui/tenants/f5e3d/app.html#/analyticapp&/aa/9B880501041DDEC2250600DF1D25A0C4/?mode=present
the changed URL to open the default bookmark should be
https://tenantxxxx/sap/fpa/ui/tenants/f5e3d/app.html#/analyticapp&/aa/9B880501041DDEC2250600DF1D25A0C4/?mode=present&bookmarkId=DEFAULT
using this URL can open the application with default bookmark.
2. If users want to use NavigationUtils.openApplication, users can set the latest argument to true, so a new web page will be opened to load the bookmark successfully.
For example, NavigationUtils.openApplication("9B880501041DDEC2250600DF1D25A0C4", urlParam, true);
3. If users do want to open the application on the same page, they can add a Timer from the outline, and call openApplication in the Timer timeout event.
For example, add Timer_1.start(5); in Application – onInitialization(), and then add
var urlParam= UrlParameter.create("bookmarkId","12208900-3539-4319-3732-734539941713");
NavigationUtils.openApplication("9B880501041DDEC2250600DF1D25A0C4", urlParam, false);
in Timer_1 - onTimeout
So, NavigationUtils.openApplication will work after the Application – onInitialization() is fully executed (wait for 5 seconds).
4. If users do not want to use Timer to delay NavigationUtils.openApplication, they can make sure NavigationUtils.openApplication is the latest executed code in Application – onInitialization . It means no other code will be called after NavigationUtils.openApplication . In those case, users may add
var isNew = false; at the beginning of Application – onInitialization, and then
if (bookmarks[i].isDefault === true)
{
isNew = true;
...;
NavigationUtils.openApplication("9B880501041DDEC2250600DF1D25A0C4", urlParam, false);
}
and then
if(!isNew) {
Panel_load.setVisible(true);
Panel_hidden_lov.setVisible(false);
SCRO_Date.FUN_Def_Date();
SCRO_Load.FUN_Version_Load();
SCRO_Entity.FUN_Load();
Panel_load.setVisible(false);
}
So, Panel_load.setVisible(true); will not be called if NavigationUtils.openApplication will be used to apply bookmark. So, no code will affect NavigationUtils.openApplication and NavigationUtils.openApplication can work well.
(please note this solution may fail in rare cases, though it can work in the current story. Timer is the best solution we suggest)
5. If users do not like adding one more variable, they can use BookmarkSet_1.apply to replace NavigationUtils.openApplication to load the bookmark.
For example,
BookmarkSet_1.apply(bookmarks[i].id);
// there two lines are not required:
// var urlParam= UrlParameter.create("bookmarkId",bookmarks[i].id);
// NavigationUtils.openApplication("9B880501041DDEC2250600DF1D25A0C4", urlParam, false);
So, the bookmark can be loaded without calling NavigationUtils.openApplication.
=====
The final changed scripts would be :
---Oninitialization:
if (BookmarkSet_1.getAppliedBookmark() === undefined) {
//check if default bookmark is saved
var bookmarks = BookmarkSet_1.getAll();
if (bookmarks.length > 0) {
for (var i = 0; i < bookmarks.length; i++) {
if (bookmarks[i].isDefault === true) {
Timer_1.start(5);
}
}
}
Panel_load.setVisible(true);
Panel_hidden_lov.setVisible(false);
SCRO_Date.FUN_Def_Date();
SCRO_Load.FUN_Version_Load();
SCRO_Entity.FUN_Load();
Panel_load.setVisible(false);
}
---Timer_1 - onTimeout
if (BookmarkSet_1.getAppliedBookmark() === undefined) {
//check if default bookmark is saved
var bookmarks = BookmarkSet_1.getAll();
if (bookmarks.length > 0) {
console.log("SEL");
console.log(Selectedkeys);
for (var i = 0; i < bookmarks.length; i++) {
if (bookmarks[i].isDefault === true) {
var urlParam = UrlParameter.create("bookmarkId", bookmarks[i].id);
NavigationUtils.openApplication("9B880501041DDEC2250600DF1D25A0C4", urlParam, false);
}
}
}
}
See Also
- 2569847 - Where can you find SAC user assistance (help) to use, configure, and operate it more effectively?
- Have a question? Ask it here and let our amazing SAP community help! Or reply and share your knowledge!
- 2487011 - What information do I need to provide when opening a case for SAP Analytics Cloud?
- 2511489 - Troubleshooting performance issues in SAP Analytics Cloud
- Search for SAP Analytics Cloud content using SAP for Me, Google or Bing:
- https://me.sap.com/servicessupport/search#?q=SAP%20Analytics%20Cloud%20OR%20SAC&tab=All
- https://www.google.com/search?q=site%3Ahttps%3A%2F%2Fuserapps.support.sap.com+SAP+Analytics+Cloud
- https://www.bing.com/search?q=site%3Ahttps%3A%2F%2Fuserapps.support.sap.com+SAP+Analytics+Cloud
- Note: Add relevant text or warning/error messages to the text search field to filter results.
- SAP Analytics Cloud Connection Guide
- Getting Started with SAP Analytics Cloud Expert Community page
- SAP Analytics Cloud Get More Help and SAP Support
- Need More Help? Contact Support or visit the solution finder today!
Your feedback is important to help us improve our knowledge base.
Keywords
Default bookmark, Timer, Timeout, NavigationUtils, UrlParameter.create , KBA , LOD-ANA-AD-INF , Analytics Designer Infrastructure , Problem