Funktionsbaustein
From Sapwiki
Funktionsbausteine sind Module, die nicht selbständig laufen können.
Sie werden aus anderen Programmen über eine definierte Schnittstelle aufgerufen und erledigen Aufgaben für ein bestimmtes Thema. Funktionsbausteine werden in Funktionsgruppen zusammengefasst. Die Funktionsgruppe ist gleichzeitig auch ein Programm.
Zur Übersicht über die Funktionsbausteine in einzelnen Modulen siehe Funktionsbausteine.
Inhaltsverzeichnis |
Beispiele
Ein Funktionsbaustein kann beispielsweise die Speicherung oder das Lesen von Daten kapseln. Oft werden auch Berechnungen oder Prüfungen, die in vielen Programmen gebraucht werden in Funktionsbausteine implementiert.
Vorteile
- Ein Funktionsbaustein ist für sich ein überschaubarer Zusammenhang, der über die Transaktion SE37 direkt testbar ist.
- Funktionsbausteine können beliebig in vielen Programmen verwendet werden und damit ist bei Änderungen nur eine zentrale Stelle zu bearbeiten
- Funktionsbausteine können via RFC von anderen Systemen aufgerufen werden
- Funktionsbausteine haben eine klar definierte Übergabeschnittstelle
- Funktionsbausteine können über die Verbuchung abgearbeitet werden.
Schnittstelle
Die Schnittstelle besteht aus folgenden Elementen:
- Import-Parameter: Eingabedaten
- Export-Parameter: Ausgabedaten
- Changing-Parameter: Daten die verändert werden
- Tabellen-Parameter: interne Tabellen, die veränderbar sind
- Ausnahmen (Exceptions): Fehlermeldungen
Aufruf aus Programmen
Funktionsbausteine können aus allen Programmen aufgerufen werden. Dies erfolgt über den Befehl CALL FUNCTION. Dabei werden die Parameter aus der Schnittstelle lokalen Variablen oder Tabellen zugeordnet. Die Import-Parameter werden in dem CALL FUNCTION-Aufruf allerdings als EXPORTING beschrieben. Dies liegt daran, dass der Funktionsbaustein die Daten importiert, der aufrufende ABAP jedoch exportiert. Gleiches gilt umgekehrt für Export-Parameter. Ausnahmen werden als bestimmte definierbare [wiki:Systemvariablen SY-SUBRC-Werte] zurückgeliefert, die dann zu verschiedenen Handling im Programm führen können.
Um den Aufruf über CALL FUNCTION einfach zu gestallten, gibt es in der SE38 und SE80 eine Funktion Anweisungsmuster-Einfügen. Hier kann der Name des Funktionsbausteins eingegeben werden und das System generiert selbstätig die Schnittstellenparameter in den Code.
Aufruf von anderen Systemen
Für den Aufruf von Funktionsbausteinen von anderen Systemen muss der Baustein RFC-fähig sein. Innerhalb von SAP kann man entfernte Funktionsbausteine mithilfe der Anweisung CALL FUNCTION...DESTINATION aufrufen. Der Parameter DESTINATION teilt dem SAP-System mit, daß der gerufene Funktionsbaustein in einem anderen System läuft als der Aufrufer. Die RFC-Kommunikation mit dem entfernten System findet als Teil der CALL FUNCTION-Anweisung statt.
Für den Aufruf von Funktionsbausteinen aus anderen Programmiersprachen stehen verschiedene Connectoren zur Verfügung:
- SAP Java Connector
- SAP .NET Connector
- SAP DCOM Connector
- RFC Library
- SOAP Processor
Diese Connectoren lassen sich für SAP Kunden unter http://service.sap.com/connectors herunterladen. Basierend auf der RFC Library gibt es auch Connectoren für Perl und PHP:
- http://saprfc.sourceforge.net SAPRFC SAP Zugriff für PHP
- http://search.cpan.org/~piers/SAP-Rfc-1.55/Rfc.pm SAP:Rfc für Perl
Technisches
Die Funktionsbausteine sind in Tabelle TFDIR gespeichert, die Bezeichnungen in TFTIT, ihre Parameter in FUPARAREF.

