GELB IST DAS NEUE ROT

Beitrag teilen

Share on xing
Share on linkedin
Share on facebook
Share on twitter

Geänderte Anforderungen an moderne Data-Warehouse-Systeme bedeuten, dass Aspekte wie Einfachheit, Flexibilität und Agilität deutlich wichtiger werden, und somit in der Architektur und Modellierung eben solcher Systeme inhärent berücksichtigt werden sollten.

SAP bietet mit ihrem Data Warehouse Produkt, SAP BW4/HANA, die Möglichkeiten, über ein – starres und veraltetes – Layered Scalable Architecture (LSA) hinaus auch solche modernen Architekturen umzusetzen. SAP empfiehlt dabei eine Architektur, die sich an der LSA++ orientiert. Dieser neue Schichten-Ansatz zeichnet sich besonders durch den Fokus auf virtuelle Objekte aus. Virtualisierung bedeutet, dass weniger Kopien von Daten zwischen Architekturschichten notwendig sind, wodurch deren Design einfacher, kleiner und schneller wird. Die Data Warehouse Architektur soll so möglichst schlank und einfach gestaltet werden.

Weitere Informationen

Lesen Sie hier auch unser Blogartikel zum Thema „Agiles Data Warehousing mit SAP BW/4HANA“

Der klassische BW-Entwickler mit viel Erfahrung in BW 3.x – 7.x weiß: Warnungen sind nichts schlimmes – wenn man weiß was man da tut wird eigentlich alles hinterher auch funktionieren. In dem Sinne sind Warnungen des SAP BW eher als Hinweise zu verstehen gewesen. Oder, in anderen Worten: „Zeigt die Ampel Gelb ( – Warnmeldung), schnell nochmal auf Gas treten ( – Aktivieren).“

Dies ist bei der hybriden Modellierung unter BW/4HANA jedoch anders!

Bei der Generierung von HANA Calculation Views sind die „Hinweise“ des BWs in Form von Warnungen durchaus zu berücksichtigen – andernfalls stellt sich später die Erkenntnis ein, dass nämlich nicht alles „einfach so funktioniert“.

Wann Gelb das neue Rot ist: Modellierung von Persistenten Daten

Modellierung von Persistenten Daten

SAP BW unterstützt in der Datenmodellierung eine Vielzahl von Datentypen. Eine Persistenzschicht, bspw in Form von ADSOs, kann alle BW-seitig erlaubten Datentypen beinhalten, so auch bspw.:

  • DEC (Decimal mit frei wählbarer Länge und Nachkommastellen)
  • RAW (unkonvertierte Byte-Zeichenfolge)
  • INT1 und INT2 (1-Byte bzw. 2-Byte Integer)

Ein ADSO, welches Felder mit diesen Datentypen beinhaltet, lässt sich problemlos aktivieren und beladen.

Blogartikel: Gelb ist das neue Rot

Soll das Objekt jedoch nun konsumiert werden im Reporting, entweder per Composite Provider oder per HANA CalcView, so sind die obigen Felder nicht enhalten, und damit gar nicht erst nutzbar. Ursache sind die beim Aktivieren erzeugten, aber bislang ignorierten, Warnungen:

Blogartikel: Gelb ist das neue Rot

Neben BW-eigenen Restriktionen für das Reporting (bspw. ist Datentyp RAW nicht nutzbar), bestehen auch HANA-seitig Beschränkungen. Insbesondere besteht an Kennzahlen HANA-seitig eine Mindestanforderung an die Länge, um eine gefahrlose Aggregation der Werte zu ermöglichen. Diese Einschränkungen sind bei der SAP dokumentiert.

(Haken) Lösung: Hier hilft nur, den Warnungen des BW entsprechend Folge zu schenken, und die Datentypen in er Persistenzschicht so abzuändern, dass eine problemlose Weiterverarbeitung sowohl BW-seitig als auch HANA-seitig möglich ist.

Stammdaten-Assoziationen

Die Assoziation von Stammdaten – via OpenODS View oder InfoObjekten – zu beliebigen Feldbasierten Bewegungsdaten stellt eine der großen Stärken der agilen Modellierung von BW/4HANA dar.

