Beiträge

Wenn guter Rat teuer ist

Wenn guter Rat teuer ist: Navigationsattribute aus SAP BW und der Zusammenhang mit daraus generierten HANA-Views

Eine Bestandsaufnahme und zwei Lösungsansätze

Hallo zusammen,

mit der Kombination von SAP BW und HANA ergeben sich vielfältige neue Modellierungsmöglichkeiten. Wir haben bereits viele davon in unseren letzten Projekten intensiv verwendet.

Eine dieser Modellierungsmöglichkeiten ist es, aus dem BW heraus HANA-Views zu generieren und diese anschließend in der HANA-Entwicklung zu nutzen. Dieses Vorgehen eignet sich zum Beispiel dazu, direkt auf die Daten in der HANA-Datenbank zuzugreifen ohne den Umweg über den Query-Designer zu gehen.

Dieser Direktzugriff hat jedoch einige Schwächen.

So werden Navigationsattribute leider nicht so unterstützt, wie wir es aus dem BW gewohnt sind.
Es gibt hier die Einschränkung, dass geklammerte Objekte (also Objekte mit zusammengesetztem Schlüssel) nicht unterstützt werden. Diese Einschränkung ist zwar dokumentiert – aber mal ehrlich SAP: Ist das euer Ernst?

Gerade in großen BW-Landschaften ist es verbreitet, dass alle Objekte geklammert sind – zum Beispiel an ein Quellsystem – und diese Objekte funktionieren alle nicht mehr richtig? Dabei ist die Verwendung von Navigations-Attributen gerade eine der großen Stärken, die das BW über die letzten Jahre ausgemacht hat.

Bei einem Navigationsattribut – und auch bei allen anderen Stammdaten-Objekten – handelt es sich vereinfacht gesagt um einen sogenannten Join, bei dem die Stammdaten zu den Bewegungsdaten hinzugelesen werden.

Normalerweise ist es so, dass in einem Cube oder einem DSO neben der Faktentabelle (Kennzahlen, Werte) auch die Merkmale (Dimensionen, Stammdaten, Schlüssel der anderen Tabellen) abgelegt sind. Auf die Attribute dieser Merkmale konnte man in der Vergangenheit immer automatisch zugreifen und man musste sich praktisch nicht darum kümmern, dass es funktionierte. Es war einfach so.

Natürlich hat die SAP einen Vorschlag zur Problemlösung gemacht. Und auch wir bei Inspiricon haben für unser Projekt eine Lösung gefunden. Beide Lösungen setzen an dem oben genannten Automatismus an. Lasst sie uns im Folgenden im Detail anschauen.

Die SAP-Lösung

Der CompositeProvider als Nachfolger der Multiprovider sollte das Objekt sein, über den das Reporting oder in unserem Fall der Zugriff aus HANA heraus auf die Daten stattfinden sollte. Unterhalb dieses Objekts gibt es eine (oder mehrere) Cubes, DSOs sowie ADSOs. Der CompositeProvider ist im Vergleich zum Multiprovider in Bezug auf Joins deutlich stärker geworden. Hier lassen sich die Joins, die für die Stammdaten benötigt werden, erstellen. Normalerweise sind das Left-Outer-Joins.

Die Lösung der SAP sieht nun vor, dass die benötigen Stammdaten ebenfalls Bestandteil des CompositeProviders werden. Sie werden also nicht als Teil der ADSOs verwendet sondern nochmals direkt mit Join in den CompositeProvider eingebunden.

Die Inspiricon-Lösung

Da wir in diesem speziellen Projekt einige Probleme mit den CompositeProvidern hatten, haben wir eine ähnliche Lösung wie SAP, aber auf einem anderen Level gebaut:

Wir haben die Joins nicht im BW – also nicht im CompositeProvider – sondern in HANA gebaut. Wir haben also die generierten Views der Composite-Provider und der Stammdaten verwendet und dann gejoint.

Fazit

Zusammengefasst muss ich sagen: Es funktioniert. Beide Wege führen zum Ziel.

Es gibt – wie für die meisten technischen Probleme – eine Lösung. Aber sie ist mit erheblichem Zusatzaufwand verbunden, egal ob mit unserem Ansatz oder dem der SAP.

Was mich besonders stört ist, dass dieser Zusatzaufwand nicht nur bei der Erstellung auftritt sondern auch später bei Anpassungen, da es sich um manuelle Schritte handelt, die früher nicht notwendig waren.

Ich hoffe, dass die SAP hier nachlegt und dieses Problem nachhaltig löst oder zumindest einen Automatismus bereitstellt.

Bis dahin halten wir dem Gegenwind stand und werden im wahrsten Sinne des Wortes mit der Hand am Arm das Problem weiterhin lösen.

Autor dieses Beitrags
Jörg Waldenmayer Team Lead Technology
Tel.: +49 (0) 7031 714 660 0
E-Mail: info@inspiricon.de