Nach längerer Entwicklungszeit erschien im August 2017 mit SAP Lumira 2.0 der offizielle Nachfolger von SAP BO Design Studio 1.6 und Lumira 1.x. Nach der zwischenzeitlichen Veröffentlichung von kleineren Service Packs, die sich überwiegend der Fehlerbeseitigung widmeten, schiebt die SAP noch vor Weihnachten 2017 mit Version 2.1 ein erstes großes Feature-Update nach.

Beide Tools - SAP Lumira Discovery und SAP Lumira Designer - bekommen neue Funktionen spendiert. Neben vielen Detailverbesserungen sind auch wirkliche Game Changer dabei, welche lange ersehnte Funktionen zur Verfügung stellen und die Flexibilität beider Werkzeuge enorm aufwerten.

Eine vollständige Liste aller Neuerungen findet sich in der offiziellen Dokumentation. Wir stellen an dieser Stelle unsere Top 4 der neuen Features vor.

1. Components API – Dynamische Komponenten in Lumira Designer

In den bisherigen Versionen von SAP Lumira / SAP Design Studio mussten alle Komponenten eines Dashboards zur Design-Time, also während der Entwicklung erstellt werden. Wollte man eine analytische Anwendung inhaltlich dynamisch gestalten, so lies sich dies durch die Vorbereitung von Platzhalter-Komponenten zwar umsetzen, allerdings mit großen Einschränkungen in Sachen Flexibilität und Performance.
SAP Lumira 2.1 führt nun eine Component API ein, welche es ermöglicht, Komponenten dynamisch während der Run-Time, also während der Ausführung des Dashboards zu erzeugen. Damit kann ein Dashboard nahezu vollständig dynamisch per Scripting erstellt und angepasst werden. Das klingt sehr mächtig und ermöglicht eine komplett neue Herangehensweise, allerdings kann eine exzessive Nutzung auch die Komplexität erhöhen. Eine genaue Konzeption steht dabei mehr denn je im Vordergrund.
Folgendes einfaches Code-Beispiel zeigt, wie dynamisch eine Text-Komponente erstellt und konfiguriert wird. Dabei müssen nicht alle Eigenschaften explizit gesetzt, sondern können per einfachem Methodenaufruf aus einer anderen existierenden Komponente kopiert werden:

// Erzeuge eine neue Text-Komponente im Panel PN_CONTAINER
var newTextComponent = COMPONENTS.createComponent(ComponentType.Text, PN_CONTAINER);

// Kopiere alle Eigenschaften einer Komponente in die neue Text-Komponente
COMPONENTS.copyProperties(TXT_SOURCE, newTextComponent);

// Setze gezielt einzelne Werte
newTextComponent.setText("Hello world");
newTextComponent.setLeftMargin(100);
newTextComponent.setTopMargin(100);

Von der Component API werden nicht nur Standard-Komponenten, sondern auch Drittanbieter-Komponenten und sogar Composites und DataSources unterstützt, die dynamisch zur Laufzeit erzeugt und konfiguriert werden können.

Neben der dynamischen Erstellung bietet die Component API auch Funktionen, die bisher nur über die kostenlose SCN SDK-Komponente Component Manager verfügbar waren: So lassen sich einzelne Komponenten dynamisch - basierend auf dem technischen Namen als Zeichenkette - aus der Anwendung auslesen. Weiterhin kann man durch Nutzung der Array-fähigen globalen Variablen auch dynamisch über ein Set an Komponenten iterieren, um bspw. Menüeinträge dynamisch als selektiert zu setzen.

2. Data Selections - Auslesen einer DataSource via Scripting in Lumira Designer

Neben der Component API führt Lumira Designer 2.1 eine weitere Funktion ein, die bisher nur über eine Drittanbieter-Komponente verfügbar war: das vollständige Iterieren über das Ergebnis einer DataSource. Die SDK Data Iterator - Komponente ermöglichte das komplette Auslesen einer DataSource Zeile für Zeile. In Lumira 2.1 gibt hierfür nun eine Standard-Funktion (DataSource.getDataSelections()), mit der man über die aufgerissenen Dimensionen iterieren und so Texte und Kennzahlen gezielt auslesen kann.
Insbesondere in Verbindung mit der Component API ermöglicht dies komplett dynamische Applikationen, basierend auf der verwendeten Datenquelle.

Folgendes Beispiel zeigt ein Dashboard, welches aus einer einfachen Datenquelle fast vollständig dynamisch generiert wird: Die Datenquelle beinhaltet die Kennzahl Nettoumsatz aufgerissen nach Ort der Filiale und der Produktkategorie. Das Grundgerüst des Dashboards enthält lediglich ein paar Text-Elemtente, zwei DataSources, einen Adaptive Layout-Container und das erste Chart, welches die Umsätze pro Kategorie für das gesamte Unternehmen darstellt.

