Anfang des Inhaltsbereichs

Hintergrunddokumentation Business Add-Ins (BAdIs)  Dokument im Navigationsbaum lokalisieren

Definition

Ein BadI ist eine objektorientierte Erweiterungsoption und damit die am weitesten entwickelte Erweiterungsart. Hauptmerkmal eines BadI ist, dass es einen Mechanismus bereitstellt, um die Funktionalität einer genau festgelegten Business Function (z.B. ein BAPI) zu ändern, ohne dabei den ausgelieferten Quelltext zu modifizieren. Künftige Upgrades der ursprünglichen Business Function können eingespielt werden, ohne dass die kundenspezifischen Erweiterungen verloren gehen und ohne dass die Änderungen zusammengeführt werden müssen. Die beiden Quelltextzeilen (die ursprüngliche und die vom Kunden angepasste) werden zwar streng getrennt, sind aber dennoch integriert.

Hinweis

Die BAdI-Technik ist nicht auf SAP-Anwendungen begrenzt. Auch in Kundenanwendungen können BadI-Aufrufe integriert werden, die dann wieder von anderen Kundenanwendungen erweitert werden können.

Neuimplementierung der BAdI-Technologie

SAP hat umfassende Erfahrung darin, Kunden verschiedene Möglichkeiten zur Erweiterung des SAP-Standards anzubieten. Das neue BAdI-Konzept nutzt diese Erfahrung. Die neuen BAdIs bringen im Vergleich zu den klassischen BAdIs einige wichtige Verbesserungen wie erhöhte Performance mit sich. Die neuen BAdIs sind in den Kernel integriert und schaltbar.

Die Neuimplementierung der BadIs verfolgt zwei primäre Ziele:

      Durch die Integration von BAdIs in die Programmiersprache ABAP über die neuen Sprachelemente GET BADI und CALL BADI wurde ihre Performance erheblich verbessert.

      Die neuen BAdIs bieten durch neue Eigenschaften wie Kontexte und Filter wesentlich mehr Flexibilität bei der Umsetzung von vorgedachten Erweiterungsoptionen.

Die neuen ABAP-Sprachelemente und ihre Zusätze sorgen dafür, dass diese zusätzlichen Optionen auf einfache Weise in ABAP-Programmen nutzbar sind.

Hinweis

Im Rahmen des Enhancement Frameworks wird unter dem Begriff BAdI immer ein neues BAdI verstanden. Falls explizit auf das vorhergehende BAdI-Konzept Bezug genommen werden soll, so werden diese als klassische BAdIs bezeichnet.

Beispiele

In den folgenden Beispielen finden Sie gängige Probleme, die von BAdIs gelöst werden.

      Standardsoftware – Der Kunde möchte spezifische Änderungen, aber die Modifikationen führen zu Problemen.

Die Lösung ist ein BAdI, eine Erweiterungsart mit genau definiertem Interface; BAdIs sind bei Änderungen weniger störungsanfällig als Quelltext-Plug-Ins.

      Unterschiedliche Länder- und Branchenlösungen erfordern spezielle Lösungen für ein spezielles Problem.

Die Lösung ist, eine BAdI-Definition im Core anzulegen, so dass Benutzer in den verschiedenen Ländern eigene Implementierungen hinzufügen können.

      Sie möchten Teile des Quelltextes hinzufügen und später dynamisch auswählen.

Die Lösung ist, ein internes BAdI anzulegen und die verschiedenen Teile in verschiedenen Implementierungen hinzuzufügen. Die BAdIs und ihre Implementierungen können zu unterschiedlichen Softwareschichten gehören.

      Als SAP-Entwickler haben Sie ein Programm im SAP-Standard und möchten den Kunden die Möglichkeit geben, selbst spezifischen Code hinzuzufügen.

Die Lösung ist, BAdI-Aufrufe in die Standardsoftware mit einzubeziehen. Der Kunde kann die Implementierungen dieser Objekte später hinzufügen

      Sie haben ein Programm, das spezifische Implementierungen für verschiedene Länder erfordert.

Die Lösung sind BAdI-Implementierungen, die länderspezifische Teile enthalten. Diese Implementierungen können später für die entsprechenden Länder überschrieben werden, ohne das Originalprogramm, das die BAdI-Aufrufe enthält, zu ändern.

      Sie möchten ein Registry programmieren.

Sie können die BAdI-Infrastruktur benutzen, um ein leistungsfähiges Registry zu bauen. In diesem Fall wird der Filter als Selektionskriterium für das Registry benutzt.

Weitere Informationen finden Sie unter:

BAdIs - Dokumentation

BAdIs - Migration von klassischen BAdIs

BAdIs - Weitere Informationen

 

 

 

Ende des Inhaltsbereichs