Eigenschaften der Schnittstellenparameter
Bei der Definition eines Schnittstellenparameters p1, p2; ... im Function Builder werden dessen Eigenschaften festgelegt, die sich in der Syntax von parameters und table_parameters widerspiegeln.
Syntax
... { VALUE(p1) | REFERENCE(p1) }
[ {TYPE [REF TO] type} | like_structure
[OPTIONAL|{DEFAULT def1}] ]
{ VALUE(p2) | REFERENCE(p2) }
[ {TYPE [REF TO] type} | like_structure
[OPTIONAL|{DEFAULT def2}] ]
...
Syntax und Semantik von VALUE, TYPE, OPTIONAL und DEFAULT entsprechen im Wesentlichen der Definition von Methodenschnittstellen mit [CLASS-]METHODS. Weiterhin gibt es noch eine obsolete Möglichkeit like_structure, um Schnittstellenparameter mit LIKE oder STRUCTURE zu typisieren.
Art der Parameterübergabe
Es gibt zwei Arten der Parameterübergabe: Referenzübergabe und Wertübergabe. Die Wertübergabe wird im Function Builder über die Auswahl von Wertübergabe ausgewählt und unterscheidet sich in obiger Syntax durch die Angabe von VALUE( ) von der Referenzübergabe, die durch REFERENCE( ) gekennzeichnet ist. Wenn nur ein Name p1 p2 ... angegeben ist, wird der Parameter standardmäßig per Referenz übergeben.
Für die verschiedenen Parameterarten ist Folgendes zu beachten:
Hinweis
Ob ein per Referenz übergebener Parameter mit oder ohne REFERENCE( ) angezeigt wird, liegt am Zeitpunkt der letzten Bearbeitung des Funktionsbausteins. REFERENCE( ) wird für Funktionsbausteine angezeigt, die ab Release 7.31 geändert wurden.
Typisierung der Schnittstellenparameter
Die Parameterschnittstelle eines Funktionsbausteins ist systemweit öffentlich. Die Typisierung der Schnittstellenparameter kann deshalb nur mit Bezug auf Datentypen aus dem ABAP Dictionary oder aus dem öffentlichen Sichtbarkeitsbereich globaler Klassen erfolgen. Schnittstellenparameter können im Function Builder entweder über die Auswahl von TYPE, TYPE REF TO oder über die Eingabe von LIKE typisiert werden.
Die Typisierung mit TYPE [REF TO] ist die einzige empfohlene Typisierung für Schnittstellenparameter von Funktionsbausteinen. Sie findet statt, wenn im Function Builder TYPE bzw. TYPE REF TO ausgewählt wird. Hinter TYPE kann bei IMPORTING-, EXPORTING- und CHANGING-Parametern ein beliebiger eingebauter ABAP-Typ (vollständig oder generisch) oder ein beliebiger Datentyp aus dem ABAP Dictionary oder aus dem öffentlichen Sichtbarkeitsbereich einer globalen Klasse angegeben werden. Hinter TYPE REF TO kann der generische Datentyp data, ein nicht-generischer Datentyp oder ein globaler Objekttyp angegeben werden und der Schnittstellenparameter wird als Referenzvariable typisiert.Die Überprüfung der Typisierung erfolgt wie bei Methoden.
Hinweis
Ohne explizite Typisierung wird ein Formalparameter implizit mit dem vollständig generischen Typ any typisiert.
Optionale Parameter
IMPORTING-, CHANGING- und TABLES-Parameter können über die Auswahl von Optional im Function Builder optional gemacht werden. EXPORTING-Parameter sind immer optional. IMPORTING- und CHANGING-Parametern kann ein Ersatzparameter (Vorschlagswert im Function Builder) zugeordnet werden. In obiger Syntax drückt sich dies durch die Zusätze OPTIONAL oder DEFAULT aus. Für einen optionalen Parameter muss beim Aufruf des Funktionsbausteins kein Aktualparameter angegeben werden. Während ein Formalparameter mit dem Zusatz OPTIONAL dann typgerecht initialisiert wird, übernimmt ein Formalparameter mit dem Zusatz DEFAULT Wert und Typ des Ersatzparameters def1 def2 ....
Wenn für einen generisch typisierten Formalparameter mit dem Zusatz OPTIONAL beim Aufruf kein Aktualparameter angegeben ist, wird der Typ des Formalparameters nach festen Regeln vervollständigt.
Hinweis
Innerhalb eines Funktionsbausteins kann mit dem Prädikatausdruck IS SUPPLIED überprüft werden, ob einem optionalen Formalparameter beim Aufruf ein Aktualparameter zugeordnet wurde.