Data Science

Erweiterungen in BW4HANA 2.0 SP04

CompositeProvider bietet umfangreiche Funktionalitäten für das Zusammenführen von Daten aus BW InfoProvidern sowie für die Erstellung gemischter Szenarien mit HANA Views. Entweder durch das Zusammenführen oder Kombinieren mehrerer Data Provider. Mit SAP BW4HANA 2.0 SP04 wurden viele neue Erweiterungen eingeführt, die in diesem Blog zusammengefasst und demonstriert werden.

Mit SAP BW4HANA 2.0 SP04 wurden zahlreiche neue Erweiterungen eingeführt. Viele dieser Funktionalitäten gab es bereits in HANA Calculation Views. Trotzdem finde ich es interessant, ihre BW-Alternativen zu sehen.

In diesem Blog werden die folgenden Themen behandelt. Am Ende zeigt eine einfache Fallstudie die Anwendungsfälle:

  • Aggregation und Projektion
  • SQL Filter
  • Berechnete Felder und normale Felder
  • Felder duplizieren

Aggregation und Projektion

Bisher gab es keine Standardfunktionalität für die Aggregation von Kennzahlwerten in der Zielstruktur eines CompositeProviders. Dieses Verhalten ähnelt der Funktionalität, die bereits in HANA Calculation Views zur Verfügung steht. Meistens ist es notwendig, wenn Daten von mehreren transaktionalen Providern auf unterschiedlichen Aggregationsstufen zusammengeführt werden. Diese Art der Aggregation wird auf Datenbankebene durchgeführt. Die Projektion hingegen dient hauptsächlich dazu, SQL-Filter für bestimmte PartProvider wie ADSOs zu definieren. Mehr dazu im Unterthema "HANA SQL Filter".

HANA SQL Filter

Der SQL-Filter ist ein leistungsstarkes Werkzeug, mit dem du bestimmte Daten aus dem gesamten CompositeProvider oder seinen PartProvidern herausfiltern kannst. Er ermöglicht die Erstellung zusätzlicher Filter auf verschiedenen Knotenebenen eines CompositeProviders. Direkt auf dem Top Node oder auf seinen verschiedenen Teilen, wie zum Beispiel auf bestimmten Unions, Joins, Projektionen und Aggregationen darunter. Solche Filter können jedoch nicht direkt auf einem PartProvider definiert werden. Daher muss ein Aggregations- oder Projektionsknoten über ihm hinzugefügt werden, um diese Funktion zu ermöglichen. In einem SQL-Filter können sowohl berechnete Felder als auch normale Felder verwendet werden, um einen Ausdruck zu bilden. Für diese Zwecke wird die HANA SQL-Skriptsprache verwendet. Eine Liste der verfügbaren Ausdrücke wird angezeigt, wenn du sie auswählst. Es gibt bereits eine umfangreiche HANA SQL Script-Referenz, die du hier(öffnet ein neues Fenster) einsehen kannst.

Berechnete Felder und Felder

Calculations Fields is another HANA DB functionality integrated in the CompositeProvider. It offers a list of SQL Expressions. Simple Fields can also be added as well. Both can be defined either as a Characteristic or as a key figure. As a characteristic the option “Forced Group” can also be enabled. It is important to note that in case of Temporal Joins the SQL filters, SQL expressions, Force Group By and aggregation change are not allowed.

Felder duplizieren

Nach der Umstellung von MultiProvider auf CompositeProvider wurde die Cross-Mapping-Funktionalität nicht mehr unterstützt. Als Workaround können jetzt doppelte Felder erstellt werden. In diesem Fall wird eine Vorlage vom ursprünglichen Objekt mit einer benutzerdefinierten Benennungsmöglichkeit übernommen. Die Funktion "Gruppieren erzwingen nach" kann jetzt für alle Felder und Merkmale aktiviert werden. Diese Funktion wird durch ein Symbol gekennzeichnet.

Fallstudie:

Unsere Beispielimplementierung umfasst 3 transaktionale (Data Mart) ADSOs mit unterschiedlichen Granularitätsstufen.

ADSO1 (DE)

  • Characteristics: Country DE, Fiscal Year, Fiscal variant
  • Kennzahl: Betrag

ADSO3 (DE&CH)

  • Merkmale: Land DE & CH, Datum, Geschäftsjahr, Fiskalvariante
  • Kennzahl: Betrag

ADSO2 (Kostenarteninformationen)

  • Merkmale:Kostenart, Kostenrechnungskreis, Geschäftsjahr, Fiskalvariante
  • Kennzahl: Wert in LC

Rohdaten:

In dieser Fallstudie möchten wir DE-Daten von ADSO1 mit CH-Informationen von ADSO3 kombinieren und ADSO1-Daten mit ADSO2-Werten ergänzen. Am Ende dieser Fallstudie wird die Vorschau der Ergebnisdaten gezeigt.

Schritt 1: Da ADSO1 und ADSO2 eine unterschiedliche Granularität haben, wird eine zusätzliche Aggregation auf ADSO2 aufgebaut. Dazu müssen wir die Daten von ADSO2 aggregieren, die Kostenelementinformationen entfernen und mit ADSO1 verbinden.

Schritt 2: In unserem Beispiel rufen wir aktuelle Datumsinformationen als Berechnungsfeld vom Typ Merkmal ab. Für 0FISCYEAR ist die Option "Erzwungener Konzern nach" aktiviert.

Schritt 3: ADSO1 wird mit der Aggregation von ADSO2 verbunden. Hier definieren wir ein Berechnungsfeld, Typ Kennzahl. In unserem Beispiel handelt es sich um eine einfache Abweichung zwischen "Betrag" und "Betrag in LC". Auf der Ebene von Join verwenden wir dieses Berechnungsfeld, um bestimmte Datenkombinationen direkt aus Join herauszufiltern.

Schritt 4: ADSO3 enthält sowohl DE- als auch CH-Daten. Um Überschneidungen mit ADSO1 zu vermeiden, erstellen wir eine Projektion darauf und verwenden den SQL-Filter, um nur CH-Daten auszuwählen.

Schritt 5: In der Union wird das Datumsfeld aus ADSO3 dem Berechnungsfeld für das aktuelle Datum aus Join zugeordnet. Das Duplikatfeld "Geschäftsjahr" (0FISCYEAR_D) wird für ADSO3 dem Navigationsattribut 0DATE zugeordnet und für die anderen wird 0FISCYEAR genommen.

Datenvorschau:

Vahan Nersesyan

Vahan Nersesyan

Analytics Consultant

Mehr getIT-Beiträge

Bereit für Swisscom

Finde deinen Job oder die Karrierewelt, die zu dir passt. In der du mitgestalten und dich weiterentwickeln willst.

Was du draus machst, ist was uns ausmacht.

Zu den Karrierewelten

Zu den offenen Security Stellen