Einsatzmöglichkeiten
Über Funktionen ist es möglich, selbstentwickelte Funktionsbausteine für Werteprüfungen und Werteherleitungen von Merkmalen einzusetzen.
In einer Funktion beziehen Sie sich auf einen ABAP-Funktionsbaustein. Über den Funktionsbaustein werden die Merkmale und Merkmalwerte als Tabelleninhalte übergeben. In dem Funktionsbaustein stehen Ihnen alle Möglichkeiten einer weiteren Verarbeitung offen.

Mit dem Aufruf eines benutzerdefinierten Funktionsbausteins verliert die SAP - Variantenkonfiguration die Kontrolle über mögliche Fehlersituationen: der Modellierer hat in seinem Baustein freien Zugang zu allen ABAP - Sprachelementen, muß dafür aber auch die alleinige Verantwortung für seinen Code tragen.
Gegenstand solcher externen Funktionen können z.B. sein:

Über eine Funktion können Sie die Werte von Merkmalen zu einem Textstring zusammenfassen. Der Wert für ein Merkmal Tuer_ID soll eine Zeichenkette sein, die aus den Werten der Merkmale Tuer_Material, Tuer_Breite und Tuer_Hoehe gebildet wird.
Sie können in einem Funktionsbaustein festlegen, daß die Werte der Merkmale Tuer_Material, Tuer_Breite und Tuer_Hoehe zur Tuer_ID verkettet werden. Dazu haben Sie einen Funktionsbaustein mit folgendem Aufruf definiert:
‘concatenate Tuer_Material Tuer_Breite Tuer_Hoehe into Tuer_ID’
Diesen Funktionsbaustein verwenden Sie in der Funktion, die Sie anschließend anlegen. In der Funktion nehmen Sie die Merkmale Tuer_Material, Tuer_Breite, Tuer_Hoehe und Tuer_ID auf und definieren die Auswertungsalternativen. In diesem Fall muß Tuer_ID als Datenfeld definiert werden, da für dieses Merkmal Werte hergeleitet werden sollen.
Integration
Funktionen können Sie bei Auswahl- und Vorbedingungen, in Aktionen, Prozeduren und Constraints nutzen:
Funktionsumfang
Für Funktionen sind zwei Arbeitsschritte notwendig:
Die Merkmale der Funktion und der Klasse können identisch sein, wenn die Merkmale einwertig sind. Wenn die Merkmale der Klasse mehrwertig sind, müssen Sie für die Funktion eigene einwertige Merkmale anlegen.
FUNCTION <Funktionsname>
(<Merkmal der Funktion> = <Merkmal der Klasse>,
<Merkmal der Funktion> = <Merkmal der Klasse>)
Aufruf in einer Vor- oder Auswahlbedingung
Hier werden alle angegebenen Merkmale als Eingabeparameter für den Funktionsbaustein interpretiert. Der Baustein kann nur dazu dienen, aufgrund dieser Eingabeparameter ein ja/nein-Ergebnis zu ermitteln. Falls die Bedingung nicht erfüllt ist, muß der Baustein dies durch die vordefinierte Ausnahme FAIL signalisieren. Eine Herleitung von Werten ist in diesem Umfeld nicht möglich.
Aufruf in einer Aktion oder Prozedur
In einer Aktion oder Prozedur kann ein Funktionsaufruf für die Herleitung von Werten genutzt werden. In der Auswertungsalternative geben Sie an, welche Merkmale als Importparameter und welche als Exportparameter des Bausteins gelten. Ausgabeparameter (Rückgabewerte) müssen dabei auf ein- oder mehrwertige Merkmale der Klasse verweisen. Wenn einer der angegebenen Eingabeparameter in der Konfiguration nicht bewertet ist, so erfolgt der Funktionsaufruf nicht.
Wie in Tabellenaufrufen wird bei Funktionsaufrufen in Aktionen oder Prozeduren die erste Auswertungsalternative berücksichtigt.
Aufruf in Constraints
In einem Constraint kann ein Funktionsaufruf im Bedingungsteil (Test auf die Ausnahme FAIL) und im Restriktionsteil (Test und Herleitung) verwendet werden.
Einschränkungen