Bei einer Generierung von HANA Calculation Views auf Basis dieser Datenmodelle ist jedoch im Composite Provider oder Fakten OpenODS View genau darauf zu achten, ob und welche Warnungen durch das System erzeugt werden:

  • RS2HANA_VIEW151: „Navigationsattribut ist von der externen SAP-HANA-View ausgeschlossen“
  • RS2HANA_VIEW160: „Externe SAP-HANA-View: Keine PartProvider unterstützt“
  • RS2HANA_VIEW047: „Navigationsattribute werden nicht unterstützt“

Die Ursache dafür ist eine gewählte Modellierung, die in diesem Fall die HANA-seitige Konsumierung nicht (vollständig) unterstützt.

Dazu zählen:

  • (Warnung) Assoziierung (beispielsweise im Composite Provider) mit InfoObjekten und Nutzen von Transitiven Navigationsattributen. Diese stehen dann jedoch im generierten HANA Calculation View nicht zur Verfügung.
    • (Haken) Mögliche Lösung/Workaround: Die Assoziation mit dem InfoObjekt in einem OpenODS View vom Typ „Fakten“ durchführen, die transitiven Navigationsattribute auf eigene Felder mappen, und diesen OOV dann in einem Composite Provider nutzen.
  • (Warnung) Assoziierung (beispielsweise im Composite Provider) mit OpenODS Views vom Typ „Stammdaten“, unter Nutzung der Assoziierungsart „Systemweit eindeutiger Name“.
    • (Haken) Mögliche Lösung/Workaround: Die Assoziation mit dem OpenODS View muss dann unter Nutzung der Assoziierungsart „Direktverwendung“ erfolgen. In Konsequenz heißt dies dann jedoch, dass in einem Composite Provider mit diesem OpenODS-View nur einziges mal assoziiert werden kann.
  • Darüber hinaus gibt es noch weitere Einschränkungen, dass unter Umständen Objekttypen (wie ADSO, InfoObjekt, OpenODS View) in einem speziellen Fall nicht in der Generierung von HANA Views verwendet werden können.

Siehe dazu folgende SAP Dokumentation

Hinweis 2395309: External HANA View based on HCPR: not all Partproviders supported

Hinweis 2420214: Impossible to Create External SAP HANA View for Temporal Join CompositeProvider

Hinweis 2317197: External SAP HANA View: Frequently asked questions, feature availability

Wichtig ist hierbei mitzunehmen, dass es in der Regel doch Möglichkeiten gibt, die entsprechenden Informationen mittels gemischter Modellierung auch HANA-seitig zur Verfügung zu stellen:

  1. Wählen einer anderen Modellierungsvariante – wie bereits oben erwähnt, Assoziationen an anderer Stelle durchführen (Fakten OOV), oder Link-Satelliten-Modellierung auf Basis CalcViews/OpenODS Views durchführen anstatt InfoObjekte mit Transitiven Attributen zu nutzen.
  2. Aktualisierung auf das neuste BW/4HANA Support Package. Diverse Restriktionen, u.a. die Assoziation mit OpenODS Views via systemweit eindeutigem Namen (anstatt Direktverwendung), sind in BW/4HANA 2.0 SPS04 nicht mehr vorhanden. Die Möglichkeiten zur gemischten Modellierung sind daher nicht als statisch zu betrachten, sondern werden also zunehmend besser.

Erzeugung von CalcViews beim Import von Transporten

Besonders häufig werden von klassischen BW-Entwicklern Gelbe Warnmeldungen beim Import von Transporten ins das Zielsystem ignoriert.

