Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Funktionsbausteine  Dokument im Navigationsbaum lokalisieren

Verwendung

Mit der Anweisung CALL FUNCTION können Sie Funktionsbausteine aufrufen. Tragen Sie hierzu die Namen der Funktionsbausteine in Transaktion SM30 in die Tabelle RSPLF_FDIR ein.

Den Funktionsbausteinen können EXPORTING-, IMPORTING- und CHANGING-Parameter übergeben werden. Bei den Parametern muss es sich um einfache Typen handeln (F, I, D, STRING und Typen von Merkmalen und Attributen). Klassenreferenzen, Strukturen und Tabellenparameter sind nicht zugelassen.

Alle nichtoptionalen IMPORTING-Parameter eines Funktionsbausteines müssen versorgt werden.

Falls der Funktionsbaustein eine Ausnahme auslöst, müssen Sie mit dem Konstrukt MESSAGE ... RAISING arbeiten. Auch klassenbasierte Ausnahmen sind zugelassen. Die Meldungen des Funktionsbausteins werden ins Protokoll übernommen.

Beispiel

Im folgenden Beispiel wird der Funktionsbaustein UPF_DISTR_RATE_GET aufgerufen.

DATA FISCPER TYPE 0FISCPER.

DATA FISCYEAR TYPE 0FISCYEAR.

DATA RATE TYPE F.

DATA KYF TYPE KEYFIGURE_NAME.

FOREACH FISCYEAR, KYF.

FISCPER = OBJV( ).

CALL FUNCTION UPF_DISTR_RATE_GET

EXPORTING

I_FISCPER = FISCPER

I_VERSION = 'OPTIMISTIC'

IMPORTING

E_RATE = RATE.

{KYF,FISCYEAR} = { KYF, FISCYEAR } * RATE.

ENDFOR.

Das folgende Beispiel zeigt den Einsatz der Anweisung MESSAGE … RAISING im Falle einer ausgelösten Ausnahme.

FUNCTION UPF_DISTR_RATE_GET.

*"--------------------------------------------------------------------

*"*"Lokale Schnittstelle:

*" IMPORTING

*"     REFERENCE(I_FISCPER) TYPE  /BI0/OIFISCPER

*"     REFERENCE(I_VERSION) TYPE  STRING DEFAULT 'OPTIMISTIC'

*" EXPORTING

*"     REFERENCE(E_RATE) TYPE  F

*"     REFERENCE(E_FISCYEAR) TYPE  /BI0/OIFISCYEAR

*" EXCEPTIONS

*"     ERROR

*"--------------------------------------------------------------------

DATA: L_FISCPER_3 TYPE N LENGTH 3.

L_FISCPER_3 = I_FISCPER+4(3).

IF I_VERSION = 'OPTIMISTIC'.

E_RATE = l_FISCPER_3 / 5.

ELSE.

E_RATE = l_FISCPER_3 / 7.

ENDIF.

E_FISCYEAR = I_FISCPER(4).

IF L_FISCPER_3 IS INITIAL OR E_FISCYEAR IS INITIAL.

MESSAGE E001(UPF) WITH 'Initiale Werte'(TIV) RAISING ERROR.

ENDIF.

ENDFUNCTION.

Ende des Inhaltsbereichs