Kap. 12 Einblick in ausgewählte Produkte - Beispiel SAP R/3 ● Inhalt: Wertneutraler Überblick über SAP R/3 aus Infrastruktur/Informationssysteme-Sicht ◆ ◆ ◆ ◆ ◆ ● Architektur Datenmodell Datenbankschnittstellen und Metadaten-Verwaltung Konfiguration Transaktionsverwaltung Ziel: ◆ Verstehen der Konzepte von SAP R/3 und deren Einordnung in den Kontext der Datenbanktechnologie Einblick in ausgewählte Produkte: SAP R/3 - 1 IS-K 12.1 SAP R/3 vs. DBMS ● Problemstellung ◆ C. Lever von der Firma Competence Ltd. möchte ein Informationssystem zur Büromaterialverwaltung einsetzen ◆ Anforderungen – Lagerbestandsverwaltung – Automatisierung von Bestellvorgängen –… ● Alternativen ◆ Datenbanklösung ◆ SAP R/3 IS-K Einblick in ausgewählte Produkte: SAP R/3 - 2 1 Datenbanklösung … ● C. Lever kauft Modellierungswerkzeug ◆ Datenbanksystem ◆ Entwicklungswerkzeug ◆ GUI-Builder ◆ ◆ ● … Was erhält er davon für die Materialverwaltung ? ◆ Nichts ! Einblick in ausgewählte Produkte: SAP R/3 - 3 IS-K … Datenbanklösung ● Was muss C. Lever noch tun ? Informationsmodellierung ◆ Export in Datenbankschema ◆ Implementierung aller ◆ – Funktionen – Prozesse IS-K ◆ Oberflächenprogrammierung ◆ ... Einblick in ausgewählte Produkte: SAP R/3 - 4 2 Materialverwaltung von SAP R/3 … ● C. Lever kauft ◆ ● SAP R/3 Was erhält er davon für die Materialverwaltung ? Datenmodell ◆ Funktionen ◆ Prozesse ◆ ◆ …. FUNCTION CO_RU_UNIT_CONVERSION. DATA: TMP_D ECIMALS LIKE T006-ANDEC, TMP _MEINS LIKE MAR A-MEINS, TMP _MENGE_F T YPE F. CALL FUNCTION 'UNIT_CONV ERSION_WITH_FACTOR' EXPORTING ADD_CONST =0 DENOMINATOR = UM REZ INPUT = TMP_ME NGE_F NUMERATOR = UMREN IMPORTING OUTPUT = TMP_MENGE_F EXCEPTIONS DIVISION_BY_ZERO = 03 OVERFLOW = 04 TYPE_INVALID = 07. IF SY-S UBRC <> 0. PERFORM CONVERSIO N_ERROR USING M EINH MEINS. END IF. ENDIF. IF SY-SUBRC <> 0. CLEAR T006. T006-MSEHI = MEIN S. SELECT SINGLE * F ROM T006 WH ERE MSEHI = T006-MSEHI. IF SY-S UBRC = 0. ... Einblick in ausgewählte Produkte: SAP R/3 - 5 IS-K … Materialverwaltung von SAP R/3 ● Was muss C. Lever noch tun ? ◆ SAP R/3 verstehen bzw. sich Consultants engagieren IS-K ◆ Konfiguration des Systems ◆ Customizing: Auswahl und Anpassung der ausgelieferten branchen- und unternehmensneutralen Funktionen/Prozesse ◆ Eigenentwicklungen: Zusätzliche unternehmensspezifische Erweiterungen Einblick in ausgewählte Produkte: SAP R/3 - 6 3 12.2 SAP R/3 Produkt und Architektur ● Betriebswirtschaftliche Standard-Software ◆ ◆ ◆ Deckt grossen Teil betriebswirtschaftlicher Anwendungsfunktionalität ab Unternehmens- und branchenneutral Möglichkeit/Notwendigkeit der Kundenanpassung (Customizing) Basierend auf relationalem Datenbanksystem ● Kernsystem (Laufzeitsystem) implementiert in C ● Anwendungen implementiert in ABAP (eigene 4GLSprache) ● Grösse des Systems: ~7 Mio LOC (in 1994) ● Einblick in ausgewählte Produkte: SAP R/3 - 7 IS-K Dreistufige Client/Server-Architektur von SAP R/3 SAPGUI SAP Client Library Betriebssystem Client thin Server Betriebssystem SAP Server Library SAP R/3Anwendungen DB Client Library Betriebssystem Client thick Präsentation IS-K Anwendungslogik Server Betriebssystem DB Server Library DB Server Datenhaltung Einblick in ausgewählte Produkte: SAP R/3 - 8 4 R/3 Anwendungsmodule im Überblick QM PM PP PS IS Qualitätsmanagement Instandhaltung Produktionsplanung Projektsystem Branchenlösungen PA HR MM Personaladministration Personalplanung & -entwicklung Materialwirtschaft Vertrieb Treasury Investitionsmanagement FI Finanzwesen EC SD Unternehmens Controlling SAPTRR/3- IM Anwendungen AA Anlagenwirtschaft CO Controlling CA Anwendungsübergreifende Funktionen BC Basisfunktionen Einblick in ausgewählte Produkte: SAP R/3 - 9 IS-K SAP R/3 Prozessübersicht Präsentation SAPGUIProzess SAPGUIProzess X-Server PC Dispatcher BatchWorkprozess Anwendungsserver SpoolWorkprozess DialogWorkprozess VerbuchungsWorkprozess Datenbankserver IS-K EnqueueWorkprozess RDBMS Einblick in ausgewählte Produkte: SAP R/3 - 10 5 Dienste und Prozesse … Präsentation ● SAPGUI-Prozess (1 pro Benutzersession) Anwendungsserver (ρ 1 pro R3-System) ● Dispatcher (1 pro Anwendungsserver) Zentraler Prozess auf Anwendungsebene ◆ Zuweisung von Workprozessen ◆ ● Dialog-Workprozess (ρ 1 pro Anwendungsserver) ABAP/4-Interpreter ◆ DynPro-Prozessor ◆ ● Batch-Workprozess (ρ 1 pro R3-System) ◆ Hintergrundverarbeitung Einblick in ausgewählte Produkte: SAP R/3 - 11 IS-K … Dienste und Prozesse ... ● Enqueue-Workprozess (genau 1 pro R3-System) Sperrverwaltung für SAP-Objekte ◆ Verwendet eigene Sperrtabelle, unabhängig von unterliegender Datenbank ◆ ● Verbuchungs-Workprozess (ρ 1 pro R3-System) ◆ ● Spool-Workprozess (1 pro Rechner) ◆ IS-K Durchführung von Datenbank-Änderungen Druckaufbereitung Einblick in ausgewählte Produkte: SAP R/3 - 12 6 … Dienste und Prozesse Datenbankserver (1 pro R3-System) ● Datenbankprozesse ◆ Multiple Server – Ein Datenbankprozess pro Workprozess – Beispiel: Oracle ◆ Monolithischer Server – Ein Datenbankprozess pro System – Separater Thread pro Workprozess – Beispiel: ADABAS-D Einblick in ausgewählte Produkte: SAP R/3 - 13 IS-K Unterstützte Hardware und Systemsoftware Sprachen Dialog SAPGUI ABAP/4, ++,,(Business) ABAP/4,C, C,CC++ (Business)HTML, HTML,Java Java Windows 3.1, Windows 95, Windows 98, Windows NT OSF/Motif, OS/2 Presentation Manager, Macintosh, Java VM ADABAS D, ORACLE, MS SQL Server Betriebssysteme AIX, Digital UNIX, HP-UX, Sinix, Solaris Windows WindowsNT NT OS/400 OS/400 Hardware Bull, Digital, HP, IBM, SNI, SUN Bull/Zenith, Compaq, Digital, HP (Intel), NCR, IBM (Intel), SNI, ... IBM AS/400 Unix-Systeme IS-K DB2 für AS/400 ADABAS D, DB2 für AIX, Informix Online, ORACLE Datenbanken Einblick in ausgewählte Produkte: SAP R/3 - 14 7 12.3 Datenmodell: SAP-SERM ● ● SERM = Structured Entity Relationship Model Data Modeler: Beschreibung des kompletten SAP-Datenmodells in SERM (s. Online-Demo) Einkaufsinformation 15032 Einkaufsinformation H 15035 Einkaufsorganisation Einkaufsinformation 15028 H Bestellpreisentwicklung 15077 Einkaufsorganisation Einkaufsinfosubcontracting Einblick in ausgewählte Produkte: SAP R/3 - 15 IS-K SAP-SERM-Notation ● Beziehungstypen Hierarchisch Aggregation H A IS-A Referentiell R ● IS-K Kardinalitäten 1:1 1:c c ε {0,1} 1:m m>0 1:cm cm ρ 0 Einblick in ausgewählte Produkte: SAP R/3 - 16 8 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 (DB- und temporäre Tabellen) sonstige Schemaobjekte – Indizes – Fremdschlüssel – Views, … ◆ Zusätzlich Links zu – Datenbankinhalt – Programmbibliothek (Data Browser) (Verwendungsnachweis) Einblick in ausgewählte Produkte: SAP R/3 - 17 IS-K 12.4 SAP R/3 als Client des RDBMS ● Aus Sicht der Datenbank existiert nur ein einziger Benutzer (SAPR3) als Eigentümer aller DatenbankObjekte ● Alle Sourcen des Systems in Datenbank abgelegt ◆ ◆ ● IS-K Diese Tabellen jedoch im Data Dictionary nicht sichtbar sowohl Quellcode als auch Bytecode in der DB SAP-Tabellen mit gleichen Schema oder mit logisch zusammengehörenden Daten werden zum Teil in die selbe physische Tabelle des unterliegenden RDBMS abgebildet. (Pool- und Cluster-Tabellen) Einblick in ausgewählte Produkte: SAP R/3 - 18 9 12.5 ABAP: SAP R/3-Programmiersprache ● ABAP: ◆ Advanced Business Application Programming Language Interpretative Abarbeitung (via Zwischencode) ● 4GL-Sprache, erweitert um Datenbankoperationen ● ◆ Datenbankzugriff – Open SQL – Native SQL Dialogorientiert (DynPro-Konzept) ● Entwicklungsumgebung im System integriert (ABAP-Workbench) ● Einblick in ausgewählte Produkte: SAP R/3 - 19 IS-K Datenbankschnittstellen in SAP R/3 Dialog-Workprozess Dialog-Workprozess Dialog-Workprozess Shared Memory DynPro-Interpreter DynPro-Interpreter DynPro-Interpreter ABAP-Interpreter ABAP-Interpreter ABAP-Interpreter Native SQL Open SQL Native SQL Open SQL Native SQL Open SQL DatenbankDatenbankDatenbankSchnittstelle Schnittstelle Schnittstelle Data Dictionary Tabellenpuffer RDBMS IS-K Einblick in ausgewählte Produkte: SAP R/3 - 20 10 Open SQL vs. Native SQL ● Open SQL ◆ ◆ ● SQL-Dialekt von SAP, datenbankunabhängig Nutzt SAP-internes Data Dictionary und Tabellenpuffer auf Anwendungsserver-Ebene Native SQL ◆ ◆ ◆ SQL-Dialekt der unterliegenden DB Mächtiger als Open-SQL Ohne Verwendung des SAP-internen Data Dictionary – Kein Zugriff auf Pool-Tabellen und Cluster-Tabellen – Nur Zugriff auf Anwendungsdaten möglich – Umgehung der anwendungsspezifischen betriebswirtschaftlichen Konsistenzprüfungen – Umgehung der SAP-Transaktionsverwaltung Einblick in ausgewählte Produkte: SAP R/3 - 21 IS-K DynPro-Konzept Dialogprogramm = Folge von Dialogschritten ● Jeder Dialogschritt entspricht einem DynPro (dynamisches Programm) ● DynPro-Ablauflogik ● ◆ ◆ PBO (Process Before Output) – Bereitet Bildschirmbild zur Ausgabe vor PAI (Process After Input) – Verarbeitung der Benutzereingaben OutputModul PBO DynPro IS-K Bildschirmausgabe Benutzereingabe InputModul OutputModul PAI PBO … Einblick in ausgewählte Produkte: SAP R/3 - 22 11 12.6 Transaktionen in SAP/R3 ● Transaktionen heissen in SAP/R3 Logical Unit of Work (LUW). Eine LUW besteht aus zwei Teilen: ◆ der SAP-Transaktion: Zusammenfassung der vorbereitenden Dialogschritte Di und der ◆ SAP-Verbuchung: eigentliche Ausführung der vorbereiteten Schritte. Sperrdauer für SAP- Objekte SAP-LUW SAP-Objekte DB-Objekte SAP-Transaktion SAP-Verbuchung D1 D2 D3 D4 t1 t2 t3 t4 t5 DB-Transaktionen Einblick in ausgewählte Produkte: SAP R/3 - 23 IS-K Transaktionen in SAP/R3 - 2 ● ● ● IS-K Dialogschritte und Verbuchung werden jeweils als DB-Transaktionen ausgeführt. Die Ausführung der Dialogschritte entspricht einem Enqueue der Aufträge und die Verbuchung ist die Durchführung als eine DB-Transaktion. SAP-Objekte werden für die Dauer der SAP-LUW gesperrt, DB-Objekte nur während der DB-Transaktion, also kurz. Die SAP Transaktionsverwaltung kann daher als ein Zwei-SchedulerStapel aufgefasst werden. SAP- Scheduler Sperrverwaltung für SAP-Objekte DB- Scheduler Sperrverwaltung für DB-Objekte Einblick in ausgewählte Produkte: SAP R/3 - 24 12 12.7 Individuelle Systemkonfiguration (Customizing) Customizing = “Anpassung des ausgelieferten R/3Systems an branchen- und unternehmensspezifische Anforderungen ohne Änderung der Programmlogik” ● Globale Systemeinstellungen festlegen (Konfiguration) ● Auswahl relevanter Funktionen und Prozesse mit Hilfe des Referenzmodells (Business Navigator) ◆ Dokumentation des kompletten Systems: Datenmodell (Data Modeler), Prozesse, Funktionen, Organisationsstrukturen,… ● Schnittstellen zu Fremdsystemen einrichten ◆ Einmalige Datenübernahme (Urladung) ◆ Permanente Schnittstellen (dezentrale Systeme) IS-K Einblick in ausgewählte Produkte: SAP R/3 - 25 Referenzmodell IS-K Einblick in ausgewählte Produkte: SAP R/3 - 26 13 Spezifische Systemerweiterungen ● Ohne Änderung der Anwendungslogik ◆ Customer Exits – Vordefinierte Stellen für eigene Implementierungen ◆ Erweiterung von SAP-Tabellen – Append-Strukturen ◆ Neuentwicklung kundenspezifischer Komponenten – ABAP-Programmierung (Berechtigungskonzept und Namenskonventionen sind zu beachten) ● Mit Änderung der Anwendungslogik ◆ ◆ Änderung der ABAP-Sourcen in der ABAP Development Workbench Prinzipiell möglich, aber nicht ratsam (zusätzlich: SAPBerechtigungskonzept zu beachten) Einblick in ausgewählte Produkte: SAP R/3 - 27 IS-K Literatur ● R. Buck-Emden, J. Galimow: Die Client/Server-Technologie des SAP-Systems R/3. Dritte Auflage, Addison-Wesley, 1996. ● B. Heht: SAP R/3 Basissystem - Systemarchitektur, Administration, Basistechnologie. Markt & Technik-Verlag, 1996. ● L. Will, C. Hienger, F. Straßenburg, R. Himmer: Administration des SAP-Systems R/3. Zweite Auflage, Addison-Wesley, 1997. ● R. Kretschmer, W. Weiss: SAP-R/3-Entwicklung mit ABAP/4. Zweite Auflage, Sybex, 1997. ● SAP White Papers, http://www.sap-ag.de IS-K Einblick in ausgewählte Produkte: SAP R/3 - 28 14