ABAP Core Data Services Views im SAP BW oder BW/4HANA

ABAP Core Data Services Views

Einführung, Anwendungsfälle und Nutzen

In Teil 1 dieser Blogreihe möchte ich Ihnen einen Überblick und einige Ideen zum Einsatz von Core Data Services (CDS) im Umfeld der BW-Modellierung aufzeigen. Diese Blog-Reihe wird nicht Aufbau & Programmierung von CDS im Detail erläutern, hierzu sind bereits unzählige Blogs in der SAP Welt vorhanden.

Ich möchte mich auf die Anwendung von CDS im Umfeld BW konzentrieren und im Detail vier häufig anzutreffende Anwendungsfälle erläutern.

Die vier häufig anzutreffenden Anwendungsfälle:

  1. CDS als BW DataSource
  2. CDS als vorgefertigte und wiederverwendbare Datengrundlage in BW-Transformationen
  3. CDS als Grundlage des technischen Contents
  4. CDS als virtuelles Modell in der BW-Modellierung

Was sind ABAP Core Data Services?

CDS (Core Data Services) ist eine DDL-Sprache im SAP Umfeld. In dieser Reihe werden wir uns ausschließlich mit den CDS-Views beschäftigen. Diese ermöglichen die Erstellung von komplexen SQL-Views im ABAP-Umfeld, hierbei verwenden CDS eine erweiterte Syntax von OpenSQL inklusive z.B. Funktionsaufrufe, Berechnungen und Case-Anweisungen. Generell steht die Möglichkeit CDS-Views zu verwenden ab dem SAP Basis Release 7.40 zur Verfügung.

Grundlegender Aufbau von CDS-Views:

UseCase 1: CDS als BW DataSource

Die häufigste Anwendung von CDS-Views im BW-Umfeld ist das Erstellen von BW-DataSources per CDS. Dies bietet die Möglichkeit auf einfachem Weg kundeneigene Extraktoren mit umfangreicher Business Logik aufzubauen. Hierzu werden im Quellsystem CDS-Views wie oben beschrieben angelegt und mit der notwendigen Logik (Berechnungen & Filterung) versehen.

Um einen CDS für die Extraktion durch das BW freizuschalten, benötigt der CDS-View eine zusätzliche Annotation @Analytics.dataExtraction.enabled: true im Kopf des CDS-Views. Zu berücksichtigen hierbei ist allerdings, dass diese Annotation erst ab Basis-Release 7.50 SP5 verfügbar ist. Sollten Sie dieses Release noch nicht in Ihrem Quellsystem aufsetzen, müssen Sie einen „kleinen“ Umweg über einen zusätzlichen generischen Extraktor gehen (siehe weiter unten).

Weiterhin ist empfohlen auch die Datenkategorie (Stamm-/Bewegungsdaten oder Texte) zu definieren. Dies kann über die Annotationen @Analytics.dataCategory und @ObjectModel.dataCategory geschehen.

Im Beispiel definiere ich einen Bewegungsdaten CDS-View zur Extraktion von Auftragsrückmeldungen. Wie in vielen Tabellen im SAP System sind hier die Anlage- und Änderungsdatum getrennt gespeichert. Um einen einfachen Weg für die „Delta“-Extraktion zu bieten habe ich in diesem Beispiel beide Daten in ein „Delta-Datum“ überführt.

Das Zusammenführen der Daten in ein Datum hat nun einen sehr großen Vorteil im Beladungsprozess des BW-Systems da in diesem Fall ein Filtern oder generisches Delta ohne Probleme aufgebaut werden kann.

Um ein generisches Delta direkt über CDS der BW-Beladung anbieten zu können, bietet SAP eine weitere Annotation an. In diesem Beispiel habe ich die Annotation @Analytics.dataExtraction.delta.byElement verwendet, welche ein Delta über Timestamp- oder Datumsfeld ermöglicht. Das CDS-Framework bietet weitere Deltaverfahren und Möglichkeiten, auf welche ich in diesem Beitrag allerdings nicht weiter eingehen möchte.

Nachdem wir nun den Extraktor über CDS angelegt haben, kann dieser vom BW-System konsumiert werden. Hierfür ist im BW ein neues Quellsystem vom Typ „ODP – ABAP CDS Views“ zu definieren und anzubinden. Ist dieser Schritt geschehen können Sie den CDS-Extraktor wie gewohnt in das BW-System einbinden und in den Ladeprozess integrieren.

Ein weiterer möglicher Einsatz von CDS in Extraktionen ist die Verwendung von CDS als Datenbasis von „herkömmlichen“ generischen Extraktoren (Transaktion RSO2). Sollte beispielsweise das Quellsystem noch nicht das notwendige Basis-Release besitzen oder der Extraktor ist bereits in diverse Datenflüsse integriert, so kann dies einen sinnvollen Workaround für die Integration von CDS in die Integration bieten. Gerade wenn für einen bereits bestehenden Extraktor Performance-Probleme im Customer-Exit auftreten können CDS zur Optimierung sehr gut eingesetzt werden.

Auch in diesem Szenario bleiben wir bei der Extraktion von Auftragsrückmeldungen. Die Annahme hierbei ist, dass das Quellsystem noch auf einem 7.4 Basis-Release ist und noch keine Annotationen verwendet werden können, oder vielleicht auch BW-System kein neuer Quellsystemtyp angelegt werden kann.

