Kap.10 ERP: Datenmodellierung und –verwaltung 10.1 Abbildung von Anwendungsobjekten auf Datenbankobjekte in ERP-Systemen 10.2 Workshop: Datenmodell, Metadaten, & Abbildung auf RDBMS in SAP R/3 Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 1 10.1 Anwendungsobjekte oberhalb von DB-Objekten Komplexe betriebswirtschaftliche Anwendungen erfordern in der Regel ein spezielles Datenmodell auf Anwendungsebene (Anwendungsobjekte bzw. Business Objects) • „Objektverwaltung höherer Ordnung“ Anwendungsobjekte werden in einer oder in mehreren Datenbanken gespeichert • • Abbildung von Anwendungsobjekten auf Datenbankobjekte (Relationen, DB-Objekte) Da zumeist mehrere Datenbanksysteme unterstützt werden, muss diese Abbildung hersteller-unabhängig geschehen (jeder DB-Hersteller hat eine proprietäre Schnittstelle zur Datenbank, eigene Datentypen, usw.) Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 2 Anwendungsobjekte « DB-Objekte Datenbank-Abstraktions-Schicht innerhalb des ERP-Systems, zwischen Anwendungslogik und Datenbank, gewährleistet Unabhängigkeit vom Datenbankprodukt • z.B. durch Einführung eines eigenen SQL-Dialekts, der in den speziellen Dialekt der verwendeten DB umgesetzt wird Meta-Daten zur Objektverwaltung • Die Business Objects müssen auf der Anwendungsebene verwaltet werden • Dazu ist Meta-Information nötig – Zur Beschreibung der existierenden Anwendungsobjekte – Zur Abbildung auf Datenbankobjekte « Data Dictionary Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 3 Anwendungsobjekte « DB-Objekte Client-GUI Client-GUI Client-GUI … Client-GUI Betriebswirtschaftliche Betriebswirtschaftliche Data Anwendungslogik Anwendungslogik Dictionary Datenbank-Abstraktion Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 4 10.2 SAP R/3: Datenmodell, Metadaten, & Abbildung auf RDBMS SAP R/3 Repository Analyse: Datenmodell von SAP R/3 • SAP-SERM Metadatenverwaltung • Data Dictionary Abbildung von SAP-Tabellen auf Tabellen des RDBMS Vorbereitung der praktischen Übung (Ü7) • Bankanwendung in SAP R/3 (Teil I) Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 5 SAP R/3 Repository: Übersicht SAP R/3 Administrator/ Entwickler/ Consultant SAP R/3 Anwender definiert / passt an benutzt QM Qualitätsmanagement PA PM Instandhaltung PP Produktionsplanung PS Projektsystem IS Branchenlösungen HR MM Materialwirtschaft SD Vertrieb Unternehmens Controlling 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 6 Integriertes SAP R/3 Repository Repository enthält sämtliche Daten, Objekte sowie Metadaten, die das R/3-System beschreiben Verwendung • • • Analyse Design Implementation Orthogonal hierzu: Sichtweisen • • • Datenorientiert Funktionsorientiert Prozessorientiert Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 7 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 2003 (Open & Native) SQL datenorientierte Sicht Kapitel 10: ERP: Datenmodell & -Abbildung – 8 R/3 Repository: Objekte Analyse Ü9 Design Funktion, Ereignis, … Workflow Ü8 Ü7 Entitäten, Beziehungen 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 9 Tools des R/3 Repository Data Modeler • Data Dictionary • Zugriff auf Datenbanktabellen (nur Anwendungsdaten) Object Navigator • Metadatenverwaltung Data Browser • Datenmodellierung Zugriff auf sämtliche Programmobjekte Entwicklungswerkzeuge • • • ABAP-Editor Screen Painter Menu Painter (Definition von Buttons & Menüeinträgen) Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 10 Datenmodell: SAP-SERM … SERM = Structured Entity Relationship Model Tool-Unterstützung: Data Modeler Einkaufsinformation 15032 Einkaufsinformation 15028 15035 H Einkaufsorganisation Einkaufsinformation H Bestellpreisentwicklung 15077 Einkaufsorganisation Einkaufsinfosubcontracting Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 11 … Datenmodell: SAP-SERM Modifiziertes Entity-Relationship-Modell Setzt sich zusammen aus • • • Strukturierung (S in SERM) • • • Entitätstypen 4 unterschiedliche Beziehungstypen Ohne Berücksichtigung der Attribute 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 12 SAP-SERM-Beziehungstypen: Hierarchisch Hierarchische Beziehung Q Q SERM • • H 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 (1,1) keyZ Z bzw. Objektverwaltung höherer Ordnung (OHO) – SS 2003 Q Z Kapitel 10: ERP: Datenmodell & -Abbildung – 13 SAP-SERM-Beziehungstypen: Aggregierend Aggregierende Beziehung: Q Q11 A ... SERM ZZ 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 2003 keyQ1 Z (1,1) keyZ keyQn Kapitel 10: ERP: Datenmodell & -Abbildung – 14 SAP-SERM-Beziehungstypen: Referentiell Referentielle Beziehung SERM • • EERM 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 keyQ keyZ Q Z (0,1) Objektverwaltung höherer Ordnung (OHO) – SS 2003 keyQ Foreign key references Q.keyQ Kapitel 10: ERP: Datenmodell & -Abbildung – 15 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 16 SAP-SERM-Notation: Kardinalitäten 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 17 SAP R/3-Tabellen 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 18 Rückblick: Architektur von SAP R/3 SAPGUI (Business Client) SAPGUI (Business Client) … Web-Client Präsentation HTTP Dispatcher • Anwendungen (ABAP) • Data Dictionary Web Server DynPro-Interpreter ABAP-Interpreter SAPTabellen Anwendungslogik Datenbank-Schnittstelle DBTabellen Objektverwaltung höherer Ordnung (OHO) – SS 2003 Datenhaltung Kapitel 10: ERP: Datenmodell & -Abbildung – 19 Rückblick: Dialog-Workprozess Dialog-Workprozess Shared Memory DynPro-Interpreter ABAP-Interpreter Native SQL Open SQL DatenbankSchnittstelle Objektverwaltung höherer Ordnung (OHO) – SS 2003 Data Dictionary Tabellenpuffer Kapitel 10: ERP: Datenmodell & -Abbildung – 20 Von R/3-Tabellen zu DB-Tabellen … 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 21 … 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 2003 DB-Tabellen A A B B A A B A A B Kapitel 10: ERP: Datenmodell & -Abbildung – 22 … 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 B Key p q r s Key p q r s C Objektverwaltung höherer Ordnung (OHO) – SS 2003 Key p q r s Kapitel 10: ERP: Datenmodell & -Abbildung – 23 Unterscheidung: Tabellen, Datenelemente, Domänen Lohnauszahlung Tabellen KtoNr Monat Betrag Buchung BuchNr Betrag Ktovon BUCHUNGSBETRAG Datenelemente (technische & betriebswirtschaftliche Angaben) (technische Angaben) Ktonach KtoNr KontoStand Zinssatz KONTOSTAND Buchungsbetrag in CHF Kontostand in CHF BETRAG Domänen Konto 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 24 Umsetzung der Basis-Datentypen Die SAP-Basisdatentypen (Domänen-Datentypen) werden automatisch durch die Datenbankschnittstelle und das Data Dictionary auf die Datentypen des jeweils verwendeten RDBMS umgesetzt Datenbank-Datentypen automatische Übersetzung SAP-Basisdatentypen automatische Übersetzung ABAP-Datentypen 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 25 RDBMS von SAP R/3 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 • 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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 26 Praktische Übung (Allg.) Implementierung des Transfer-Szenarios (OHO-Bank) innerhalb von SAP R/3 Jeder OHO-Teilnehmer erhält ein SAP-Account (dbsxx) mit EntwicklerBerechtigung (xx entspricht dabei der Nummer des Oracle-Accounts ohoxx) • • • “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 ZOHOxx ablegen (Sammlung von logisch zusammengehörenden Objekten). Dies erleichtert das Wiederauffinden der eigenen Objekte Objektverwaltung höherer Ordnung (OHO) – SS 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 27 Praktische Übung (Ü7) Datenmodell der OHO-Bank in SAP-SERM umsetzen ZOHOxxKUN ZOHOxxKTO (0,*) (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 2003 Kapitel 10: ERP: Datenmodell & -Abbildung – 28