Anfang des InhaltsbereichsHintergrunddokumentation Aufruf eines Add-Ins im Anwendungsprogramm Dokument im Navigationsbaum lokalisieren

Bei der Definition eines Business Add-Ins wird von der Erweiterungsverwaltung eine Klasse generiert, die das Interface implementiert. Der Anwendungsentwickler erzeugt im Anwendungsprogramm über eine Factory-Methode eine Instanz dieser Adapterklasse und ruft bei Bedarf die entsprechende Methode auf.

In der von der Add-In-Verwaltung generierten Methode der Adapterklasse wird entschieden, ob eine oder mehrere aktive Implementierungen aufgerufen werden müssen. Die Implementierungen werden gegebenenfalls ausgeführt. Das Anwendungsprogramm sorgt nur für den Aufruf der Methoden der Adapterklasse. Dem Anwendungsprogramm ist unbekannt, welche Implementierungen aufgerufen werden.

Beispiel:

Nachdem Sie ein Business Add-In zur Konvertierung eines Wortes angelegt haben, würde der Aufruf des Business Add-Ins im ABAP-Coding folgendermaßen programmiert:

1 Report businessaddin.
2 class cl_exithandler definition load.           "Vorwärtsdeklaration
3 data exit type ref to if_ex_businessaddin.      "Interfacereferenz
4 data wort(15) type c value 'Business Add-in'.   "zu ändernder String

5 start-of-selection.
6   call method cl_exithandler=>get_instance      "Aufruf der Factory-
7         changing instance = exit.               "Methode
8   write:/'Bitte hier klicken'.

9 at line-selection.
10   write:/ 'Original-Wort: ',wort.

11   call method exit->methode                    "Aufruf des Add-Ins
12         changing parameter = wort.

13   write:/ 'Geändertes Wort: ',wort.

Um statische Methoden aufrufen zu können, muß in ABAP Objects die entsprechende Klasse deklariert werden. Daher ist die Anweisung class … definition load für die Factory-Klasse notwendig.

Für den Aufruf der Methode ist eine Variable für die Objektreferenz notwendig. Diese wird mit data angelegt und auf das Interface typisiert.

Bei der Initialisierung in den Zeilen 6 und 7 erzeugt der Anwendungsentwickler über die Factory-Methode eine Instanz der Adapterklasse. Zum gegebenen Zeitpunkt werden dann die Instanzmethoden aufgerufen.

Hinweise zur Verwendung

Die über die Factory-Methode erzeugte Instanz sollte so global wie möglich deklariert sein oder aber immer als Parameter übergeben werden, damit der Initialisierungsprozeß so selten wie möglich - anzustreben ist genau einmal - durchlaufen werden muß. Auf keinen Fall sollte die Instanz nach ihrer Erzeugung sofort verworfen werden oder der Instantiierungsprozeß in einer Schleife immer wieder vollzogen werden.

Hinweis

Innerhalb der Instanz der Adapterklasse werden erforderliche Datenbankzugriffe lokal gepuffert, erfolgen somit nur einmal. Eine immer neu erfolgende Initialisierung aber macht den Puffer wirkungslos und verschlechtert die Performance dramatisch.

Durch die lokale Pufferung kann man Business-Add-In-Methoden aufrufen, ohne gravierende Performance-Einbußen befürchten zu müssen, auch wenn es keine aktiven Implementierungen gibt.

Insbesondere ist es unnötig, sich über einen Funktionsbaustein darüber Gewißheit zu verschaffen, ob es überhaupt aktive Implementierungen gibt.

Ist die Definition des Business Add-Ins filterabhängig, so ist ebenfalls eine einzige Instanz völlig hinreichend.

Sparen sollten Sie sich die Initialisierung aber keinesfalls. Auch wenn Sie statische Methoden der implementierenden Klasse der Business-Add-In-Implementierung ohne Instanz aufrufen könnten, so verhindern Sie auf diese Weise die Performance-Vermessung der Business Add-Ins sowie die Möglichkeit der mehrfachen Nutzbarkeit. Wenn im Interface die Methodenart irgendwann vielleicht einmal von statisch auf instantiierbar geändert werden sollte, so muß im Coding sehr viel geändert werden. Auch die Nutzung von zur Verfügung gestelltem Default-Coding ist dann nicht mehr möglich.

Ende des Inhaltsbereichs