Im Gegensatz zu klassischen ABAP-Transporten im ERP-Umfeld, bei denen ein Import mit grün eher die Regel ist, sind BW-Entwickler es gewohnt, dass ein Transport sowohl im Schritt „Import“ als auch im Schritt „Nachbehandlung“ diverse Warnungen erzeugt. Diese sind aber tatsächlich zumeist kein Problem, bzw. werden durch die geschickte Strukturierung von Transporten durch Folgetransporte behoben. Ein typisches Beispiel hier wäre die Warnung, dass DTPs deaktiviert wurden nachdem eine Transformation angepasst und neu aktiviert wurde. Genau dieser deaktivierte DTP steht jedoch bereits auf dem gleichen Auftrag, oder einem Folgeauftrag, so dass nach Abschluss sämtlicher Objekt-Nachbehandlungen keine fälschlich inaktiven Objekte verbleiben.

Bei BW/4HANA und der gemischten Modellierung muss jedoch einigen Meldungen erhöhte Aufmerksamkeit zukommen: können für die gerade importierten und aktivierten BW-Objekte nämlich die HANA-Views nicht aktiviert werden, deutet dies auf ein strukturelles Problem mit der BW+HANA-seitigen Kommunikation, und/oder Berechtigungen hin.

Typische Warnungen hierbei gehören zur Meldungsklasse RS2HANA_AUTH, so bspw.:

  • (Warnung) RS2HANA_AUTH234: „Replikation fehlgeschlagen“

Hier liegt die entsprechende Ursache nicht in der Modellierung selber – die hat auf der Entwicklungsumgebung ja erfolgreich stattgefunden.

Stattdessen sind folgende Punkt zu prüfen:

  • (Frage) Ist das Berechtigungskonzept mit Vergabe der notwendigen Rollen, Objekt-, Analytics- und Systemprivileges korrekt im Zielsystem umgesetzt?
  • (Frage) Sind die Systembenutzer – u.a. DDIC, BWREMOTE, SAPHANADB et. al. – auf Seite BW und HANA korrekt mit den notwendigen (und weitrechenden) Schreibrechten ausgestattet?
  • (Frage) Hat eine Berechtigungsreplikation für die vom BW erzeugten Analytic Privileges an die entsprechenden HANA-DB-User stattgefunden? Dies kann auch manuell mittels Transaktion RS2HANA_GEN durchggeführt werden.
  • (Haken) Als Workaround kann auch versucht werden, im Nachgang die nicht erfolgreich generierten HANA Views manuell zu generieren. Hierzu steht die Transaktion RS2HANA_ADMIN auf Seite BW zur Verfügung.

Fazit

Gelb ist das neue Rot – zumindest teilweise, und wenn man sich in einer BW/4HANA hybriden Modellierung befindet, in der es essentiell ist, dass sowohl die BW-seitigen als auch die HANA-seitigen Objekte korrekt erzeugt und miteinander synchron sind.

Natürlich hat es auch dem klassischen BW-Entwickler noch nie geschadet, die Warnungen auch einmal im Detail anzusehen und nicht einfach per se zu ignorieren.

Auch hier hat die agile Entwicklungsmethodik – und vor allem die Ansätze Test Driven Development und Continous Testing – eine klare Aussage: es ist viel effizienter und billiger ein potentielles Problem früh zu entdecken und zu beheben, als wenn es erst später – gar in produktiver Nutzung – auffällt.

SAP_Kamp

KONTAKT

Christopher Kampmann
Senior Manager
SAP Information Management

christopher.kampmann@isr.de
+49 151 422 05 411

Über ISR

Die ISR Information Products AG ist Ihr Experte für Analytics, Prozess-Digitalisierung und Application Management. Mit Blick auf die Bedürfnisse namhafter Kunden konzipieren, modernisieren, implementieren und betreuen ca. 200 Mitarbeiter an sechs Standorten IT-Architekturen, Software-Lösungen und IT-Infrastrukturen. Das Ziel: Unseren Kunden die wirtschaftliche Nutzung von Daten zu ermöglichen.
News Kategorien
News Archiv

News nach Autoren

Zuletzt erschienen

Nächste ISR Events

Es gibt derzeit keine anstehenden Veranstaltungen.

ISR Facebook Feed

Facebook

Mit dem Laden des Beitrags akzeptieren Sie die Datenschutzerklärung von Facebook.
Mehr erfahren

Beitrag laden

Haben wir Ihr Interesse geweckt?