Show TOC Anfang des Inhaltsbereichs

Prozessdokumentation Funktionsbausteine aus Ihrem Coding aufrufen  Dokument im Navigationsbaum lokalisieren

Mit folgender ABAP-Anweisung können Sie einen Funktionsbaustein aus einem ABAP-Programm heraus aufrufen:

CALL FUNCTION <Funktionsbaustein>

     [EXPORTING  f1 = a1.... fn = an]
     [IMPORTING  f1 = a1.... fn = an]
     [CHANGING   f1 = a1.... fn = an]
     [TABLES     f1 = a1....
fn = an]
     [EXCEPTIONS e1 = r1.... en = rn
                 [ERROR_MESSAGE = rE]
                 [OTHERS = ro]].

Der Name des Funktionsbausteins <Funktionsbaustein> wird als Literal angegeben. Die Parameter werden übergegeben, indem die Aktualparameter den Formalparametern in der Liste nach den Optionen EXPORTING, IMPORTING, CHANGING oder TABLES explizit zugewiesen werden.

Hinweis

Die Zuweisungen haben die Form:     <Formalparameter> = <Aktualparameter>
Finden mehrere solche Zuordnungen innerhalb einer Option statt, so werden sie nacheinander durch Leerzeichen (oder mit einem Zeilenumbruch) getrennt, aufgeführt.

 

     Mit der Option EXPORTING geben Sie die Aktualparameter ai an die Formal-Eingabeparameter fi weiter. Die Formalparameter müssen im Funktionsbaustein als Import-Parameter deklariert werden. Es sind beliebige Datentypen der Parameter möglich. Bei angegebenem Bezugsfeld findet eine eine Überprüfung statt.

     Mit der Option IMPORTING geben Sie dagegen die Formalausgabeparameter fi des Funktionsbausteins an die Aktualparameter ai weiter.  Die Formalparameter müssen im Funktionsbaustein als Export-Parameter deklariert werden. Es sind beliebige Datentypen der Parameter möglich.

     Mit der Option CHANGING geben Sie die Aktualparameter ai an die Formalparameter fi weiter. Nach der Verarbeitung des Funktionsbausteins gibt das System die (geänderten) Werte der Formalparameter fi an die Aktualparameter ai zurück. Die Formalparameter müssen im Funktionsbaustein als CHANGING-Parameter deklariert werden. Auch diese Parameter können einen beliebigen Datentyp aufweisen.

     Mit der Option TABLES übertragen Sie interne Tabellen zwischen den Aktual- und den Formalparametern. Dabei erfolgt die Übertragung der internen Tabellen stets über Referenz. Die Parmeter dieser Option müssen auf interne Tabellen verweisen.

     Mit der Option EXCEPTIONS wird die Behandlung von Ausnahmen ermöglicht. Ausnahmen sind als spezielle Parameter dafür vorgesehen, um auf mögliche Fehlerereignisse während der Abarbeitung des Funktionsbausteins zu reagieren. Die Ausführung des Funktionsbausteins wird in solchen Fällen unterbrochen. Wird also konkret eine Ausnahme ei ausgelöst, unterbricht das System die Abarbeitung des Funktionsbausteins und gibt keine Werte vom Funktionsbaustein an das Programm weiter. Das aufrufende Programm nimmt die Ausnahme ei entgegen durch Zuweisung des Wertes ri  an das Systemfeld SY-SUBRC, der als Rückgabecode fungiert. Dabei muss ri als Zahlenliteral angegeben werden. Im aufrufenden Programm kann dann eine weitere Auswertung des Systemfeldes vorgenommen werden.

Durch die Angabe von ERROR_MESSAGE in der EXCEPTION-Liste können Sie die Ausnahmenbehandlung in Funktionsbausteinen beinflussen. Normalerweise sollten Nachrichten in Funktionsbausteinen nur über die Ausnahmebehandlung (mit Hilfe der Anweisungen MESSAGE....RAISING oder mit  RAISE innerhalb des Funktionsbausteins) aufgerufen werden. Mehr dazu erfahren Sie unter Überblick über das Coding von Funktionsbausteinen