Mit Unterstützung der Component API und des Iterierens über die Datenquelle ist es nun möglich, dynamisch für jeden Standort ein eigenes Chart (plus eigener DataSource) zu generieren, welches die Umsätze pro Produktkategorie anzeigt. Auf Scripting-Seite werden dafür nicht einmal 30 Zeilen Code benötigt. Dieser Ansatz ist zudem komplett flexibel, d.h. kommen weitere Standorte hinzu, wird automatisch ein weiteres Chart erzeugt.
Das folgende Small Multiple (oder auch Trellis)-Dashboard zeigt, wie eine dynamische Lösung unter Einhaltung der IBCS-Notation und Verwendung der IBCS-zertifizierten Drittanbieter-Komponenten von Graphomate aussehen könnte.

3. Comments - Kommentare für SAP Lumira Designer Dashboards

Ein lange gewünschtes und nach der Ankündigung sehnlichst erwartetes Feature erhält in Lumira 2.1 Einzug: Kommentare. Diese lassen in einem Dashboard anzeigen und erstellen und werden zentral auf der BI Platform abgelegt. Ein Kommentar kann dabei persönlich oder global verfügbar sein und kann sich auf unterschiedliche Dinge beziehen:

  • das Dashboard
  • die Datenquelle (DataSource)
  • ein Navigationszustand
  • eine Kennzahl
  • eine Dimension
  • eine Merkmalsausprägung

Die Liste zeigt, dass die Kommentare sehr flexibel eingesetzt werden können. 

Auf technischer Seite steht für die Kommentare eine Komponente zur Verfügung, die es per Scripting ermöglicht, Kommentare zu speichern und auszulesen. Für die Integration der Kommentare wurden zudem diverse Komponenten erweitert - insbesondere die Crosstab - und neue hinzugefügt. Beispielsweise lassen sich mit der FeedList-Komponente die Kommentare schön formatiert ausgeben. Alternativ lässt sich jedoch auch hier die Component API nutzen, um eine eigene Auflistung zu erstellen. Das folgende Beispiel zeigt, welchen Mehrwert Inline-Kommentare in einem Dashboard bringen können (aufgrund der lokalen Ausführung sind leider alle Namen UNKNOWN):

4. Linked Analysis - Abhängige Charts in SAP Lumira Discovery

Nicht nur der Designer-Client bekommt mit Version 2.1 neue "Game Changing"-Features, auch SAP Lumira Discovery erhält eine sehnlichst vermisstes Funktionalität: Das Verknüpfen (Linking) von mehreren Charts, sodass eine Selektion in einem Chart als Filter auf einen oder mehrere andere Charts angewendet werden kann. Das ging zwar bereits in Lumira 2.0, musste dort aber über den Designer hinzugescriptet werden. 
Die einzige Prämisse beim Verknüpfen von Charts ist, dass die jeweiligen Datenquellen miteinander verknüpft sind oder es sich um die gleiche Datenquelle handelt. Im Discovery-Client kann das Linking dann direkt im Kontextmenü eines Charts aktiviert werden.  

Und was gibt es sonst noch?

Neben den vier zentralen Features gibt es noch eine ganze Reihe an Detailverbesserungen. So gibt es in Lumira Designer neue Komponenten, die weitere Funktionen zur Verfügung stellen:

  • Visual Timer - Darstellung eines Timers im Dashboard
  • Scroll Container - Erstellung von scrollbaren Bereichen im Dashboard

Daneben wurden diverse Komponenten um Funktionen erweitert (GeoMap, Crosstab, etc.). Auch in Lumira Discovery finden sich weitere neue Funktionen: Beispielsweise können nun auch Filter auf Kennzahlen angelegt werden - ein Feature, welches bereits mit Lumira 1.x zur Verfügung stand. Zudem lassen sich in Charts Ad-hoc zwei oder mehrere Werte miteinander vergleichen (inklusive visueller Hervorhebung der Abweichungen) oder Trendlinien einblenden.

Und ebenfalls ein großes Feature: Mit Version 2.1 ist es nun möglich, Lumira-Dokumente auf der BI Platform zeitgesteuert ausführen und verteilen zu lassen (Scheduling).  Abschließend lässt sich sagen, dass die SAP mit SAP Lumira 2.1 viele sinnvolle und praxisrelevante Funktionen einführt, die in der Vergangenheit - wenn überhaupt - nur über Drittanbieter-Komponenten genutzt werden konnten. Der große Wurf ist jedoch die Component API, die es erlaubt große Teile eines Dashboards dynamisch zu gestalten.