SAP BAdI: Transaktionen und Grundlagen Business Add-Ins finden, anzeigen und implementieren – Was sind BAdIs eigentlich? BAdIs (Business Add-Ins) sind das Herzstück des modernen SAP-Erweiterungskonzepts. Sie ermöglichen es Entwicklern, ABAP-Programme gezielt und vor allem modifikationsfrei zu erweitern. Der große Vorteil: Da es sich um explizite Erweiterungsoptionen handelt, bleiben Ihre individuellen Anpassungen auch bei System-Updates oder Service-Packs erhalten. Dabei spielt es keine Rolle, ob Sie SAP-Standardanwendungen optimieren oder die Add-ons eines Partners an Ihre spezifischen Geschäftsprozesse anpassen möchten.
Inhaltsverzeichnis
- Was sind BAdIs?
- Was ist der Unterschied zwischen klassischen und neuen BAdIs in SAP?
- Was sind die wichtigsten BAdI-Transaktionen in SAP?
- Wie suchen Sie nach klassischen BAdIs?
- Wie implementieren Sie die klassischen BAdI-Programm-Exits?
- Wie suchen Sie nach neuen BAdIs?
- Wie implementieren Sie die neuen BAdI-Programm-Exits – Enhancement Spot?
- Möglichkeit über die Klasse CL_EXITHANDLER
- Häufige Fragen zu SAP BAdIs (FAQ)

