Show TOC Anfang des Inhaltsbereichs

Syntaxdokumentation sap:external-function  Dokument im Navigationsbaum lokalisieren

Verwendung

Mit der Anweisung sap:external-function können Sie eine Funktion für ABAP-Aufrufe von XPath aus deklarieren. Im Gegensatz zu sap:call-external kann nur ein einzelner Rückgabewert für den Methodenaufruf angegeben werden. Zu diesem Zwecke muß die aufzurufende Methode im Toplevel des XSLT-Programms als externe Funktion deklariert werden. So deklarierte Funktionen können für Methodenaufrufe in XPath-Ausdrücken verwendet werden.

Achtung

Funktionen dieser Art verwenden stets einen eigenen Namensraum (weder XSLT- noch SAP-XSLT-Namensraum).

Beim Aufruf von Interface-Methoden müssen diese grundsätzlich über den Namen des Interfaces gefolgt vom Interface-Komponentenselektor (intf~) gekennzeichnet werden.

Syntax für die Deklaration

... von Instanzmethoden:

<sap:external-function name="prefix:fName" method="instanceMethod" kind="instance">

   <sap:argument      param="PARAM_1"/>

   <sap:argument      param="PARAM_2"/>

      ...

   <sap:result        param="RESULT"      type="xslType"/>

</sap:external-function>

... von Klassenmethoden:

<sap:external-function name="prefix:fName" class="className" method="classMethod" kind="class">

   <sap:argument      param="PARAM_1"/>

   <sap:argument      param="PARAM_2"/>

      ...

   <sap:result        param="RESULT"      type="xslType"/>

</sap:external-function>

... der Konstruktoren:

<sap:external-function name="prefix:new" class="className" kind="constructor">

   <sap:argument      param="PARAM_1"/>

   <sap:argument      param="PARAM_2"/>

      ...

</sap:external-function>

Beschreibung

Mit Ausnahme der Konstruktor-Deklaration gibt das Attribut method den Namen der aufzurufenden ABAP-Methode an. Das Attribut kind legt darüber hinaus fest, ob es sich um eine Instanz- bzw. eine Klassenmethode oder um einen Kontruktor handelt. Bei Klassenmethoden und Konstuktoren wird über das Attribut class der Name der ABAP-Klasse angegeben.

Die Liste der Funktionsargumente wird (unter Berücksichtigung der Reihenfolge) mit Hilfe der Sub-Anweisung sap:argument deklariert. Die Namen der korrespondierenden ABAP-Parameter werden mit dem Attribut param spezifiziert.

Aufrufe der Instanzen- und Klassenmethoden können einen Rückgabewert mittels der Sub-Anweisung sap:result definieren. Der Name des Rückgabeparameters wird durch das Attribut param spezifiziert. Optional kann mittels des Attributs type ein bestimmter XSLT-Typ (string, number, boolean, node-set oder external) dem Resultat zugeordnet werden.

Syntax für Aufrufe in XPath-Ausdrücken

Deklarierte Funktionen können in XPath-Ausdrücken für ABAP-Aufrufe verwendet werden. Bei Instanzmethoden muß dabei das erste Funktionsargument mit einen ABAP-Objekt identifiziert werden.

Beispiel:

<xsl:value-of    select="prefix:f1($x,99,'abc')"/>

 

In vorliegenden Beispiel definiert die Funktion mit dem Namen prefix:f1 einen ABAP-Aufruf mittels einer Instanzmethode, die die beiden Werte 99 und 'abc' als Eingabeparameter übergibt. Das erste Funktionsargument $x identifiziert das gewünschte ABAP-Objekt.

Bei Verwendung einer passend deklarierten Konstuktor-Funktion kann dieser Aufruf alternativ auch so geschrieben werden:

<xsl:value-of    select="prefix:f1(prefix:new('xyz'),99,'abc')"/>

 

 

Ende des Inhaltsbereichs