SAP BAdi Transaktionen
Business Add-Ins – BAdIs- finden, anzeigen und, implementieren
Was sind BAdIs? – BAdis bieten SAP-Entwicklern die Möglichkeit, ABAP Programme modifikationsfrei zu erweitern. Sie sind Teil des SAP-Erweiterungskonzeptes. Dabei ist es völlig unabhängig, ob es sich um SAP-Standardprogramme oder Add-ons eines Partners handelt. BAdis werden auch als explizite Erweiterungsoptionen bezeichnet. Im folgenden Beitrag stellen wir Ihnen kurz vor, wie Sie diese Erweiterungen finden und implementieren.
Was sind BAdIs?
SAP BAdIs (Business Add-Ins) sind eine Erweiterungsmöglichkeit in SAP-Systemen. BAdIs bieten eine Möglichkeit, den Standardcode von SAP-Programmen zu erweitern, ohne den ursprünglichen Code zu ändern. Sie ermöglichen 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. Wenn 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. Dies erleichtert das Upgrade von SAP-Systemen, da der kundenspezifische Code in den BAdIs unberührt bleibt und nur der Standardcode aktualisiert werden muss.
BAdIs können in verschiedenen SAP-Anwendungen verwendet werden, wie z.B. in den Modulen SAP ERP, SAP CRM, SAP SCM und SAP BW. Sie bieten 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. BAdis werden auch als explizite Erweiterungsoptionen bezeichnet. Im folgenden Beitrag stellen wir Ihnen kurz vor, wie Sie diese Erweiterungen finden und implementieren.
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“. 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. Anschließend per Doppelklick auf das BAdI-Interface zum Interface navigieren. 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 BAdl-Programm-Exits?
Schritte zum Anlegen einer BAdl-Implementierung (BAdl-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, da hier keine Adapterklassen mehr erstellt werden.
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 BAdl-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.). Mit einem Breakpoint 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.