Mit ERROR_MESSAGE bewirken Sie, dass das System Nachrichten, die im Funktionsbaustein ausnahmsweise ohne diese explizite Behandlung aufgerufen werden, wie folgt behandelt:

     Nachrichten der Klassen S, I, und W werden ignoriert (bei Hintergrund-verarbeitung im Protokoll vermerkt).

     Nachrichten der Klassen E und A beenden die Ausführung des Funktionsbausteins, als ob die Ausnahme ERROR_MESSAGE ausgelöst wurde (SY-SUBRC wird auf rE gesetzt).

Wenn Sie OTHERS in der EXCEPTION-Liste angeben, können Sie auch alle Ausnahmen berücksichtigen, die nicht ausdrücklich in der Liste aufgeführt werden. Diese fungiert dann als Standardausnahme.

 

Hinweis

Für unterschiedliche Ausnahmen kann die gleiche Zahl ri  verwendet werden, sofern eine weitere Spezifizierung der Ausnahme nicht verlangt wird.

 

Um einen Funktionsbaustein in Ihrem Coding aufzurufen, können Sie die Funktion Muster im ABAP-Editor verwenden. Führen Sie dann die folgenden Schritte aus:

...

       1.      Stellen Sie den Cursor an die Stelle in Ihrem Coding, wo die Funktion aufgerufen werden soll.

       2.      Wählen Sie Muster.

       3.      Auf dem erscheinenden Dialogfenster markieren Sie das Auswahlfeld vor CALL FUNCTION.

Diese Grafik wird im zugehörigen Text erklärt

 

       4.      Geben Sie in dem Eingabefeld den Namen des Funktionsbausteins ein.

Sofern Sie den Namen nicht kennen, können Sie die Werthilfetaste zur Suche benutzen.

       5.      Wählen Sie Weiter.

In Ihrem Coding wird der Funktionsbaustein mit der Schnittstelle eingefügt.

       6.      Pflegen Sie die entsprechenden Parameter und behandeln Sie die Ausnahmen.

Beispiel

In unserem Bespiel wird der der Funktionsbaustein in folgender Form wiedergegeben:

 

Diese Grafik wird im zugehörigen Text erklärt

 

       7.      Sofern Sie Informationen zu dem Funktionsbaustein benötigen, können Sie diese über das Information-Symbol abrufen. Es erscheint das Hilfe-Dialogfenster: Wählen Sie Funktionsbaustein und geben Sie den Namen des Funktionsbausteins ein. Wählen Sie Weiter.
Sie verzweigen in die Schnittstellendefinition des Funktionsbausteins und können von dort aus zu den anderen Elementen des Funktionsbausteins navigieren.

Hinweis

Die nicht als Kommentar gekennzeichneten Parameter müssen auf jeden Fall von Ihrem Programm mit Werten versorgt werden. Sie können dazu Festwerte oder Parameter benutzen.

Die Importschnittstelle ist immer als Kommentar gekennzeichnet. In Ihrem Coding sollten Sie den Stern (*) vor IMPORTING löschen und die für Sie interessanten Daten des Funktionsbausteins an Variablen übergeben.

 

Die Anweisung CALL FUNCTION kann auch mit anderen Parametern verwendet werden, wenn die Funktion in einer Verbuchungs-Task oder auf Remote-Maschinen ablaufen soll.

Wenn ein Funktionsbaustein in einer Verbuchungs-Task läuft, verarbeitet das System den Baustein asynchron. Der Aufruf wird dann nicht sofort durchgeführt. Stattdessen wartet das System bis die nächste Aktualisierung der Datenbank mit dem Befehl COMMIT WORK ausgelöst wird. Einen Funktionsbaustein auf einer Remote-Maschine ablaufen zu lassen, bedeutet, dass eine Funktion eines anderen SAP-Systems oder Fremdsystems aufgerufen wird.

Weitere Informationen darüber, wie Sie Funktionsbausteine aus Ihren Programmen aufrufen, finden Sie unter Funktionsbausteine im ABAP Benutzerhandbuch.

 

 

 

Ende des Inhaltsbereichs