Was sind BAdIs?
Kurz erklärt: BAdIs (Business Add-Ins) sind Erweiterungspunkte in SAP. Sie erlauben eigenen Code, ohne den SAP-Standard zu ändern. So bleiben Anpassungen auch nach Updates erhalten.
Genauer gesagt sind SAP BAdIs eine Erweiterungsmöglichkeit in SAP-Systemen. Dadurch können Sie den Standardcode von SAP-Programmen erweitern, ohne den ursprünglichen Code zu ändern. Außerdem ermöglichen sie es Entwicklern, zusätzliche Geschäftslogik in SAP-Anwendungen zu implementieren, um spezifische Anforderungen oder Anpassungen vorzunehmen.
BAdIs sind Punkte im Programmcode, an denen kundenspezifischer Code eingefügt werden kann. Diese Punkte werden als „Einbindungspunkte“ bezeichnet. Sobald ein BAdI-Einbindungspunkt erreicht wird, kann der Entwickler zusätzlichen Code schreiben, um die Standardfunktionalität zu erweitern oder zu überschreiben.
Ein großer Vorteil von BAdIs besteht darin, dass sie eine saubere Trennung zwischen dem Standardcode von SAP und dem kundenspezifischen Code ermöglichen. Dadurch erleichtert sich das Upgrade von SAP-Systemen, denn der kundenspezifische Code in den BAdIs bleibt unberührt und nur der Standardcode wird aktualisiert.
Außerdem können BAdIs in verschiedenen SAP-Anwendungen verwendet werden, wie zum Beispiel in den Modulen SAP ERP, SAP CRM, SAP SCM und SAP BW. Somit bieten sie eine flexible Erweiterungsmöglichkeit für Unternehmen, um ihre SAP-Systeme an ihre spezifischen Geschäftsanforderungen anzupassen. Dabei ist es völlig unabhängig, ob es sich um SAP-Standardprogramme oder Add-ons eines Partners handelt. Deshalb werden BAdIs auch als explizite Erweiterungsoptionen bezeichnet. Im folgenden Beitrag stellen wir Ihnen kurz vor, wie Sie diese Erweiterungen finden und implementieren.
Was ist der Unterschied zwischen klassischen und neuen BAdIs in SAP?
Klassische BAdIs wurden mit der Erweiterungstechnologie in SAP ERP eingeführt. Sie basieren auf dem klassischen Erweiterungskonzept und verwenden Transaktionen wie SE18 und SE19 zur Definition und Implementierung. Ihre Funktionsweise ähnelt zwar der von Benutzer-Exits, ist aber objektorientiert. Einschränkung: Es kann jeweils nur eine aktive Implementierung existieren, was die Flexibilität begrenzt. Neue BAdIs, auch „Enhancement Framework BAdIs“ genannt, wurden mit SAP NetWeaver 7.0 eingeführt. Zudem sind sie vollständig in das sogenannte Enhancement Framework integriert. Neue BAdIs bieten moderne, objektorientierte Konzepte, wie zum Beispiel:
- Mehrere parallele Implementierungen
- Filterabhängige Ausführung
- Nutzung in ABAP Objects (z. B. SE24, SE80)
- Einheitliche Technik für Erweiterungspunkte, Sichten und Methoden
Fazit: Neue BAdIs sind flexibler, besser integrierbar und unterstützen moderne Erweiterungsszenarien in SAP ECC und S/4HANA. Wer langfristig wartbare Erweiterungen entwickeln möchte, sollte neue BAdIs bevorzugen.
Was sind die wichtigsten BAdI-Transaktionen in SAP?
In SAP gibt es eine Reihe von Transaktionen, die für das Arbeiten mit Business Add-Ins (BAdIs) relevant sind. Hier ist eine Übersicht der wichtigsten Transaktionen:
| Transaktion | Typ | Beschreibung |
|---|---|---|
SE18 |
Klassisch & Neu | Definition klassischer BAdIs und Anzeige von Enhancement Spots |
SE19 |
Klassisch | Implementierung klassischer BAdIs |
SE20 |
Neu | Pflege von BAdIs im Enhancement Framework |
SE24 |
Neu | Anlegen und Bearbeiten von Klassen (z. B. für neue BAdIs) |
SE80 |
Beide | Object Navigator – zentrale Entwicklungsumgebung |
SE81 |
Klassisch | Repository-Informationssystem (Veraltete Transaktion – zeigt Strukturhilfe) |
SE84 |
Beide | Repository-Informationssystem (Aktuell – Suche nach BAdIs, Klassen etc.) |
SE37 |
Hilfsmittel | Funktionsbausteine anzeigen – hilfreich bei Exit-Analyse |
SXMB_MONI |
Übergreifend | Monitoring für BAdIs im Kontext von PI/PO (optional, je nach Einsatz) |
Insgesamt bilden diese Transaktionen das technische Rückgrat für die Entwicklung und Implementierung von Erweiterungen über BAdIs – sowohl im klassischen als auch im neuen Enhancement Framework.
Wie suchen Sie nach klassischen BAdIs?
SE84, SE81 oder programmbezogen
Für die Suche nach klassischen BAdIs haben Sie verschiedene Möglichkeiten:
- Freie Suche über die Transaktion SE84 – Auflistung frei selektierter BAdIs
- Anwendungsbezogene Suche über die Transaktion SE81 – Auflistung anwendungsbezogener BAdIs
- Programmbezogene Suche: Suchen Sie im Programm, dem Funktionsbaustein oder in der Methode nach „GET_INSTANCE“. Anschließend navigieren Sie per Doppelklick auf die Referenzvariable zur Variablendefinition. Sie können auch einen Breakpoint bei der Methode GET_INSTANCE setzen und das Programm aufrufen. Danach navigieren Sie per Doppelklick auf das BAdI-Interface zum Interface. Starten Sie den Verwendungsnachweis in Klassen zu CL_EX_. Über die Transaktion SE18 finden Sie in der Regel eine Dokumentation zu der jeweiligen BAdI, welche Sie vor Beginn der Implementierung unbedingt lesen sollten.
Wie implementieren Sie die klassischen BAdI-Programm-Exits?
Schritte zum Anlegen einer BAdI-Implementierung (BAdI-Nutzung)
Um die jeweilige BAdI für ihren Anwendungsfall zu nutzen, gehen Sie wie folgt vor. Lassen Sie sich zunächst über die Transaktion SE18 die Definition der BAdI anzeigen. Über die Transaktion SE18 oder über die Transaktion SE19 wählen Sie Implementierung anlegen. Geben Sie einen Namen für die BAdI Implementierung an. Zur Namensgebung empfehlen wir, einfach für die BAdI Implementierung ein Z vor den BAdI Namen zu setzen. Für die Implementierungsklasse verwenden Sie ZCL+BAdI-Namen. Per Doppelklick auf die Methoden, können Sie jetzt die gewünschten Methoden implementieren. Anschließend aktivieren Sie sowohl die Methode(n) der Implementierungsklasse, als auch die BAdI-Implementierung. Fertig!
Wie suchen Sie nach neuen BAdIs?
Im Grunde funktioniert die neue BAdI-Technik sehr ähnlich wie die klassische BAdI-Technik. Diese Technik ist allerdings deutlich performanter, denn hier werden keine Adapterklassen mehr erstellt. Die Suche nach einer geeigneten BAdI (Enhancement Spot) erfolgt analog der Suche nach klassischen BAdIs. Allerdings suchen wir bei der programmbezogenen Suche nicht nach GET_INSTANCE sondern nach GET_BADI.
Wie implementieren Sie die neuen BAdI-Programm-Exits – Enhancement Spot?
Auch hierzu gibt es verschiedene Möglichkeiten. Lassen Sie sich den gewünschten Enhancement Spot über die Transaktion SE18 anzeigen. Über das Menü Erweiterung Implementieren (F6) legen Sie die Implementierung an. Vergeben Sie einen Namen für die Erweiterungsimplementierung und die BAdI-Implementierung. Pflegen Sie die Attribute für die BAdI-Implementierung. Klicken Sie im Navigationsbereich „implementierende Klasse“ an. Per Doppelklick implementieren Sie die gewünschten Methoden. Anschließend aktivieren Sie die Methode(n) und die Erweiterungsimplementierung. Fertig.
Möglichkeit über die Klasse CL_EXITHANDLER
Beim Aufruf von BAdIs wird die Klasse Klasse CL_EXITHANDLER durchlaufen. Diese Klasse enthält wieder die Methode GET_INSTANCE (s.o.). Mithilfe eines Breakpoints innerhalb der Methode können Sie diese BAdI genauer untersuchen. Verwenden Sie hierfür die Transaktion SE80 oder die Transaktion SE24. Die Variable EXIT_NAME enthält den Namen des aktuellen BAdIs. Sie haben Fragen zum Thema SAP BAdIs? Gerne beraten wir Sie in einem persönlichen Gespräch.
Häufige Fragen zu SAP BAdIs (FAQ)
Was ist ein BAdI in SAP?
Ein BAdI (Business Add-In) ist ein Erweiterungspunkt in SAP. Er erlaubt eigenen Code, ohne den SAP-Standard zu ändern. Anpassungen bleiben so bei Updates erhalten.
Was ist der Unterschied zwischen SE18 und SE19?
Zunächst definieren und analysieren Sie mit SE18 klassische BAdIs. Anschließend legen Sie mit SE19 die Implementierung an. SE18 zeigt zudem die Dokumentation zum BAdI.
Wofür wird die Transaktion SE84 genutzt?
SE84 ist das aktuelle Repository-Informationssystem. Sie finden damit BAdIs, Klassen und weitere Objekte. Es ersetzt die veraltete Transaktion SE81.
Was ist der Unterschied zwischen klassischen und neuen BAdIs?
Klassische BAdIs erlauben nur eine aktive Implementierung. Dagegen erlauben neue BAdIs (Enhancement Framework) mehrere Implementierungen und Filter. Neue BAdIs sind performanter und für S/4HANA empfohlen.
Wie finde ich das passende BAdI im Programm?
Suchen Sie im Coding nach GET_INSTANCE (klassisch) oder GET_BADI (neu). Ein Breakpoint in der Methode hilft bei der Analyse. Die Variable EXIT_NAME zeigt den Namen des BAdIs.





