Business Add-Ins (BAdIs) suchen und finden: Ein Beispiel
Häufig steht ein Entwickler vor der Aufgabe, bestimmte Anpassungen für die Verarbeitung einer Transaktion vorzunehmen. Schnell ist meistens klar, dass dafür ein Business Add-In (BAdI) genutzt werden kann. Aber was ist, wenn gerade kein BAdI bekannt ist und der SAP Guru des Unternehmens, der alle BAdIS auswendig kennt und somit der erste Ansprechpartner ist, ausgerechnet jetzt Urlaub macht, obwohl er gefühlt in den letzten 5 Jahren 24 Stunden pro Tag gearbeitet hat. Genau dann hilft dieser kleine Trick, mit dem BAdIs einer Transaktion ganz einfach gefunden werden können.
Die Klasse der BAdIs
Die Klasse CL_EXITHANDLER ist eine Klasse für Exit-Techniken, also auch BAdIs (die ja schließlich die Funktionsbaustein-Exits abgelöst haben). Immer wenn ein BAdI durchlaufen wird, wird diese Klasse aufgerufen. Daher ist hier eine gute Einstiegsmöglichkeit um BAdIs zu finden.
Die Klasse enthält die Methode “GET_INSTANCE”, welche eine Referenz auf eine generierte EXIT-Klasse zurückgibt. Genau diese Stelle hilft bei unserem Problem weiter. Wenn wir in dieser Methode z.B. bei der CASE-Anweisung einen Breakpoint setzen, öffnet sich der Debugger immer, wenn gerade ein BAdI durchlaufen werden soll.
Wenn sich der Debugger öffnet, muss die Variable EXIT_NAME bei den Variablen hinzugefügt werden. Diese enthält den Name des aktuellen BAdIs. Mittels F8 kann man so alle BAdIs einer Transaktion finden.
Definition und Implementierung
Die Definition der BAdIs kann anhand der Bezeichnung aus dem Datenfeld EXIT_NAME dann in der Transaktion SE18 betrachtet werden. Sollte es der gewünschte BAdI sein, so erfolgt die Implementierung über die Transaktion SE19.
Alle Schritte hier noch einmal kurz Zusammengefasst:
- Klasse CL_EXITHANDLER in der SE24 aufrufen
- Methode GET_INSTANCE auswählen
- Break-Point bei der CASE-Anweisung setzen
- Gewünschte Transaktion aufrufen
- Im Debugger das Feld EXIT_NAME bei den Variablen aufnehmen
- BAdI Namen merken und in der SE18 die Definition ansehen
- Implementierung des BAdIs über SE19
Wie Sie sehen, ist das ein einfacher Trick um BAdIs zu finden. Sie können die Transaktion ganz normal verwenden und sehen dann, ob an einer gewünschten Stelle ein BAdI existiert, den Sie verwenden können. War dieser Trick hilfreich für Sie? Ich freue mich auf Ihre Kommentare.