Application-Building mit SAP Analytics Cloud (SAC)

Mit dem Add-in Analytic Application bietet die SAP Analytics Cloud (SAC) vor allem für IT Developer eine neue Möglichkeit für das Storytelling und Dashboarding. Damit schließt die SAC eine Lücke im Vergleich zu Lumira. Die wichtigsten Neuerungen im Überblick.

 

Dashboarding – Die SAC in Mitten einer Trendwende

Storytelling, Dashboarding und Applications sind die Schlagwörter für wegweisende und revolutionäre Mittel zur Visualisierung von Unternehmensdaten. Der Trend geht zur Nutzung von Schaltflächen für die Verwaltung von Top-Kennzahlen (KPI Tiles). Dadurch können werttreiberbasierte Pfade definiert werden, um Informationen gezielter darzustellen. Diese Analysepfade können speziell auf verschiedene Rollen im Unternehmen ausgelegt werden und bieten somit eine individuelle und effektivere Informationsversorgung der Berichtsaddressaten.

Storytelling, adaptives Layout oder Report-to-Report-Jump gehören zu den Features, die in customized Dashboards Anwendung finden. Am Markt werden sowohl intuitive Self Service Tools für IT-affine Business User als auch hoch-individualisierte Coding / Scripting Tools für IT-Experten angeboten. Das führende Produkt der zweiten Kategorie bietet die SAP innerhalb ihres Portfolios mit dem Lumira Designer an.

SAP Analytics Cloud (SAC) bot bislang mit teilweise eingeschränktem Funktionsumfang die Möglichkeit zur Erstellung von Stories / Dashboards durch Business User. Diese Simplizität wird nun durch ein an IT-Developer gerichtetes Add-In erweitert, welches in der Cloud die Lücke im Vergleich zu Lumira schließt – die Analytic Application.

Doch die ständige, Device-übergreifende Bereitstellung von Informationen durch die Cloud ist nicht der einzige Nutzen, den die SAC bietet. Sie ist ein geeignetes Hilfsmittel, um eine Konsolidierung oder integrierte Planung abzubilden. Hierbei überträgt sich beispielsweise die Planung von GuV-Positionen automatisiert in die der Bilanz und des Cash Flows und bildet somit einen in sich geschlossenen Planungsprozess. Doch auch im Bereich Prognose von Geschäftsvorfällen ist die SAC ein führendes BI-Tool. Cash-Forecasting sowie Vorhersagen von Liefer- oder Zahlungsausfällen sind nur einige der immer populärer werdenden Anwendungsfälle von Predictive Analytics auf dem Markt.

 

Analytic Application – Das Customizing Add-In zur Erweiterung der SAC Story

Die erste Release Version der Analytic Application gewährt im Gegensatz zu den herkömmlichen Storyboards der SAC sowohl die Möglichkeit zum Customizing als auch extensive User-Interaktionen innerhalb der Anwendung. Ein Überblick erster Features der Analytic Application:

 

Scripting


Den wesentlichsten Vorteil der Analytic Application im Vergleich zu den klassischen Stories aus der SAC bildet die Möglichkeit des Scriptings. Mittels Initialisierungs-Events können sämtliche Elemente / Widgets innerhalb einer Applikation angesprochen werden. Je nachdem, ob es sich bei den Widgets um Buttons, Radio Button Groups, Drop Down Menüs oder Filter Panels handelt, unterscheiden sich auch die Initialisierungs-Events nach der Art wie der User mit einem Widget interagiert. So können beispielsweise Drop Down Menüs oder Radio Button Groups mit der Selektion eines Wertes initialisiert werden (onSelect( )-Funktion) und Buttons hingegen mit dem Klick auf das Widget selbst (onClick( )-Funktion).

Doch nicht erst nach Handlungen von Benutzern können Befehle ausgeführt werden. Eine erste, initiale Befehlskette wird durch die Ausführung der Applikation im MainCanvas mit der Funktion onInitialization( ) ausgelöst. Nachstehend ein Coding-Beispiel, in dem das Drop Down Menü DNN_MeasureSelection mit allen Werten einer Dimension zur Zeit der Applikationsausführung befüllt wird. Weitere Details zu dem Code-Ausschnitt werden durch die Script-Kommentare beschrieben, welche mit // für einzeilige oder /* […] */ für mehrzeilige Kommentare dargestellt werden können.

Das Drop Down Menü kann ebenfalls manuell über die Designer-View mit Werten befüllt werden. Im Coding des Widgets muss nun, getriggert durch die onSelect( )-Funktion, bestimmt werden, was bei der Selektion eines Wertes aus dem soeben befüllten Drop Down erfolgen soll. Über das Löschen, Ersetzen oder Ergänzen von Dimensionen und Kennzahlen innerhalb von Tabellen oder Charts, bis hin zum Austausch ganzer Objekte, steht Usern eine übersichtliche Anzahl von Befehlen zur Verfügung, welche über die folgenden Release-Zyklen stetig erweitert werden sollen.

 

Abbildung 1: Coding zur Befüllung des Drop Down Menüs

 

Linked Analysis     

    
Bei der Linked Analysis handelt es sich um die dynamische Interaktion zwischen Objekten bzw. Widgets. Bereits in einer SAC Story wird Usern erlaubt, flexibel Werte zu filtern, zu ordnen oder aber Differenzen in einem Balken-Chart per Klick zu visualisieren. Das alles zur Laufzeit, übrigens. Diese Aktionen mit Objekten können auf andere übertragen werden. So kann beispielsweise der Maus-Klick auf einen Balken im Chart einen Filter in einem anderen Chart auslösen.

