Die URL für diese SAP-Erweiterungen ist: http://www.sap.com/sapxsl.
Im aller Regel kann und sollte eine Transformation vollständig mit Elementen von XSLT beschrieben werden. Es kann aber gelegentlich sehr nützlich sein, aus einem XSLT-Programm auf zusätzliche Datenbestände - etwa aus einer Datenbank - zuzugreifen oder auch nur Berechnungen in prozeduraler Form durchzuführen. Zu diesem Zwecke wurden ABAP-Aufrufe in den SAP XSLT Prozessor als Erweiterungen integriert. Es können auf diese Weise neben Methodenaufrufen für ABAP-Objekte, die als Programm-Parameter eingebunden werden, auch Aufrufe von Konstruktoren und von Klassenmethoden in XSLT-Programmen definiert werden.
Beachten Sie, daß es sich bei XSLT um eine deklarative Sprache handelt, in der die Reihenfolge in der Programmausführung prinzipiell nicht festgelegt ist. ABAP-Aufrufe sollten sich daher auf lesende Zugriffe beschränken. Eine Ausnahme sind jedoch eventuelle Zustandsmanipulationen, die aber während der Ausführung der Transformation transparent sind.
Weitere Informationen erhalten Sie in der Syntax-Dokumentation von sap:call-external und sap:external-function.
Mit benannten Templates steht ein Mechanismus zur Verfügung, mit dem auch rekursive Funktionen auf der Ebene der Baum-Transformationen definiert werden können. Eine solche Möglichkeit fehlt jedoch generell auf der XPath-Ebene.
Der SAP XSLT Prozessor bietet hierzu eine Erweiterung an, die das Definieren eigener XPath-Funktionen unterstützt. Funktionen dieser Art haben stets einen eigenen Namenraum (weder XSLT- noch SAP XSLT-Namensraum) und werden üblicherweise in Verbindung mit den SAP-Zusatzfunktionen sap:if( ) und sap:let( ) verwendet.
Mehr dazu erfahren Sie in der Syntax-Dokumentation zu sap:function.