HALLO LIEBES TEAM,
NACH LANGER PAUSE BIN ICH WIEDER DABEI. HAB GERADE EINEN ERWEITERUNGSKURS UEBER ABAP-PROGRAMMIERUNG DURCH UND ICH KAPIERE NOCH NICHT RICHTIG DIE VERBINDUNG CALL CUSTOMER-FUNCTION UND DEN USER EXITS. WIE ICH DEN USER EXIT KREIRE WEIS ICH. AUFRUF DURCH CALL CUSTOMER-FUNCTION..ABER WIE? VERSTEHE HIER DIE VERBINDUNG DER BEIDEN NOCH NICHT GANZ. GIBT ES VIELLEICHT EIN BEISPIELPROGRAMM WO ICH EINE CALL CUSTOMER-FUNCTION DURCHFORSTEN KANN? ODER VIELLEICHT KAPIER ICHS JA GLEICH MIT EINER ANTWORT HIER. HAB BIS JETZT NUR DEN GRUNDSTOFF DURCH IN DER ABAP-PROGRAMMIERUNG, SORRY.
DANKE FUER EURE HILFE!
Zum Thema: User-Exits und Customer-Function gehören grundsätzlich zusammen. Ein CALL CUSTOMER-FUNCTION ruft imemr einen sog. USER-EXIT auf. Wobei sich der Name des User-Exits wie folgt zusammensetzt: EXIT_<Programname>_<Funktionsname der CF>.
Im SAP Standard sind die USER-EXITs im SAP Namensraum und die zugehörigen Includes mit dem Coding im Kundennamensraum.
Der große Nachteil von den User-Exits ist, dass sie nur einmal impelementiert werden können und so alle Entwicklungen immer im gleichen Include landen. Das wird auf die Dauer ziemlich unübersichtlich, außer man überlegt sich eine gute Variante um den Code einigermaßen zu strukturieren und aufzuteilen. Aber sind wir mal ehrlich: Welcher gute Entwickler macht das schon
Die bessere Wahl sind die neuen BADIs von SAP. Diese können (sofern sie gut implementiert wurden) auch mehrfach verwendet werden. Das heißt man legt pro neuer Funktion die mit dem BADI in den Ablauf eingreifen soll, eine eigene Implementierung an. Das BADI-Konzept fußt dabei auf Klassen und Interfaces und die können ja per Definition beliebig oft instanziert (anlegen einer "Kopie" im Speicher) und auch abgeleitet (teilw. Wiederverwendung von Code) werden.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
nun zur Nutzung von BADIS vor der Nutzung von User Exits kann ich auch nur empfehlen - aber beachten muss man dabei folgendes
- ob ein BADI mehrfach verwendbar und filterfähig ist - ist in der Definition zu erkennen - wenn nicht mehrfach nutzbar - dann hat man das vielleicht das gleiche Problem wie bei den USerexits
- ganz wichtig ist - die Reihenfolge der Aufrufe der einzelnen Implementierungen ist nicht garantiert (sagt sogar SAP und verweist darauf) - daher kann man auf bestimmte Datenzustände - die vielleicht in einer anderen Implementierung erzeugt werden etc. - nicht bauen - wenn man ein BADI implementiert - daher muss man hier genau schauen wie man das ganze implementiert - damit man sein Ergebnis erzielt