Hierfür definieren wir analog dem CDS-View oben die Rückmeldedaten, allerdings ohne die BW-spezifische Annotationen zur Extraktion.

Im nächsten Schritt öffnen wir die Transaktion „Generische DataSource pflegen“ (RSO2) und legen einen neuen Extraktor ZBW_AFRU auf Basis des vom CDS bereitgestelltem Datenbankviews an.

Anlegen DataSource für Bewegungsdaten: ZBW_AFRU

Auch in diesem Fall ist es möglich ein generisches Delta über die berechnete Spalte DeltaDate zu erstellen.

Erstellung eines generischen Deltas

UseCase 2: CDS in BW-Transformationen als Datenrundlage vorgefertigt und wiederverwendbar

Häufig werden in komplexen BW -Transformationen verschiedenste Berechnungen auf unterschiedlichen Aggregationsstufen schon während der Transformation benötigt, um Daten korrekt zu filtern oder in der Transformation mit weiteren Daten zu konsolidieren. Diese Logik vollständig über ABAP abzubilden, führt zu unübersichtlichen – trotz HANA – inperformanten Transformationen. Eine Abhilfe kann hierbei das Auslagern des Sammelns und Aggregierens von Grunddaten für die Business Logik in separate CDS-Views schaffen. Dieses Szenario kann gerade bei BW/4HANA Migrationen eingesetzt werden, um Transformationen mit minimalem Aufwand zu beschleunigen, ohne die gesamte Business Logik auf HANA-Script umstellen zu müssen.

Ein Umstieg auf HANA-Transformationen und AMDP-Routinen kann hierbei bereits die Performance deutlich verbessern, allerdings führt dies dennoch schnell zu „aufgeblähten“ Transformationen.

In diesen Fällen ist es anzuraten die für die Berechnung notwendigen Daten (Stammdaten und zusätzliche Bewegungsdaten außerhalb des aktuellen Datenflusses) in vorgefertigten CDS-Views bereits vorzubereiten, sodass in der Transformation „nur“ die Transformationslogik implementiert werden muss.

Diese Vorgehensweise bietet zusätzlich die Möglichkeit das bereits aufbereitete Daten in mehreren Transformationen wiederverwendet werden können.

Zum Schluss ein kleines Praxisbeispiel zur Verwendung vorgefertigter Daten aus CDS in ABAP Transformation

Im Folgenden möchte ich Ihnen exemplarisch ein vereinfachtes Beispiel für eine schnelle Integration von Vorberechnungen in bestehende Transformation aufzeigen. Hierfür nehmen wir als UseCase an, dass wir bereits eine bestehendes Datenmodell und Datenfluss für SD-Auftragspositionen besitzen. Das Datenmodell für die Positionen ist um das Datum der letzten Lieferung je Position zu erweitern.

Dazu legen wir im ersten Schritt einen kleinen CDS zum Ermitteln des letzten Lieferungsdatums je Position an.

Im Anschluss erweitern wir nun die (bestehende) Endroutine in der Transformation zur Beladung der Positionen:

Bleiben Sie dran, es bleibt weiterhin spannend!

Sie sollten aus dem Beitrag mitnehmen, dass CDS ein mächtiges Tool in der Hand eines jeden ABAP-Entwicklers sein kann, sowie einen ersten Einblick in den möglichen Einsatz im BW-Umfeld im Speziellen.

Im zweiten Beitrag dieser kleinen Reihe beleuchten wir die weiteren Anwendungsfälle anhand kleiner Beispiele näher. Somit steigen Sie tiefer in die Thematik der oben erwähnten Anwendungsfälle: CDS als Grundlage des technischen Contents und CDS als virtuelles Modell in der BW-Modellierung ein.

AUTOR
Alexander Mader, ORBIS SE
AUTOR Alexander Mader BU Manager SAP Analytics, ORBIS SE
Ähnliche Beiträge
Reporting SAP Datasphere und Analytics Cloud

Optimales Reporting mit SAP Datasphere und SAP Analytics Cloud (SAC)

Wie optimales Reporting mit zwei Tools (SAP Datasphere & SAC), die fortschrittliche Reporting- und Datenanalysemöglichkeiten besitzen, aussehen kann, erfahren Sie anhand eines spannenden Anwendungsbeispiel aus der Industriebranche.
30.04.2024
SAP|Business Analytics|SAP Data Warehouse
Housekeeping in SAP BW/4HANA Vorteile

Housekeeping in SAP BW/4HANA – die Top 5 Vorteile

In unserem Beitrag erfahren Sie, was Business Warehousing und Haushalt gemeinsam haben und, was es eigentlich mit dem Housekeeping in SAP BW/4HANA auf sich hat! Erhalten Sie wertvolle Insights zur Bedeutung und den Vorteilen.
26.10.2023
SAP|SAP Data Warehouse
SAP Datasphere – Bedeutung & Vorteile!

SAP Datasphere – die Top 5 Vorteile

Große Datenmengen verarbeiten, analysieren und daraus wertvolle Erkenntnisse ziehen ist eine Herausforderung etlicher Unternehmen, die es nicht zu unterschätzen gilt. Die zukunftsorientierte Lösung SAP Datasphere kann hierbei Abhilfe schaffen!
19.09.2023
SAP|Business Analytics|SAP Data Warehouse