Den ERP-Kern ohne Eingriffe erweitern, Teil 1

Feature | 12. Dezember 2007 von Dr. Andreas Schaffry 0

Keine Frage: Unternehmen brauchen eine ERP-Software, die sich kontinuierlich und dem eigenen Innovationstempo folgend weiterentwickeln lässt. SAP erfüllt diese Anforderungen mit SAP ERP 6.0. Die ERP-Lösung basiert auf SAP NetWeaver und bietet SAP-Kunden ein langfristig stabiles ERP-Kernsystem in das alle SAP-Branchenlösungen integriert sind.

Neue Funktionalität liefert SAP regelmäßig über optionale Erweiterungspakete aus, die so genannten Enhancement Packages. Ziel ist, das ERP-Kernsystem weitgehend modifikationsfrei und – wo immer möglich – ohne Eingriffe in das Coding erweitern zu können. Die technischen Voraussetzungen hierfür hat SAP mit dem Enhancement Framework und dem Switch Framework geschaffen. Beide Technologien sind in die ABAP Workbench von SAP NetWeaver integriert.

Erweiterungstechnologien gebündelt

Auch bisher konnten SAP-Kunden die Kernfunktionen ihrer ERP-Installationen um neue oder branchenspezifische Funktionen erweitern. SAP stellte hierzu mit User Exits, Customer Exits, Business Transaction Events (BTE), Modifikationsassistent oder Business Add-Ins (BAdIs) verschiedene Modifikations- und Erweiterungskonzepte bereit. Doch die einzelnen Konzepte bedienten sich unterschiedlicher Techniken und Implementierungswerkzeuge. Zudem kam es bei Upgrades der ERP-Kerninstallation nicht selten zu Konflikten mit den Erweiterungen und Modifikationen.

Das SAP Enhancement Framework fasst nun die verschiedenen Erweiterungsmöglichkeiten unter einem Dach zusammen: ABAP-Quelltexte, Funktionsbausteine und globale Klassen sowie Interfaces und die so genannten Kernel-BAdIs, eine Weiterentwicklung der klassischen BAdI-Technik.

SAP-Lösungen wie SAP ERP lassen sich in vielen Bereichen erweitern oder modifizieren. Mit Quelltext-Plugins werden beispielsweise Quelltext-Stellen oder Quelltext-Abschnitte in ABAP-Programmen ausgebaut oder durch diese ersetzt. Parameterschnittstellen von Funktionsbausteinen sowie Attribute und Parameterschnittstellen von globalen Klassen werden durch neue Parameter und/oder Attribute verlängert.

Methoden wiederum lassen sich durch Pre-Exits und Post-Exits erweitern oder mit Overwrite-Exits überschreiben. Ebenfalls erweiterbar sind Benutzeroberflächen, die auf Web Dynpro ABAP basieren, etwa in Form von User-Interface-Elementen, neuen Attributen oder neuen Methoden.

Ergänzungen nur an Ankerpunkten

So vielfältig die Möglichkeiten auch sind: Erweiterungen können nicht an jeder beliebigen Stelle eines Quelltextes oder einer Methode eingefügt werden, sondern nur an fest definierten Stellen (Enhancement Options). Diese bilden die Ankerpunkte, an denen neuer Quelltext oder neue Attribute eingeklinkt werden. Enhancement Options sind entweder explizit gekennzeichnet oder implizit vorhanden.

Als implizite Enhancement Options werden standardmäßige Erweiterungsoptionen innerhalb einer ABAP-Programmierung bezeichnet, etwa am Beginn und am Ende von Includes, von Methods, Funktionsbausteinen oder Formroutinen sowie am Ende von Strukturen. Hiermit lassen sich die Standardfunktionalitäten von SAP ERP um kundenspezifische Felder erweitern.
Eine Fluggesellschaft beispielsweise erweitert auf diese Weise Standard-Felder – Name, Vorname, Adressdaten – um Feldinhalte, die zusätzliche Informationen anzeigen wie Buchungshäufigkeit eines Kunden, Abflug- und Ankunftszeit sowie Start- und Zielflughafen. Die zulässigen Stellen für implizite Erweiterungen lassen sich über den ABAP Editor der ABAP Workbench einblenden.

