Anfang des Inhaltsbereichs

Funktionsdokumentation Funktionsbausteine aus Ihrem Coding aufrufen  Dokument im Navigationsbaum lokalisieren

Verwendung

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

CALL FUNCTION <function module name>

     [EXPORTING  f1 = a1.... fn = an]

     [IMPORTING  f1 = a1.... fn = an]

     [CHANGING   f1 = a1.... fn = an]

     [TABLES     t1 = itab1.... tn = itabn]

     [EXCEPTIONS e1 = r1.... en = rn]

                 [ERROR_MESSAGE = rE]

                 [OTHERS = ro]].

Funktionsumfang

Die Anweisung CALL FUNCTION

Der Name des Funktionsbausteins <Funktionsbaustein> wird als Literal angegeben. In den Optionen EXPORTING, IMPORTING, CHANGING und TABELLEN werden die Parameter übergeben, indem die Aktualparameter den Formalparametern explizit zugewiesen werden. Parameter werden nach diesem Schema zugeordnet: <Formalparameter> = <Aktualparameter>. Wenn Sie innerhalb einer Option mehrere Parameter zuordnen, müssen Sie zwischen den Parametern Leerzeichen einfügen oder jeweils eine neue Zeile beginnen.

      EXPORTING: Ordnet die Aktualparameter ai den Formaleingabeparameter fi zu. Die Formalparameter müssen im Funktionsbaustein als Importparameter deklariert werden. Diese Parameter können einen beliebigen Datentyp aufweisen. Bei angegebenem Bezugsfeld findet eine Überprüfung statt.

      IMPORTING: Ordnet die Formalausgabeparameter fi des Funktionsbausteins den Aktualparametern ai zu. Die Formalparameter müssen im Funktionsbaustein als Exportparameter deklariert werden. Diese Parameter können einen beliebigen Datentyp aufweisen.

      CHANGING: Ordnet die Aktualparameter ai den Formalparametern fi zu. 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. Diese Parameter können einen beliebigen Datentyp aufweisen.

      TABELLEN: Ordnet interne Tabellen Tabellenparametern zu. Interne Tabellen werden immer als Referenz zugeordnet. Die Parameter dieser Option müssen auf interne Tabellen verweisen.

      AUSNAHMEN: ermöglicht die Behandlung von Ausnahmen. Wenn eine Ausnahme auftritt, wird die Verarbeitung des Funktionsbausteins abgebrochen.

Beispiel

Wird also konkret eine Ausnahme ei ausgelöst, beendet das System die Abarbeitung des Funktionsbausteins und gibt keine Werte vom Funktionsbaustein an das Programm weiter. Das aufrufende Programm übernimmt die Ausnahme ei, indem es dem Systemfeld SY-SUBRC den Wert ri zuordnet. Dieser Wert fungiert als Rückgabecode (ri muss als Zahlenliteral angegeben werden). Im aufrufenden Programm kann dann eine Auswertung des Systemfeldes vorgenommen werden.

Durch die Angabe von ERROR_MESSAGE in der EXCEPTION-Liste können Sie die Ausnahmenbehandlung in Funktionsbausteinen beeinflussen. Nachrichten in Funktionsbausteinen sollten 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.

      ERROR_MESSAGE: Das System behandelt Nachrichten, die im Funktionsbaustein aufgerufen werden wie folgt:

       Nachrichten der Klassen S, I, und W werden ignoriert (bei Hintergrundverarbeitung 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.

      Wenn der Funktionsbaustein mit Ausnahmeklassen arbeitet, sieht die Anweisung CALL FUNCTION wie folgt aus:

try.

call function 'FB_EXCEPTION_TEST'

  exporting

    p1                     =

    p2                     =

* IMPORTING

*   P3                     =

*   P4                     =

          .

catch cx_sy_zerodivide.

endtry. 

Verbuchungs-Tasks und entfernte Hosts

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

      Wenn ein Funktionsbaustein in einer Verbuchungs-Task läuft, verarbeitet das System den Baustein asynchron. Stattdessen wartet das System bis die nächste Aktualisierung der Datenbank mit dem Befehl COMMIT WORK ausgelöst wird.

      Einen Funktionsbaustein auf einem entfernten Host ablaufen zu lassen, bedeutet, dass ein Funktionsbaustein 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