In SAP Analytics Cloud, können Anwender mithilfe von Bookmarks verschiedene Versionen des gleichen Dashboards als Lesezeichen speichern und somit innerhalb der Applikation zwischen verschiedenen Szenarien wechseln. Ein Bookmark speichert den aktuellen Zustand des Dashboards einschließlich sämtlicher Selektionen und Filter, sodass dieser später beliebig wiederhergestellt werden kann, ohne die entsprechenden Einstellungen manuell vornehmen zu müssen.
Bookmarks können unter anderem folgende Informationen speichern:
In einem vergangenen Artikel haben wir Ihnen gezeigt, wie Sie individuelle Bookmarks im Lumira Designer einrichten. Im heutigen Blog möchten wir Ihnen anhand eines konkreten Use Cases zeigen, wie Sie die Bookmarking Funktion in Ihrer Analytics Applikation verfügbar machen. Unser Beispiel zeigt die Landing Page eines Executive Dashboards. Über die Selektion in einer Checkbox können die Anwender bestimmen, welche KPIs auf der Startseite des Berichts angezeigt werden sollen. Anschließend lässt sich die aktuelle Sicht mithilfe eines Bookmarks speichern, sodass die Anwender künftig lediglich das Bookmark öffnen müssen, statt die Ansicht manuell zu replizieren Das Bookmark speichert Informationen darüber, wie viele KPI Tiles sichtbar sind und welche Kennzahlen diese darstellen.
In den Einstellungen kann ebenfalls die Version des Bookmark Sets festgelegt werden. Mithilfe der Versionsnummer lässt sich steuern, welche Bookmarks gültig sind. Ein Bookmark ist nur dann gültig, wenn die Version, die im Bookmark Set eingestellt ist, mit der Version des Bookmarks übereinstimmt. Sobald die Version des Bookmark Sets geändert wird, verlieren sämtliche Bookmarks, die während früherer Versionen erstellt worden sind, ihre Gültigkeit.
Ändern Sie die Version, sobald Sie größere, tiefgreifende Änderungen an der Applikation vorgenommen haben, um mögliche Anomalien zu vermeiden. Veraltete Bookmarks speichern keine Informationen über neu hinzugefügte Widgets.
Während der Laufzeit können die User über ein entsprechendes Popup neue Bookmarks hinzufügen oder zwischen bestehenden Bookmarks wechseln und diese überschreiben. Man unterscheidet dabei zwischen zwei verschiedenen Bookmark-Typen. Während globale Bookmarks von sämtlichen Anwendern aufgerufen werden können, die die nötigen Berechtigungen haben, um die Applikation auszuführen, stehen private Bookmarks lediglich ihrem Ersteller zur Verfügung.
Das Speichern von Bookmarks erfolgt über die Funktion save(). In dieser Funktion benennen wir das Bookmark und legen den Bookmark-Typen fest. Außerdem legen wir fest, ob existierende Bookmarks überschrieben werden sollen, wenn es bereits ein Bookmark mit dem gleichem Namen gibt.
saveMark - onClick
if (enterMark.getValue() !== "") {
BookmarkSet.save(enterMark.getValue(), isGlobal, false);
marksUtils.populateMarks();
}
Die ersten beiden Argumente werden dabei dynamisch über Selektion und Eingabe vom Anwender definiert. Da die Funktion lediglich verwendet werden soll, um neue Bookmarks hinzuzufügen, deaktivieren wir das Überschreiben von Duplikaten. Zuletzt wird das Dropdown-Menü aktualisiert und um das neue Bookmark ergänzt.
Wenn der Anwender ein Lesezeichen überschreiben möchte, wird ebenfalls die Funktion save() verwendet. Das zu überschreibende Lesezeichen wird in unserem Beispiel über die Selektion in einem Dropdown-Menü ausgewählt. Im Gegensatz zur vorigen Methode, aktivieren wir in der onClick-Methode das Überschreiben von Duplikaten.
changeMark - onClick
if (selectMark.getSelectedKey() !== "Select a Bookmark") {
BookmarkSet.save(selectMark.getSelectedText(), isGlobal, true);
}
Bestehende Bookmarks lassen sich mithilfe der Funktion deleteBookmark() löschen. Dabei muss lediglich die Bookmark ID des zu löschenden Lesezeichens übergeben werden. In unserem Fall geschieht dies ebenfalls über die Selektion im Dropdown-Menü.
deleteMark - onClick
if (selectMark.getSelectedKey() !== "Select a Bookmark") {
BookmarkSet.deleteBookmark(selectMark.getSelectedKey());
marksUtils.populateMarks();
}
Das Laden von Bookmarks gestaltet sich etwas komplizierter. Zum jetzigen Zeitpunkt gibt es noch keine Funktion, um Bookmarks aus einer Applikation heraus zu laden. Wenn man Bookmarks aus dem Hauptmenü heraus öffnet, wird die ID des gewählten Bookmarks automatisch in der URL der Applikation übergeben. Wir machen uns diese Mechanik zu nutze, um mithilfe der Navigation API openUrl() zu unserer Applikation zu navigieren und dabei das selektierte Bookmark zu öffnen. Um sicherzustellen, dass das Lesezeichen im selben Fenster geöffnet wird, übergeben wir neben der URL ein weiteres Argument an die Funktion.
openMark - onClick
if (selectMark.getSelectedKey() !== "Select a Bookmark" ){
NavigationUtils.openUrl("https://nextlytics.eu10.hcs.cloud.sap/sap/fpa/ui/tenants/c7920/app.html#/analyticapp&/aa/6B122E06DE46EC967112E901930D2653/?" + "bookmarkId=" + selectMark.getSelectedKey() + "&p_bookmarkLoaded=true"+ "&mode=present", false);
}
Bei diesem Workaround ist wichtig zu berücksichtigen, dass beim Aufruf der Applikation über URL die Initialisierung der Applikation erneut durchlaufen wird. In unserem Beispiel würde das dazu führen, dass sämtliche Werte im Dropdown-Menü doppelt vorhanden sind. Um zu vermeiden, dass unnötige Codeblöcke doppelt ausgeführt werden, stellen wir den entsprechenden Programmabschnitten der Initialisierung eine Bedingung voran und übergeben neben der Bookmark ID ebenfalls den in der Bedingung geprüften Variablen Parameter in der URL.
Aufgrund der Einschränkungen von Bookmarks müssen Teile der Initialisierung jedoch mit jedem weiteren Aufruf ausgeführt werden. Das dynamische Hinzufügen von KPI Tiles zum Beispiel basiert auf diversen Arrays, die aktuell nicht von Bookmarks erfasst werden können. In Abhängigkeit von Ihrem Use-Case müssen Sie prüfen, welche Teile der Initialisierung ausgeführt werden müssen und welche nicht.
Anschließend ist der Bookmark Dialog einsatzbereit und kann von Benutzern verwendet werden, um ihre Analyseergebnisse zu speichern und zwischen verschiedenen Ansichten hin und her zu wechseln.
Die konkreten Anwendungsfälle von Bookmarks sind vielseitig und reichen von individuellen Landing Pages bis hin zu verschiedenen Analyseergebnissen aufgrund unterschiedlicher Selektionen und Filtereinstellungen. Neben der zeitlichen Ersparnis, die sich daraus ergibt, dass die verschiedenen Ansichten nicht mehr manuell erstellt werden müssen, sind die Anwender auch nicht in Versuchung mehrere Kopien desgleichen Dashboard anzulegen und Ihre SAC aufzublähen.
Haben Sie einen konkreten Anwendungsfall für Bookmarks und brauchen Hilfe bei der Umsetzung? Wir helfen Ihnen gerne weiter!