Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen BAdI: Kundendefinierte Funktionen im Formeleditor  Dokument im Navigationsbaum lokalisieren

Verwendung

Sie haben die Möglichkeit, eigendefinierte Funktionen in die Transformationsbibliothek des Formeleditors zu integrieren. Damit können Sie auch spezielle Funktionen, die in der Transformationsbibliothek nicht enthalten sind, zur häufigen Verwendung verfügbar machen. Dazu steht Ihnen das Business Add-In RSAR_CONNECTOR zur Verfügung. In diesem BAdI definieren Sie in welcher Klasse bzw. Methode eine eigendefinierte Funktion implementiert wurde und mit welchem Eintrag die Funktion im Formula Builder zur Auswahl stehen soll. Die eigentliche Implementierung der Funktion geschieht in der angegebenen Klasse bzw. Methode. Zur Verwendung von Business Add-Ins (BAdIs) lesen Sie auch die ausführliche Dokumentation zu Business Add-Ins.

Vorgehensweise

Implementieren des BAdIs

...

       1.      Zur Implementierung eines BAdIs gehen Sie wie hier beschrieben vor: Implementierung eines Business Add-Ins. Im Folgenden werden die spezifischen Besonderheiten bei der Implementierung des BAdIs RSAR_CONNECTOR beschrieben.

       2.      Rufen Sie die Transaktion SE19 auf. Als Namen des Add-Ins, für das Sie die Implementierung anlegen möchten, geben Sie RSAR_CONNECTOR an.

       3.      Durch Doppelklick auf die Methode (GET) gelangen Sie in den Class-Builder. Hier können Sie Ihr Coding zur Implementierung der Erweiterung erfassen. Sie definieren hierbei mit welchem Eintrag Ihre Funktion und unter welcher Kategorie sie im Formeleditor angezeigt wird. Zudem definieren Sie die Klasse bzw. Methode in der die Implementierung der Funktion vorgenommen wurde. Weitere Informationen finden Sie unter Aufbau der Implementierung einer Funktion und Implementierung einer Kategorie.

Syntax

Im folgenden Beispielcoding wird definiert, dass die Funktion C_TIMESTAMP_TO_DATE unter der Kategorie Custom: Date/Time Functions im Formeleditior angezeigt wird.

METHOD IF_EX_RSAR_CONNECTOR~GET.

Data: l_function type SFBEOPRND.

CASE i_key.

WHEN space.

l_function-descriptn = 'Custom: Date/Time Functions'.

**** Beschreibung der Kategorie ***

l_function-tech_name = 'C_TIME'.

*** Name der Kategorie in Grossbuchstaben ***

APPEND l_function TO c_operands.

*** Coding für die Funktion ***

WHEN 'C_TIME'.

CLEAR l_function.

l_function-tech_name = 'C_TIMESTAMP_TO_DATE'.

l_function-descriptn = 'Convert Timestamp (Len 15) to Date'.

l_function-class = 'ZCL_IM_CUSTOM_FUNCTIONS'.

l_function-method = 'C_TIMESTAMP_TO_DATE'.

APPEND l_function TO c_operands.

ENDCASE.

ENDMETHOD.

Hinweis

Eine Funktion hat keinen Typ, deshalb darf das Feld TYPE der Struktur SFBEOPRND nicht gefüllt werden.

       4.      Sichern und aktivieren Sie Ihre Implementierung.

Namenskonventionen

Der technische Name einer eigendefinierten Funktion

      darf nicht leer sein

      muss eindeutig sein

      muss mit 'C_' beginnen

      darf nur alphanumerische Zeichen enthalten, d.h. 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_' (Kleinbuchstaben, Leerzeichen und Sonderzeichen sind nicht erlaubt)

      darf maximal 61 Zeichen lang sein.

Implementieren der Methoden

Die ABAP-Methoden, die in der Funktionsbeschreibung unter Klasse und Methode angegeben sind (in der Implementierung des BADIs), werden später bei der Pflege und Evaluierung der Formel aufgerufen. Sie definieren welche Verarbeitung durch die Funktion ausgeführt wird. Deshalb müssen zusätzlich zur BAdI-Implementierung in einer weiteren Klasse die kundendefinierten Funktionen als Methoden implementiert werden. Diese Methoden müssen folgende Eigenschaften besitzen:

      Sie müssen als statisch und public deklariert werden.

      Sie dürfen nur Importing-, Exporting- und Returning-Parameter haben, Changing-Parameter sind nicht erlaubt.

      Sie dürfen nur einen Exporting- bzw. Returning-Parameter haben.

      Exporting-Parameter dürfen keinen generischen Typ haben.

In den Methoden kann dann die Funktion mit Hilfe von ABAP-Coding implementiert werden.

Achtung

Es wird nicht überprüft, ob die Klasse bzw. die Methode, die in der BAdI-Implementierung angegeben sind, tatsächlich existieren. Existiert entweder Klasse oder Methode nicht, so kommt es bei der Verwendung der Funktion im Formeleditor zu einem Laufzeitfehler.

Syntax

Beispielcoding einer einfachen kundendefinierten Funktion, bei der ein Zeitstempel der Funktion RS_TBBW_CONVERT_TIMESTAMP übergeben und dort in ein Datum umgewandelt wird:

Method C_TIMESTAMP_TO_DATE.

**** Enter code here *******

  CALL FUNCTION ‘RS_TBBW_CONVERT_TIMESTAMP’

     EXPORTING

         i_timestamp            = i_timestamp

     IMPORTING

         E_data                   = e_dat.

************************

ENDMETHOD.

 

Ergebnis

Die von Ihnen definierten Funktionen stehen Ihnen in der Transformationsbibliothek in der Auswahl Kundendefinierte Funktionen zur Verfügung.

 

Ende des Inhaltsbereichs