Anders als die Story besitzt die Analytic Application diese Linked Analysis Funktion nicht out-of-the-box. Der enorme Vorteil ist jedoch erneut die Individualität bzw. das Customizing des Dashboards für jeden denkbaren Anwendungsfall und jede Anwendergruppe. Im folgenden Beispiel wird die Filter-Selektion eines Balken-Charts „CHT_OrderVol_Market“ auf zwei weitere Charts („CHT_OrderVol_Category“ und „CHT_OrderVol_Segment“) übertragen. Details werden erneut im Script-Kommentar beschrieben (Abbildung 2). In Abbildung 3 wird der Absatzmarkt EU ausgewählt. Diese Selektion wird in den Filter-Einstellungen der weiteren Charts übernommen.

Zu beachten ist jedoch, dass eine Mehrfachselektion bislang noch nicht möglich ist, da die Funktion getSelection( ) lediglich einen ausgewählten Wert zurückgeben kann. Ein zweiter ausgewählter Wert wird von den Filter-Einstellungen der weiteren Charts ignoriert, bis der bestehende Filter gelöscht bzw. aufgehoben wurde.

 

 

Abbildung 2: Coding zur Übertragung von Filterwerten

Abbildung 3: Auswirkung von Linked Analysis während Applikations-Ausführung

 

Sichtbarkeit von Objekten 

   
Eine weitere Möglichkeit, wie man vom Scripting einer Analytic Application profitieren kann, liegt in der dynamisierten Sichtbarkeit von Objekten. Damit ist vor Allem das Aus- bzw. Einblenden von Widgets nach Interaktionen durch User gemeint. Ein denkbares Szenario bestünde darin, die drei Charts aus dem vorangegangenen Beispiel per Auswahl eines Radio Button Group (RGB)-Elements durch eine tabellarische Anzeige zu ersetzen. Dafür muss der Klick auf ein Element der RBG Einfluss auf die Sichtbarkeit eines Objekts (Chart / Tabelle) nehmen.

Zu beachten ist, dass die Hide / Show Funktion im Layout-Panel (siehe Abbildung 4) die Sichtbarkeit eines Objekts zur Laufzeit der Applikation nicht beeinflusst. Diese Funktion ist lediglich für den Design- bzw. Entwicklungs-Modus relevant. Hier können überlappende Objekte ausgeblendet werden, damit beispielsweise Zellen einer Tabelle, die man formatieren möchte, nicht von einem anderen Widget verdeckt werden.

 

Abbildung 4: Hide/Show-Funktion im Layout Panel

Für das Ein- und Ausblenden von Widgets gibt es zwei Möglichkeiten. Zum einen kann man in den Styling-Einstellung des Designer-Modus unter „Actions“ die Checkbox „Show this item at view time“ anhaken. Die Methode ist jedoch statisch und wird im Beispiel lediglich dazu genutzt, die drei Charts bei initialer Ausführung der Applikation anzuzeigen und die Tabelle auszublenden. Coding hingegen erlaubt Usern das dynamische Ein- und Ausblenden von Widgets.

Da die Sichtbarkeit der Widgets durch die Selektion der RGB-Elemente gesteuert werden soll, findet auch in diesem Objekt das onSelect( )-Coding statt. Dafür werden zuerst zwei Radio Buttons, einer für Tabellen und einer für die Charts, definiert. Auch hier besteht wieder die Möglichkeit, dies zur Ausführung der Applikation über das Coding im MainCanvas zu veranlassen. Im Beispiel und in Abbildung 5 zu sehen, wurde der Design-Modus verwendet, um die Radio Buttons zu erstellen. Im Beispiel wurde Chart als Default-Value eingestellt, da diese Widgets mit der Ausführung angezeigt werden sollen.

Abbildung 5: Definition der RBG-Elemente

Da lediglich zwei Optionen in der RBG zu wählen sind, kann mit einer einfachen if-else Funktion festgelegt werden, bei welcher Interaktion die Tabelle (TBL_OrderVol) erscheinen und die drei Charts (CHT_OrderVol_Market, CHT_OrderVol_Category und CHT_OrderVol_Segment) verschwinden sollen. In nachstehendem Coding wird determiniert, dass im Falle der Chart-Selektion (getSelectedKey( )) alle Charts sichtbar und die Tabelle unsichtbar geschaltet werden (setVisibil(true/false)). Das Gegenteil tritt ein, sobald die Wenn-Bedingung nicht erfüllt wird.

Abbildung 6: RBG-Coding

 

Ausblick – SAC Analytic Application als strategisches Mittel zur Wahl

Analytic Application wird in den folgenden Release-Zyklen, mit der User-Freundlichkeit auf der einen Seite und dem Customizing Ansatz auf der anderen, eine Weiterentwicklung zum Lumira Designer anbieten.

Außerdem verspricht die Roadmap der SAC aussichtsreiche Schritte Richtung innovativer und wegweisende Bereiche wie Machine Learning, Robotics, oder Predictions und koppelt somit die Analytic Application unabdingbar an die Entwicklungsthematik Augmented Analytics.

Die SAP fokussiert sich auf die Integration von Reporting, Planung, Machine Learning und Augmented Analytics und setzt dabei auf die SAP Analytics Cloud als strategisches Tool.

Michel Wolfram
Michel Wolfram
05 May, 2019
sap beratung