9.2 SAP R/3: Datenmodell, Metadaten, & Abbildung auf RDBMS G G G SAP R/3 Repository Analyse: Datenmodell von SAP R/3 • SAP-SERM Metadatenverwaltung • Data Dictionary G Abbildung von SAP-Tabellen auf Tabellen des RDBMS G Vorbereitung der praktischen Übung (Ü6) • Bankanwendung in SAP R/3 (Teil I) Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 10 SAP R/3 Repository: Übersicht SAP R/3 Administrator/ Entwickler/ Consultant SAP R/3 Anwender definiert / passt an benutzt QM Qualitätsmanagement PM Instandhaltung PP Produktionsplanung PS Projektsystem IS Branchenlösungen MM Materialwirtschaft SD Vertrieb Unternehmens Controlling PA HR Personaladministration Personalplang. & -entwicklung FI Finanzwesen AA Anlagenwirtschaft TR Treasury IM Investitionsmanagement Tabellen Programme etc. EC CO Controlling R/3 Repository Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 11 Integriertes SAP R/3 Repository G G Repository enthält sämtliche Daten, Objekte sowie Metadaten, die das R/3-System beschreiben Verwendung • • • G Analyse Design Implementation Orthogonal hierzu: Sichtweisen • • • Datenorientiert Funktionsorientiert Prozessorientiert Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 12 R/3 Repository: Konzepte & Sprachen Analyse EPK (Ereignisgesteuerte Prozessketten) Design Implementation Business Engineering Entwicklungsklasse prozessorientierte Sicht ABAP/4 funktionsorientierte Sicht SAP Module (FI, HR, …) SAP SERM Data Dictionary Objektverwaltung höherer Ordnung (OHO) – SS 2001 (Open & Native) SQL datenorientierte Sicht Kapitel 9: Datenmodell & -Abbildung – 13 R/3 Repository: Objekte Ü9 Ü8 Analyse Design Funktion, Ereignis, … Workflow Ü8 Ü7 Entitäten, Beziehungen Ü6 Tabellen, Domänen, Fremdschlüssel, ... Manuelle Übersetzung Implementation Transaktionen prozessorientierte Sicht Programm, Report, … funktionsorientierte Sicht DB-Tabellen interne Tabellen ABAP-Variablen, … datenorientierte Sicht Tool-unterstützte Übersetzung Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 14 Tools des R/3 Repository G Data Modeler G Data Dictionary G Data Browser G Object Navigator G Entwicklungswerkzeuge G • • • • • • Datenmodellierung Metadatenverwaltung Zugriff auf Datenbanktabellen (nur Anwendungsdaten) Zugriff auf sämtliche Programmobjekte ABAP-Editor Screen Painter, ... Business Workflow • • Definitionswerkzeuge Laufzeitwerkzeuge Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 15 Datenmodell: SAP-SERM … G G SERM = Structured Entity Relationship Model Tool-Unterstützung: Data Modeler Einkaufsinformation 15032 Einkaufsinformation H 15035 Einkaufsorganisation Einkaufsinformation 15028 H Bestellpreisentwicklung 15077 Einkaufsorganisation Einkaufsinfosubcontracting Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 16 … Datenmodell: SAP-SERM G G G G Modifiziertes Entity-Relationship-Modell Setzt sich zusammen aus • • • Entitätstypen 4 unterschiedliche Beziehungstypen Ohne Berücksichtigung der Attribute Strukturierung (S in SERM) • • • Beziehungen sind nur horizontal dargestellt, und nur von links nach rechts Keine m:n-Beziehungen erlaubt Erhöht die Lesbarkeit, führt aber zu recht „unförmigen” Datenmodellen Funktion des SAP-SERM • • Primär: Dokumentation des Systems Jedoch auch: (begrenzt) Unterstützung von kundenspezifischen Erweiterungen/Anpassungen Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 17 SAP-SERM-Beziehungstypen: Hierarchisch Hierarchische Beziehung • • H Q Q SERM ZZ Schlüssel der Zielentität Z (abhängige Entität) hängt vom Schlüssel der Quellentität Q ab Im erweiterten ER-Modell (EERM) entspricht daher Z einer schwachen Entität EERM keyQ Q keyQ keyZ Z (1,1) bzw. Objektverwaltung höherer Ordnung (OHO) – SS 2001 Q Z Kapitel 9: Datenmodell & -Abbildung – 18 SAP-SERM-Beziehungstypen: Aggregierend Aggregierende Beziehung: Q Q11 A ZZ ... SERM Q Qnn • EERM Analog zur hierarchischen Beziehung, nur ist die Zielentität von mehreren Quellentitäten existenzabhängig keyQ1 Q1 (1,1) ... keyQn Qn Objektverwaltung höherer Ordnung (OHO) – SS 2001 keyQ1 Z (1,1) keyZ keyQn Kapitel 9: Datenmodell & -Abbildung – 19 SAP-SERM-Beziehungstypen: Referentiell Referentielle Beziehung SERM • • ZZ R Q Q Ein Nicht-Schlüsselfeld der Zielentität Z (abhängige Entität) hängt vom Schlüssel der Quellentität Q ab Entspricht einer Fremdschlüsselabhängigkeit im Relationenmodell EERM keyQ keyZ Q Z keyQ Foreign key references Q.keyQ (0,1) Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 20 SAP-SERM-Beziehungstypen: IS-A IS-A-Beziehung SERM • • • EERM General General Special Special Analogon zur IS-A-Beziehung des EERM Eigenschaften: vollständig überdeckend und disjunkt Allerdings: keine automatische Umsetzung in entsprechende Konsistenzregeln General Special Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 21 SAP-SERM-Notation: Kardinalitäten G Kardinalitäten sind in die Darstellung der Beziehungstypen integriert (ausser bei IS-A-Beziehungen) • 1:1 Quellentität besitzt genau eine abhängige Entität • 1:m m>0 Quellentität besitzt mindestens eine abhängige Entität • 1:c c ∈ {0,1} Quellentität besitzt höchstens eine abhängige Entität • 1:cm cm ≥ 0 Quellentität besitzt beliebig viele abhängige Entitäten Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 22 SAP R/3-Tabellen G G Tabelle wichtigste Datenstruktur in SAP R/3 • Jede Entität im Datenmodell entspricht einer SAP-Tabelle bzw. einer View Data Dictionary: Verwaltung von Metadaten über • • SAP-Tabellen Sonstige SAP-Schemaobjekte – Domänen spezifische Ausprägungen der 23 SAP-internen Basisdatentypen, evtl. ergänzt um Wertebereichsbeschränkungen – Datenelemente (semantische Domänen) Basisdatentypen angereichert mit zusätzlicher Semantik: Beschreibung, Formatierung, etc. • Aber auch Schema-Objekte der unterliegenden Datenbank – Views – Indizes – Fremdschlüssel, ... Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 23 Rückblick: Architektur von SAP R/3 SAPGUI SAPGUI (Business Client) (Business Client) … Web-Client Präsentation HTTP Dispatcher Web Server DynPro-Interpreter ABAP-Interpreter • Anwendungen (ABAP) • Data Dictionary SAPTabellen Anwendungslogik Datenbank-Schnittstelle DBTabellen Objektverwaltung höherer Ordnung (OHO) – SS 2001 Datenhaltung Kapitel 9: Datenmodell & -Abbildung – 24 Rückblick: Dialog-Workprozess Dialog-Workprozess Shared Memory DynPro-Interpreter ABAP-Interpreter Native SQL Open SQL DatenbankSchnittstelle Objektverwaltung höherer Ordnung (OHO) – SS 2001 Data Dictionary Tabellenpuffer Kapitel 9: Datenmodell & -Abbildung – 25 Von R/3-Tabellen zu DB-Tabellen … G Abbildung der logischen SAP-Tabellen auf physische Tabellen des unterliegenden RDBMS • Transparente Tabellen – 1:1 Abbildung, d.h. eine Datenbankrelation pro Tabelle – Anwendungsdaten SAP-Tabellen DB-Tabellen Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 26 … Von R/3-Tabellen zu DB-Tabellen … • Pool-Tabellen – Mehrere SAP-Tabellen mit gleichem Schema in einer DB-Tabelle – In der Datenbank wird zu jedem Tupel gespeichert, zu welcher SAP-Tabelle es gehört SAP-Tabellen A B Objektverwaltung höherer Ordnung (OHO) – SS 2001 DB-Tabellen A A B B A A B A A B Kapitel 9: Datenmodell & -Abbildung – 27 … Von R/3-Tabellen zu DB-Tabellen • Cluster-Tabellen – Mehrere, logisch zusammengehörende SAP-Tabellen in einer DB-Tabelle (objektweise Speicherung) – Voraussetzung: zusammengehörende Datensätze (Tupel der SAPTabellen) über gemeinsame Primärschlüssel identifizierbar SAPTabellen A DB-Tabellen Key p q r s Key p q r s B Key p q r s Key p q r s C Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 28 Unterscheidung: Tabellen, Datenelemente, Domänen Lohnauszahlung Tabellen KtoNr Monat Betrag Buchung BuchNr Betrag Ktovon BUCHUNGSBETRAG Datenelemente (technische & betriebswirtschaftliche Angaben) Buchungsbetrag in CHF Konto Ktonach KtoNr KontoStand Zinssatz KONTOSTAND Kontostand in CHF BETRAG Domänen (technische Angaben) Betrag mit zwei Nachkommastellen Datentyp: Stellen: Dezimalst.: Werteber.: CURR 12 2 > -500,00 SAP-Basisdatentypen CURR (Währungsfeld, abgelegt als DEC) Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 29 Umsetzung der Basis-Datentypen G Die SAP-Basisdatentypen (Domänen-Datentypen) werden automatisch durch die Datenbankschnittstelle und das Data Disctionary auf die Datentypen des jeweils verwendeten RDBMS umgesetzt Datenbank-Datentypen automatische Übersetzung SAP-Basisdatentypen automatische Übersetzung ABAP-Datentypen G Domänen-Datentypen und ABAP-Datentypen stimmen ebenfalls nicht direkt überein. Daher auch hier automatische Übersetzung im Data Dictionary Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 30 RDBMS von SAP R/3 G G Aus Sicht der Datenbank existiert nur ein einziger Benutzer (SAPR3) als Eigentümer aller Datenbank-Objekte Alle Sourcen des Systems sind in der Datenbank abgelegt • G Diese Tabellen sind jedoch im Data Dictionary nicht sichtbar Z.B. Verwaltung der ABAP-Programme (sowohl Quellcode als auch Bytecode) • • Datenbanktabellen SAPR3.D010S, SAPR3.D010T, SAPR3.D010Y, ... Code als LONG RAW Feld gespeichert Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 31 Praktische Übung (Allg.) G G Implementierung des Transfer-Szenarios innerhalb von SAP R/3 (OHO-Bank) Jeder OHO-Teilnehmer erhält ein SAP-Account (dbsxx) mit Entwickler-Berechtigung • • • G “Normale” Benutzer werden lokal verwaltet Entwickler müssen jedoch bei SAP in Walldorf registriert werden (in Form eines benutzerspezifischen Entwicklerschlüssels) Zusätzlich: Registrierung für jedes zu ändernde SAP-Objekt benötigt (des Original-SAP-Systems) Entwicklungen in SAP R/3 • • Begrenzter Namensraum: Y… oder Z… Konvention für die Übung – Benennung: ZOHOxx… wobei xx die Login-Nr aus dbsxx ist – Alle Entwicklungen in privater Entwicklungsklasse Z_OHO_DBSxx ablegen (Sammlung von logisch zusammengehörenden Objekten). Dies erleichtert das Wiederauffinden der eigenen Objekte Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 32 Praktische Übung (Ü6) G Datenmodell der OHO-Bank in SAP-SERM umsetzen ZOHOxxKUN ZOHOxxKTO (0,*) G (1,1) ZOHOxxBUCH (0,*) (1,1) dabei die bestehende Kundentabelle KNA1 in Form einer View übernehmen, die Konto- und die Buchungstabelle neu im Data Dictionary anlegen Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 9: Datenmodell & -Abbildung – 33