- 15. Februar 2015

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.

Wir sind Ihr Dienstleister für die Entwicklung, die Ihr SAP noch besser macht.
Schon in der Ideenphase unterstützen wir Sie bei der Definition der Anforderungen. Die Konzeption und Umsetzung erfolgt durch unsere SAP Experten.

Sie erhalten die Komplettlösung – Ihr Projekt machen wir zu unserem Projekt. Mit professionellem Projektmanagement sicheren wir den Projekterfolg.

Gerne spreche ich mit Ihnen über Ihre Ausgangslage und zeige Lösungsmöglichkeiten auf. Auf Wunsch unterbreite ich Ihnen im Anschluss ein unverbindliches Angebot.

Kontaktieren Sie mich: Telefon 0211.9462 8572-16 oder per E-Mail info@erlebe-software.de
Ingo Biermann, Fachbereichsleiter

 

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.

Name des aktuellen BAdIs

Name des aktuellen BAdIs

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.


SHARE


Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.