Die Programmiersprache ABAP/ABAP Objects hat sich aufgrund der großen Verbreitung von SAP R/3 annähernd zu einem Standard für Business-Anwendungen entwickelt. Durch die Deregulierung auf dem Energiesektor hat sich die IT in den Versorgungsunternehmen grundlegend gewandelt.
SAP-Praxishandbuch ABAP - Teil 2: Performance, Erweiterungen und Transportwesen
Im SAP Praxishandbuch ABAP, Teil 1 werden die notwendigen Kenntnisse im Umgang mit dem Data Dictionary und dem ABAP Debugger erläutert. Anhand praxisnaher Anforderungen finden Sie dort Methoden und Verfahren der ABAP-Entwicklung beschrieben, die in der Praxis oft eingesetzt werden.
Dieser zweite Teil setzt sich mit den Themen Performance von Programmen, Anpassungen des SAP-Standards, Berechtigungen, Fehleranalyse und -korrekturen sowie mit dem SAP-Transportwesen und dem SAP Service Marketplace auseinander.
Anforderungen und die Konzeption einer Lösung
Am Anfang jeder Entwicklung steht ein Kundenwunsch. Sollten Sie bereits Teil 1 des Praxishandbuchs ABAP gelesen haben, so bekamen Sie dort im ersten Kapitel eine konkrete Anforderung aus der Praxis vorgestellt, und Ihnen wurde aufgezeigt, wie aus dem Kundenwunsch ein Konzept zur Realisierung der Anforderung in SAP entsteht.
Eine Anforderung aus der Praxis
In Gesprächen zwischen dem Energieversorger und dem IT-Dienstleister ergeben sich folgende Anforderungen:
- Die Vertragskonten des Kunden sollen als Kontoklasse die neue Kontoklasse »First Customer« erhalten.
- Ein Geschäftspartner mit einem Vertragskonto der Kontoklasse »First Customer« soll für die Kundenbetreuer in der Geschäftspartner-Verwaltung kenntlich gemacht werden.
- Im SAP Customer Interaction Center (CIC) soll der »First Customer« durch einen besonderen Eintrag in den Geschäftspartner-Kontakten kenntlich gemacht werden.
- Im Vertrag des Kunden sollen sogenannte Rahmenvertragsdaten des »First Customers« zugeordnet und kenntlich gemacht werden. Ein Rahmenvertrag besitzt die Attribute: »Rahmenvertragsnummer«, »Bezeichnung des Rahmenvertrags« und »Kundenbetreuer«. Die Daten zur Verwaltung von Rahmenverträgen sollen aus einer lokalen Datei in das SAP-System hochgeladen werden.
- Eine Umstellung der Ableseeinheit von »First Customer«-Kunden soll stichtagbezogen durchgeführt werden.
- Durch die Änderung der Ableseeinheit ändern sich die Ableseportion (also das Ablesegebiet) und damit auch der Abschlagsplan für die Energiekosten der Kunden. Ein Programm soll die stichtagbezogene Umstellung der Abschlagspläne von »First Customer«-Kunden ermöglichen.
Was bisher erreicht wurde
Grundlage der Entwicklungsarbeiten war das Datenmodell, das die Verwaltung von Kundendaten im Umfeld des Projektes »First Customer« erläutert.
Was noch umgesetzt werden muss
Wie aus den Anforderungen hervorgeht, ist die Kennzeichnung von »First Customer«-Kunden in verschiedenen SAP-Standard-Anwendungen notwendig.
- Zur Kennzeichnung im Vertragskonto ist eine neue Kontoklasse einzustellen.
- Zur Darstellung eines »First Customer«-Kunden in der Geschäftspartner-Verwaltung sind zusätzliche Ausgabefelder im Bildschirm für den Geschäftspartner einzubauen.
- Für die Zuordnung von Rahmenverträgen zu den Verträgen des Geschäftspartners sind zusätzliche Ein-und Ausgabefelder in der SAP-Vertragsverwaltung zu entwickeln.
Der Einfluss des Entwicklers auf die Performance
Mit dem Begriff Performance bezeichnet der Informatiker die Leistung eines IT-Systems. Dieses setzt sich aus verschiedenen Komponenten zusammen: Hardware (Server und Client), Netzwerke (Inter- und Intranet mit aktiven und passiven Komponenten), Middleware, Datenbanken und Anwendungen. Um die von Anwendern geforderte Performance zu erbringen, müssen IT-Dienstleister und -abteilungen alle Komponenten berücksichtigen.
Die Aufgabe eines IT-Dienstleisters besteht einerseits darin, ein Performance-Monitoring für die laufende produktive Umgebung durchzuführen. In größeren SAP-Installationen rechnet sich der Einsatz einer »Taskforce« (bestehend aus einem Mitarbeiter des SAP-Basisteams und einem SAP-Entwickler), die sich ausschließlich um die Systemperformance kümmert.
Unnötig lange Programmlaufzeiten kosten – aufgrund der hohen CPU-Belastung – viel Energie, aber auch Geduld beim Anwender. In meiner Praxis habe ich zahlreiche Programme gesehen, die dringend einer Performance-Optimierung bedurft hätten.
Performance-Analyse
In SAP-Systemen gibt es verschiedene Hilfsmittel zur Performance-Analyse, u.a.
- Performance-Trace mit der Transaktion ST05,
- ABAP-Laufzeitanalyse mit der Transaktion SAT oder
- Single-Transaction-Analyse mit der Transaktion ST12.
Tabellen-Indizes und Performance
Jede Tabelle hat implizit einen Index auf die primären Schlüsselfelder. Für die Tabelle FKKVKP (Vertragskonten) bedeutet dies, dass bereits bei deren Anlegen ein Index über die Felder Mandant, Vertragskontonummer und Geschäftspartnernummer vom Datenbanksystem erstellt wird (siehe Abbildung 2.12).
In vielen Anwendungen werden Vertragskonten jedoch über andere als die Primärschlüsselfelder selektiert, z.B. über den »abweichenden Zahler«. Um auch bei solchen Selektionen eine gute Performance zu erhalten, werden für diese Felder eigene Tabellenindizes angelegt.
Entwicklung und Performance
Nicht allein der Index ist entscheidend für eine performante Selektion von Daten aus der Datenbank. Auch durch die Programmiertechnik wird die Performance erheblich beeinflusst. Um diese Effekte zu erläutern, wurde das Programm ZCU_ABAP_PERFORMANCE um zwei Varianten zur Selektion von Daten erweitert.
Änderungen und Erweiterungen am SAP-Standard
SAP-Systeme werden in sehr vielen großen und mittleren Unternehmen eingesetzt. Es wäre vermessen, zu fordern, dass SAP-Anwendungen den Ansprüchen aller Unternehmen gleichermaßen genügen sollen. Daher muss den Nutzern die Möglichkeit gegeben werden, ihre Unternehmensorganisation optimal in SAP-Anwendungen abzubilden.
Das hat auch die SAP erkannt und stellt ihren Kunden eine Reihe von Tools zur Anpassung des SAP-Standards zur Verfügung:
- Modifikationen,
- User-Exits,
- Ereignisfunktionsbausteine im Vertragskontokorrent,
- spezielle Transaktionen zur Anpassung des SAP-Standards (z.B. BUPT und BUCO),
- Erweiterung der Dienste zum Objekt,
- Erweiterungen im Customer Interaction Center mithilfe von BOR-Objekten,
- Enhancement-Framework,
- Customer Includes für die Erweiterung von Tabellenstrukturen,
- Änderung von SAP-Standard-Suchhilfen.
Zugriffsschutz und Berechtigungen im SAP
SAP-Systeme besitzen eine sehr umfangreiche und ausgefeilte Benutzer- und Berechtigungsverwaltung. Kunden haben mitunter verschiedene Berechtigungskonzepte, die Anforderungen an ABAP-Entwicklungen beinhalten sollten.
Das SAP-Berechtigungskonzept
Das SAP-Berechtigungsmanagement unterscheidet zwischen einem
- Benutzerzugriffsmanagement (User Access Management), dieses Konzept beinhaltet das Anlegen, Ändern und Löschen von Usern und deren Zugriffe auf ein SAP-System, und einem
- Benutzerkontenmanagement (User Acount Management), mit den Benutzerkonten wird die Verwaltung von User-Zugriffen (Anlegen, Löschen, Lesen und Ändern) auf bestimmte Transaktionen, Programme, Datenbank-Tabellen und Datenbank-Feldern ermöglicht.
Bei dem Benutzerzugriffsmanagement geht es um die Verwaltung von User-ID, Passwörtern, die Zuordnung zu kundenspezifischen Organisationseinheiten oder die zeitliche Dauer eines Zugriffs.
Das SAP-Benutzerkontenmanagement ist streng hierarchisch aufgebaut (siehe Abbildung 4.1).
- Berechtigungsobjekte werden in Berechtigungen zusammengefasst.
- Berechtigungen werden in Berechtigungsprofilen zusammengefasst.
- Berechtigungsprofile werden Berechtigungsrollen zugeordnet.
- Den Usern werden definierte Rollen zugeordnet.
Customizing im SAP
Mithilfe des Customizings werden die meisten kundenspezifischen Einstellungen im SAP-System vorgenommen. Im Regelfall obliegt diese Aufgabe dem Modul-Verantwortlichen und nicht dem ABAP-Entwickler.
Alle Customizing-Aktivitäten werden in den Customizing-Tabellen gespeichert. In einem SAP-System gibt es mitunter über 30.000 dieser Tabellen (DB-Tabelle DD02L mit dem Suchkriterium CONTFLAG = »C«).
Im SAP-System wird unterschieden zwischen:
- mandantenunabhängigem Customizing, d.h. Einstellungen gelten für alle SAP-Mandanten des SAP-Systems,
- mandantenabhängigem Customizing, d.h. Einstellungen gelten nur für den SAP-Mandanten, in dem sie vorgenommen wurden.
Technisch gesehen, verbirgt sich hinter dem Customizing das Hinzufügen, Löschen oder Ändern von Datensätzen in Customizing-Tabellen. Die Datenänderungen werden über Tabellenpflegetransaktionen oder Tabellenpflegeviews durchgeführt.
Die Transaktion SPRO
Kennt man die entsprechende Customizing-Tabelle oder den Customizing-View, so könnten die erforderlichen Einträge mit der Transaktion SM30 (Tabellenpflege) vorgenommen werden. Die Transaktion SPRO (Customizing - Projektbearbeitung) hat gegenüber der SM30 den großen Vorteil, dass der Anwender nicht Gefahr läuft, wichtige Customizing-Einstellungen zu versäumen, da er menügeführt unter bestimmten Sachgebieten und Themen die erforderlichen Konfigurationen auffinden und vornehmen kann.
Laufende Einstellungen
Bei den sogenannten laufenden Einstellungen handelt es sich im SAP-System um eine Eigenschaften von Customizing-Tabellen. Eigentlich sollten einmal eingestellte Customizing-Einstellungen nicht änderbar sein.
Das SAP-Transportwesen
Das SAP-Basis-Know-how für einen ABAP-Entwickler beschränkt sich in erster Linie auf das Transportwesen. SAP-Systemlandschaften bestehen im Regelfall aus einem Entwicklungssystem und weiteren Folgesystemen, wie etwa Test- und Projektsystemen sowie Produktivsystemen.
Um den steigenden Anforderungen an Rechnerleistung gerecht zu werden, ist es möglich, dass ein logisches SAP-System von mehreren physikalischen Rechnersystemen bedient wird. Damit kann eine SAP-(Hardware-)Systemlandschaft beliebig komplex werden (siehe Abbildung 6.1).
Um verschiedene Unternehmen bzw. Unternehmensteile mit einem SAP-System versorgen zu können, wurde das Mandantenkonzept entwickelt. Generell sind alle Entwicklungsobjekte (Programme, Funktionsbausteine, Klassen etc.) in allen Mandanten identisch, also mandantenübergreifend.
Customizing-Einstellungen hingegen können mandantenübergreifend, aber auch mandantenabhängig sein.
Beseitigung von Programmfehlern
Eine Fehlersuche in SAP-Systemen ist mitunter aufwendig, und die Fehlerursachen können sehr komplex sein. Häufig sind letztere aufgrund eines unzureichenden Error-Handlings versteckt und bedürfen einer eingehenden Analyse des Programmablaufes.
Programmabbruch-Beschreibungen (sogenannte Dump-Protokolle) zeigen zwar die Stelle des Programmabbruchs, aber oft nicht dessen Ursache.
Fehlersuche im ABAP-Coding
Werden Fehler im SAP-System beobachtet, z.B. bei einem Programmabbruch (Dump) im Rahmen der Verwendung einer SAP-Standardtransaktion, so ist ein Fehler im SAP-Coding naheliegend. Aber nicht immer ist alles so wie es scheint! Oft sind die Grenzen zwischen dem SAP-Coding und Kundenerweiterungen fließend.
Im vorliegenden Fall bricht die Transaktion ES21 (Vertrag ändern) beim Aufruf eines Vertrages ab. Der Programmabbruch zeigt folgende Fehlermeldung und die betroffene Quelltextstelle (siehe Abbildung 7.1).
Der SAP Service Marketplace
Für eine Anmeldung am SAP Service Marketplace benötigen Sie eine Zugangskennung und die erforderlichen Berechtigungen. Zugänge zum SAP Service Marketplace sind abhängig vom Inhaber des SAP-Systems und dessen SAP-Kundennummer.
Der Betreiber des SAP-Systems hat im Regelfall eine verantwortliche Organisationseinheit, die für die Vergabe von Zugängen und die Erteilung von Berechtigungen im SAP-Marketplace verantwortlich ist.
Oben rechts auf der Seite kann sich der Anwender über den Link Log in (siehe Abbildung 8.1) mit seiner Zugangskennung und seinem Passwort am SAP Marketplace anmelden.
Nachwort
Ich war redlich bemüht, diesen Grundsatz beim Schreiben des Praxishandbuches zu berücksichtigen, indem ich mich in langen Entscheidungsprozessen auf wesentliche Aspekte konzentriert habe. Zum Schluss war ich allerdings selbst vom Umfang des SAP Praxishandbuchs ABAP überrascht.
Doch wie ich einleitend bemerkte, werden heute von einem ABAP-Entwickler immer tiefer gehende Kenntnisse erwartet. Und diese Tatsache schlägt sich im Themenumfang dieses Handbuchs nieder.