{"id":54703,"date":"2024-05-08T12:34:05","date_gmt":"2024-05-08T10:34:05","guid":{"rendered":"https:\/\/www.cubeserv.com\/?p=54703"},"modified":"2024-05-21T17:21:58","modified_gmt":"2024-05-21T15:21:58","slug":"datenmodellierung-mit-abap-cds-views","status":"publish","type":"post","link":"https:\/\/www.cubeserv.com\/de\/datenmodellierung-mit-abap-cds-views\/","title":{"rendered":"Datenmodellierung mit ABAP CDS-Views"},"content":{"rendered":"\t\t
Sie m\u00f6chten erfahren, wie ABAP Core Data Services (CDS) in Kombination mit dem virtuellen Datenmodell (VDM) Ihr Datenmanagement grundlegend optimieren k\u00f6nnen?<\/p>
Sie wissen, dass Ihre Unternehmensdaten wertvolle Informationen enthalten und m\u00f6chten diese nutzen, um erfolgsversprechende Entscheidungen zu treffen?<\/p>
Nehmen Sie sich ein paar Minuten Zeit und lernen Sie in diesem Blogbeitrag den Aufbau und die Vorteile des virtuellen Datenmodells sowie die Verwendung von ABAP Core Data Services kennen.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Daten enthalten wertvolle Erkenntnisse \u00fcber Ihr Gesch\u00e4ftsgeschehen. Um konkrete Schl\u00fcsse aus Ihren Daten ziehen zu k\u00f6nnen, ist das richtige Verst\u00e4ndnis der Daten von gro\u00dfer Bedeutung.<\/p>
Lassen Sie uns gemeinsam tiefer in diese Welt eintauchen und einen Blick auf die Grundlagen der Berichterstattung und Gesch\u00e4ftsanalysen werfen.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Dimensionen sind Stammdaten, die nicht aggregiert werden, sondern oftmals Textinformationen wie Produktkategorien, Zeitr\u00e4ume, geografische Standorte, Kunden oder Verk\u00e4ufer enthalten. ABAP Core Data Services sind Ihre Werkzeuge, um diese Daten zu durchforsten und deren Geschichte zu verstehen. Sie bieten Ihnen die M\u00f6glichkeit, die Daten zu kategorisieren, zu filtern und zu gruppieren.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Fakten sind die Zahlen, die Ihre Geschichte vervollst\u00e4ndigen. Dabei sprechen wir von Bewegungsdaten, die durch Messungen oder Kennzahlen quantifizieren, wie viel von einer bestimmten Aktivit\u00e4t stattgefunden hat. Beispiele hierzu sind Verkaufsmengen, Umsatz, Kosten oder Gewinn.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Das virtuelle Datenmodell (VDM) revolutioniert den Umgang mit Ihren Daten.
Durch die betriebswirtschaftliche Semantik werden diese f\u00fcr Sie verst\u00e4ndlich und leicht nutzbar aufbereitet, sodass technische Bezeichnungen oder die Struktur der Daten keine Herausforderung mehr f\u00fcr Sie darstellen.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Das Fundament f\u00fcr eine reibungslose Datenverarbeitung bilden dabei eine klare Definition des Datenmodells sowie die Nutzung aussagekr\u00e4ftiger Namenskonventionen. Sie gew\u00e4hrleisten die klare Trennung von Datenzugriff, Gesch\u00e4ftslogik und Benutzeroberfl\u00e4che. Auch Wartung, Skalierbarkeit und Weiterentwicklung Ihres virtuellen Datenmodells werden dadurch erheblich vereinfacht.<\/p>
Ein VDM besteht im Wesentlichen aus drei Schichten, die im Folgenden dargestellt sind:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Mit Views dieser Schicht greifen Sie direkt auf Tabellen der Datenbank zu. Die darin liegenden Inhalte stehen Ihnen ungefiltert zur Verf\u00fcgung. Technische Namen, Eigenschaften und Struktur der Daten k\u00f6nnen Sie bereits hier in betriebswirtschaftliche Entit\u00e4ten umwandeln. <\/p>
Views dieser Schicht erm\u00f6glichen einen effizienten, direkten Datenzugriff auf Datenbanktabellen und verf\u00fcgen \u00fcber eine gro\u00dfe Wiederverwendbarkeit f\u00fcr unterschiedlichste Anwendungen.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Mit Views dieser Schicht bilden Sie neue, eigenst\u00e4ndige, betriebswirtschaftliche Entit\u00e4ten ab. Die Daten dieser Entit\u00e4ten stammen oftmals aus unterschiedlichen Datenbanktabellen und werden je nach Bedarf zu einer neuen betriebswirtschaftlichen Entit\u00e4t kombiniert.
Views dieser Schicht setzen sich aus Basic-Interface-Views zusammen oder bauen auf einem anderen Composite-Interface-View auf.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Mit Views dieser Schicht bilden Sie die oberste Schicht eines Virtuellen Datenmodells ab. Sie bauen auf einem Composite-Interface-View auf und orientieren sich inhaltlich an Ihren betriebswirtschaftlichen Anforderungen. Sie stellen die Grundlage f\u00fcr Ihr spezifisches Reporting dar und verfolgen nicht das Ziel einer gro\u00dfen Wiederverwendbarkeit.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Sie haben den Anspruch wertvolle Erkenntnisse aus Ihren Daten zu gewinnen und bestm\u00f6gliche Entscheidungen f\u00fcr Ihr Unternehmen zu treffen. Um derartige erfolgversprechende Auswertungen durchf\u00fchren zu k\u00f6nnen, ben\u00f6tigen Sie h\u00e4ufig eine Kombination von Daten aus unterschiedlichen Datenbanktabellen.<\/p>
Nachfolgend m\u00f6chten wir Ihnen anhand von Beispielen aufzeigen, weshalb sich das virtuelle Datenmodell in diesem Fall besonders gut eignet. Dabei gehen wir n\u00e4her auf die Nutzung von Zwischenschichten und die Kombination von Daten \u00fcber Joins, Unions und Assoziationen ein.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
In diesem Beispiel m\u00f6chten wir Ihnen den Aufbau eines Stammdaten-Reportings aufzeigen. Hierf\u00fcr werden unterschiedliche Felder aus den nachfolgenden Tabellen ben\u00f6tigt:<\/p>
Tabelle COBK – CO-Objekt: Belegkopf<\/strong><\/p> Ben\u00f6tigte Felder:<\/p> Technischer Name<\/strong><\/p><\/td> Beschreibung<\/strong><\/p><\/td><\/tr> KOKRS<\/p><\/td> Kostenrechnungskreis<\/p><\/td><\/tr> BELNR<\/p><\/td> Belegnummer<\/p><\/td><\/tr><\/tbody><\/table>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Tabelle COEP – CO-Objekt: Einzelposten periodenbezogen<\/strong><\/p> Ben\u00f6tigte Felder:<\/p> Technischer Name<\/strong><\/p><\/td> Beschreibung<\/strong><\/p><\/td><\/tr> SGTXT<\/p><\/td> Segmenttext<\/p><\/td><\/tr> KSTAR<\/p><\/td> Kostenart<\/p><\/td><\/tr><\/tbody><\/table>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Im ersten Schritt greifen wir auf die unformatierten Daten aus den Tabellen COBK und COEP zu. Hierzu werden zwei eigene Basic-Interface-Views im Datenmodell erstellt. F\u00fcr die technischen Namen nutzen wir direkt die betriebswirtschaftliche Semantik und versehen diese mit sprechenden Bezeichnungen. Basic-Interface-View ZPK_BASIC_VIEW_COBK:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt in der Datenvorschau folgende Ausgabe mit entsprechenden Daten aus der Tabelle COBK:<\/p> Data Preview Basic-Interface-View ZPK_BASIC_VIEW_COBK:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Basic-Interface-View ZPK_BASIC_VIEW_COEP:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt in der Datenvorschau folgende Ausgabe mit entsprechenden Daten aus der Tabelle COEP.<\/p> Data Preview Basic-Interface-View ZPK_BASIC_VIEW_COEP:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Wie in den obigen Grafiken dargestellt, stehen zwei Basic-Interface-Views mit den ben\u00f6tigten Feldern zur Verf\u00fcgung. F\u00fcr die weitere Verarbeitung der Daten werden diese Felder in einer eigenen, gemeinsamen View ben\u00f6tigt.<\/p> Im virtuellen Datenmodell wird hierzu eine Zwischenschicht erstellt. Neben einem Join k\u00f6nnen Sie im virtuellen Datenmodell auch Assoziationen und Union Anweisungen verwenden. Wozu diese sich besonders gut eignen, wird im weiteren Verlauf aufgezeigt.<\/p> In unserem Beispiel werden die erstellten Basic-Interface-Views mit Hilfe eines Joins verbunden. Dabei erfolgt die Verbindung der Daten \u00fcber die Schl\u00fcsselfelder Belegnummer (Document Number) und Kostenkreis (Controlling Area).<\/p> Basic-Interface-View ZPK_BASIC_VIEW_JOIN:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt in der Datenvorschau folgende Ausgabe mit entsprechenden Daten aus den beiden vorherigen Views, die auf die Inhalte der Tabellen COBK und COEP zugreifen:<\/p> Data Preview Basic-Interface-View ZPK_BASIC_VIEW_JOIN:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Im n\u00e4chsten Schritt wird ein Composite-Interface-View erstellt.<\/p> Dieser basiert auf der Grundlage des zusammengef\u00fchrten Basic-Interface-Views und enth\u00e4lt somit alle ben\u00f6tigten Felder f\u00fcr das sp\u00e4tere Stammdaten-Reporting.<\/p> Oftmals kommt es vor, dass w\u00e4hrend der Erstellung des Datenmodells oder im Nachgang weitere Felder aus bisher nicht verwendeten Datenbanktabellen f\u00fcr das Reporting ben\u00f6tigt werden.<\/p> Ein gro\u00dfer Vorteil der Composite-Interface-View besteht darin, dass derartige Felder einfach mittels Assoziationen zum Datenmodell hinzugef\u00fcgt werden k\u00f6nnen.<\/p> Assoziationen verhalten sich aus technischer Sicht sehr \u00e4hnlich zu einem Join, jedoch sind diese wesentlich performanter, da sie nur dann ausgef\u00fchrt werden, wenn die Felder tats\u00e4chlich abgerufen werden.<\/p> In unserem Beispiel soll dem Composite-Interface-View das Feld Country und die zugeh\u00f6rigen Texte hinzugef\u00fcgt werden. Die ben\u00f6tigten Daten stammen aus einem eigenen Basic-Interface-View, welcher auf die Tabelle BWV_T005T zugreift.<\/p> Hierf\u00fcr wird eine Assoziation verwendet, die in dem Composite-Interface-View eingebaut wird.<\/p> Composite-Interface-View ZPK_BASIC_VIEW_JOIN mit Assoziation:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Composite-Interface-View zeigt in der Datenvorschau folgende Ausgabe:<\/p> Data Preview Composite-Interface-View ZPK_BASIC_VIEW_JOIN mit Assoziation:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Nachdem nun alle ben\u00f6tigten Felder mittels Join- und Assoziations-Anweisung im Composite-Interface-View enthalten sind, kann mit der Erstellung des Consumption-Interface-Views begonnen werden.<\/p> Bei diesem View handelt es sich um den eigentlichen Stammdaten-Report, der dem Unternehmen f\u00fcr Auswertungen zur Verf\u00fcgung steht.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Mittels Annotationen k\u00f6nnen Sie im virtuellen Datenmodell unterschiedlichste Einstellungen vornehmen. Beispielsweise k\u00f6nnen Felder standardm\u00e4\u00dfig als Zeilen oder Spalten im Aufriss deklariert sowie Feldbezeichnungen und Feldeigenschaften vergeben werden.<\/p> Feldbezeichnungen k\u00f6nnen \u00fcber die Annotation @EndUserText.label:<\/span><\/strong> definiert werden w\u00e4hrend die Annotation @AnalyticsDetails.query.axis:<\/strong> <\/span>steuert, ob Daten im Aufriss als Zeile oder Spalte verwendet werden.<\/p> Consumption View: ZPK_CONSUMPTION_VIEW<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt in der Datenvorschau folgende Ausgabe:<\/p> Consumption View: ZPK_CONSUMPTION_VIEW in Analysis for Office (AfO):<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Die Ausgabe des Consumption View zeigt, dass dem Feld Country neben dem Schl\u00fcssel \u201eDE\u201c nun auch Texte \u201eGermany\u201c zugeordnet werden. Diese Zuordnung erfolgte mittels Assoziation des Feldes Country und unter Anwendung von Annotationen um die zugeh\u00f6rigen Texte darzustellen.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Im obigen Beispiel wurde ein Join und im weiteren Verlauf eine Assoziation verwendet, um die ben\u00f6tigten Daten f\u00fcr das Stammdaten-Reporting im Datenmodell zu kombinieren. Diese beiden Arten eignen sich besonders gut, wenn Daten aus Tabellen mit unterschiedlichen Strukturen bzw. unterschiedlichen Feldern kombiniert werden sollen. \u00a0<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Anhand eines weiteren Beispiels wird die Funktionalit\u00e4t des Unions gezeigt. Es sollen zwei unterschiedliche Basic-Interface-Views zu einem gemeinsamen Basic-Interface View zusammengef\u00fchrt werden.<\/p> Hierf\u00fcr werden zwei Basic-Interface-Views verwendet, die auf die Datenbanktabelle ACDOCA zugreifen und dabei identische Felder auslesen. Sie unterscheiden sich in deren Filterung. Ein View liest Daten f\u00fcr das Gesch\u00e4ftsjahr 2021, der zweite View f\u00fcr das Gesch\u00e4ftsjahr 2022 aus.<\/p> Basic-Interface-View ZPK_SELECTION_1:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt in der Datenvorschau folgende Ausgabe:<\/p> Data Preview Basic-Interface-View ZPK_SELECTION_1:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt nun in einer Tabelle alle entsprechenden Daten aus dem Jahr 2021.<\/p> Basic-Interface-View ZPK_SELECTION_2:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt in der Datenvorschau folgende Ausgabe:<\/p> Data Preview Basic-Interface-View ZPK_SELECTION_2:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt nun in einer Tabelle alle entsprechenden Daten aus dem Jahr 2022.<\/p> \u00a0<\/p> Basic-Interface-View ZPK_UNION_EXAMPLE:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Dieser Basic-Interface-View zeigt in der Datenvorschau folgende Ausgabe:<\/p> Data Preview Basic-Interface-View ZPK_UNION_EXAMPLE:<\/strong><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Der zusammengef\u00fchrte Basic-Interface-View zeigt nun in einer Tabelle alle entsprechenden Daten aus den Jahren 2021 und 2022.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Mit dem virtuellen Datenmodell schaffen Sie die Grundlage f\u00fcr ein einfaches und transparentes Datenmanagement. Die Verwendung einer leicht verst\u00e4ndlichen betriebswirtschaftlichen Semantik vereinfacht den Aufbau und die Weiterentwicklung des Virtuellen Datenmodells. Weiterhin wird Ihnen ein performanter Datenzugriff, eine hohe Wiederverwendbarkeit und eine einfache Wartung geboten. <\/p> Nutzen Sie die Flexibilit\u00e4t des virtuellen Datenmodell um genau die Daten bereitzustellen, die Sie f\u00fcr Ihr Reporting ben\u00f6tigen.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tDatenzugriff<\/h3>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
<\/p>Kombination der Basic-Interface-Views und Zusammenf\u00fchrung von Daten<\/strong><\/h3>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Dabei handelt es sich um einen weiteren, eigenen Basic-Interface-View, der mit Hilfe eines Joins, die Daten aus den beiden bereits erstellten Basic-Interface-Views miteinander verkn\u00fcpft.<\/p>Erweiterung des Datenmodells mittels Assoziation<\/strong><\/h3>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Annotationen<\/h3>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Zusammenf\u00fchrung von Daten aus gleichartigen Datenbanktabellen<\/h3>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Ein Union hingegen eignet sich besonders gut f\u00fcr die Kombination von Daten, die aus zwei Tabellen mit der gleichen Struktur bzw. den gleichen Feldern in einer Basic-Interface-View vereinigt werden.<\/p>Zusammenf\u00fchrung der Daten mittels Union<\/strong><\/h3>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Ihr Datenmanagement, Ihre Regeln<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Webinare zu Embedded Analytics<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t