G SAP 9.2 SAP R/3: Datenmodell, Metadaten, & Abbildung auf RDBMS R/3 Repository G Analyse: Datenmodell von SAP R/3 SAP-SERM G 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) Kapitel 9: Datenmodell & -Abbildung 10
SAP R/3 Repository: Übersicht SAP R/3 Anwender SAP R/3 Administrator/ Entwickler/ Consultant QM Qualitätsmanagement PA Personaladministration FI Finanzwesen PM Instandhaltung HR Personalplang. & -entwicklung AA Anlagenwirtschaft PP Produktionsplanung MM Materialwirtschaft TR Treasury benutzt PS Projektsystem SD Vertrieb IM Investitionsmanagement IS Branchenlösungen EC Unternehmens Controlling CO Controlling definiert / passt an Tabellen Programme etc. R/3 Repository Kapitel 9: Datenmodell & -Abbildung 11
Integriertes SAP R/3 Repository G Repository enthält sämtliche Daten, Objekte sowie Metadaten, die das R/3-System beschreiben G Verwendung Analyse Design Implementation G Orthogonal hierzu: Sichtweisen Datenorientiert Funktionsorientiert Prozessorientiert Kapitel 9: Datenmodell & -Abbildung 12
R/3 Repository: Konzepte & Sprachen Analyse Design Implementation EPK (Ereignisgesteuerte Prozessketten) Business Engineering Entwicklungsklasse prozessorientierte Sicht SAP Module (FI, HR, ) ABAP/4 funktionsorientierte Sicht SAP SERM Data Dictionary (Open & Native) SQL datenorientierte Sicht Kapitel 9: Datenmodell & -Abbildung 13
R/3 Repository: Objekte Analyse Design Implementation Ü9 Ü8 Funktion, Ereignis, Workflow Transaktionen prozessorientierte Sicht Ü8 Ü7 Programm, Report, funktionsorientierte Sicht Ü6 Entitäten, Beziehungen Manuelle Übersetzung Tabellen, Domänen, Fremdschlüssel,... Tool-unterstützte Übersetzung DB-Tabellen interne Tabellen ABAP-Variablen, datenorientierte Sicht Kapitel 9: Datenmodell & -Abbildung 14
G Data Modeler Datenmodellierung G Data Dictionary Metadatenverwaltung G Data Browser Tools des R/3 Repository Zugriff auf Datenbanktabellen (nur Anwendungsdaten) G Object Navigator Zugriff auf sämtliche Programmobjekte G Entwicklungswerkzeuge ABAP-Editor Screen Painter,... G Business Workflow Definitionswerkzeuge Laufzeitwerkzeuge Kapitel 9: Datenmodell & -Abbildung 15
Datenmodell: SAP-SERM G SERM =Structured Entity Relationship Model G Tool-Unterstützung: Data Modeler Einkaufsinformation 15032 H Einkaufsinformation 15035 Einkaufsorganisation - Einkaufsinformation H Bestellpreisentwicklung 15028 15077 Einkaufsorganisation - Einkaufsinfosubcontracting Kapitel 9: Datenmodell & -Abbildung 16
Datenmodell: SAP-SERM G Modifiziertes Entity-Relationship-Modell G Setzt sich zusammen aus Entitätstypen 4 unterschiedliche Beziehungstypen Ohne Berücksichtigung der Attribute G 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 G Funktion des SAP-SERM Primär: Dokumentation des Systems Jedoch auch: (begrenzt) Unterstützung von kundenspezifischen Erweiterungen/Anpassungen Kapitel 9: Datenmodell & -Abbildung 17
SAP-SERM-Beziehungstypen: Hierarchisch Hierarchische Beziehung SERM QQ H Z Z EERM 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 keyq keyq keyz Q (1,1) Z bzw. Q Z Kapitel 9: Datenmodell & -Abbildung 18
SAP-SERM-Beziehungstypen: Aggregierend Aggregierende Beziehung: SERM Q 1... A ZZ Q n Analog zur hierarchischen Beziehung, nur ist die Zielentität von mehreren Quellentitäten existenzabhängig EERM keyq 1 Q 1 keyq n... Q n (1,1) (1,1) Z keyq 1 keyz keyq n Kapitel 9: Datenmodell & -Abbildung 19
SAP-SERM-Beziehungstypen: Referentiell Referentielle Beziehung ZZ SERM QQ R 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 (0,1) Z keyq Foreign key references Q.keyQ Kapitel 9: Datenmodell & -Abbildung 20
SAP-SERM-Beziehungstypen: IS-A IS-A-Beziehung SERM General Special Analogon zur IS-A-Beziehung des EERM Eigenschaften: vollständig überdeckend und disjunkt Allerdings: keine automatische Umsetzung in entsprechende Konsistenzregeln EERM General Special 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 Quellentität besitzt mindestens m > 0 eine abhängige Entität 1:c Quellentität besitzt höchstens c {0,1} eine abhängige Entität 1:cm Quellentität besitzt beliebig viele cm 0 abhängige Entitäten Kapitel 9: Datenmodell & -Abbildung 22
SAP R/3-Tabellen G Tabelle wichtigste Datenstruktur in SAP R/3 Jede Entität im Datenmodell entspricht einer SAP-Tabelle bzw. einer View G 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,... 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 Anwendungen (ABAP) Data Dictionary DynPro-Interpreter ABAP-Interpreter Datenbank-Schnittstelle SAP- Tabellen Anwendungslogik DB- Tabellen Datenhaltung Kapitel 9: Datenmodell & -Abbildung 24
Rückblick: Dialog-Workprozess Dialog-Workprozess DynPro-Interpreter Shared Memory ABAP-Interpreter Native SQL Open SQL Tabellenpuffer Datenbank- Schnittstelle Data Dictionary 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 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 DB-Tabellen B 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 SAP- Tabellen) über gemeinsame Primärschlüssel identifizierbar SAP- Tabellen A Key p q r s DB-Tabellen B Key p q r s Key p q r s C Key p q r s Kapitel 9: Datenmodell & -Abbildung 28
Unterscheidung: Tabellen, Datenelemente, Domänen Tabellen Lohnauszahlung KtoNr Monat Betrag BuchNr Buchung Betrag Ktovon Ktonach KtoNr Konto Konto- Stand Zinssatz Datenelemente (technische & betriebswirtschaftliche Angaben) BUCHUNGSBETRAG Buchungsbetrag in CHF KONTOSTAND Kontostand in CHF Domänen (technische Angaben) BETRAG Betrag mit zwei Nachkommastellen Datentyp: CURR Stellen: 12 Dezimalst.: 2 Werteber.: > -500,00 SAP-Basisdatentypen CURR (Währungsfeld, abgelegt als DEC) 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 SAP-Basisdatentypen ABAP-Datentypen automatische Übersetzung automatische Übersetzung G Domänen-Datentypen und ABAP-Datentypen stimmen ebenfalls nicht direkt überein. Daher auch hier automatische Übersetzung im Data Dictionary Kapitel 9: Datenmodell & -Abbildung 30
RDBMS von SAP R/3 G Aus Sicht der Datenbank existiert nur ein einziger Benutzer (SAPR3) als Eigentümer aller Datenbank-Objekte G Alle Sourcen des Systems sind in der Datenbank abgelegt Diese Tabellen sind jedoch im Data Dictionary nicht sichtbar G Z.B. Verwaltung der ABAP-Programme (sowohl Quellcode als auch Bytecode) Datenbanktabellen SAPR3.D010S, SAPR3.D010T, SAPR3.D010Y,... Code als LONG RAW Feld gespeichert Kapitel 9: Datenmodell & -Abbildung 31
Praktische Übung (Allg.) G Implementierung des Transfer-Szenarios innerhalb von SAP R/3 (OHO-Bank) G Jeder OHO-Teilnehmer erhält ein SAP-Account (dbsxx) mit Entwickler-Berechtigung 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) G 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 Kapitel 9: Datenmodell & -Abbildung 32
Praktische Übung (Ü6) G Datenmodell der OHO-Bank in SAP-SERM umsetzen ZOHOxxKUN ZOHOxxKTO ZOHOxxBUCH (0,*) (1,1) (0,*) (1,1) G dabei die bestehende Kundentabelle KNA1 in Form einer View übernehmen, die Konto- und die Buchungstabelle neu im Data Dictionary anlegen Kapitel 9: Datenmodell & -Abbildung 33