Explizite Erweiterungsoptionen dagegen sind ausschließlich an speziell “vorgedachten” und vorbereiteten Stellen vorhanden. Die SAP-Anwendungsentwickler haben diese Stellen eigens mit dem ABAP Editor definiert. Die expliziten Erweiterungsoptionen und die zugehörigen Passagen im Quellcode, die Enhancement Sections, lassen sich praktisch an jeder beliebigen Stelle im Quellcode festlegen.

Die Enhancement Sections legen die Codestrecken fest, die üblicherweise von den Industrielösungen für ihre jeweiligen Anforderungen anzupassen sind. Innerhalb eines ABAP-Programms werden explizite Erweiterungsoptionen in Form von Enhancement Points und Enhancement Sections über jeweils eigene ABAP-Anweisungen markiert. Um Enhancement Points und Enhancement Sections zu realisieren, muss der Enhancement Mode im ABAP Editor verwendet werden.

Zum anderen lassen sich auf diese Weise BAdIs einbinden. Diese sind seit dem Releasestand 7.0 des SAP NetWeaver Application Server ABAP ebenfalls Teil des Enhancement Framework und stellen dort explizite Erweiterungsoptionen dar. BAdIs liefern stabile Schnittstellen für die modifikationsfreie funktionale Erweiterung von ABAP-Programmen und repräsentieren eine der wichtigsten Technologien, um SAP-Software an spezifische Anforderungen anzupassen.

Über definierte Schnittstellen lassen sich kundenspezifische Programmteile in den SAP-Standard einbetten. Durch die Integration von BAdIs in das Enhancement Framework über die neuen Sprachelemente GET BADI und CALL BADI wurde ihre Performance erheblich verbessert.

Zusammenfassen, was zusammengehört

Erweiterungen am SAP-Standard sind in der Regel komplex und wirken sich auf viele Bereiche in der Lösung aus. Wenn SAP ERP um neue Funktionalität erweitert werden soll, muss man sich vorab im Klaren sein, wo und welche Erweiterungen vorgenommen werden sollen. Viele der hierfür grundlegenden Konstrukte, wie etwa Enhancement Point oder Enhancement Section, werden von SAP bereitgestellt und von einer nachgelagerten Schicht ausprogrammiert.

Bevor ein Enhancement Point, eine Enhancement Section oder ein neues BAdI definiert wird, muss zuvor ein Enhancement Spot angelegt worden sein. Enhancement Spots bieten eine komfortable Möglichkeit, explizite Erweiterungsoptionen wie explizite Enhancement Points, Enhancement Sections und Kernel-BAdIs wie in einem Container zusammenzufassen und zu verwalten. Zugleich geben Enhancement Spots die Strukturen für eine Erweiterung vor, denn innerhalb der Container werden dann die Erweiterungen, etwa in Form eines BAdI, so entwickelt wie sie später im ERP-System wirksam sein sollen.

Es gibt einfache und zusammengesetzte Enhancement Spots. Ein einfacher Erweiterungspot fasst immer genau eine Erweiterungstechnologie – Quelltext-Plug-Ins in Form von Enhancement Points und Enhancement Sections oder BAdIs – zusammen. Zusammengesetzte Enhancement Spots wiederum binden einfache Enhancement Spots sowie andere zusammengesetzte Enhancement Spots zusammen.

Um Erweiterungsspots anzulegen, muss der Object Navigator in der ABAP Workbench aufgerufen werden. Implizite Erweiterungsoptionen benötigen im Gegensatz zu den expliziten keine Enhancement Spots, da sie bereits standardmäßig vorhanden sind und nicht eigens definiert werden müssen.

Alle vorhandenen Erweiterungsmöglichkeiten und Erweiterungen sind übersichtlich im Erweiterungs-Infosystem des SAP Enhancement Frameworks dargestellt, einem Bestandteil des Object Navigator der ABAP Workbench. Das erlaubt es Anwendern, Erweiterungen rasch zu finden und in ihrem Umfeld zu navigieren. Angelegt und verwaltet werden Erweiterungen im Rahmen des Enhancement Framework mit dem Enhancement Builder, ebenfalls ein Werkzeug der ABAP Workbench.

Tags: ,

Leave a Reply