FuBa Aufbau

Beim Aufruf sind die aufrufenden Parameter bei Exporting, die empfangenden Parameter (=Resultate) bei Importing anzugeben.

Die Parameter beginnen bei Exporting meist mit i_, bei Importing meist mit e_. Die Variablen sind also aus Sicht des Fuba benannt. e_ exportiert der Fuba an das aufrufende Programm, i_ importiert der Fuba von dem aufrufenden Programm.

Beim Aufruf sind als Source Name die Parameternamen des FuBa, als Destination Name die Variablen des aufrufenden Programmes ersichtlich.

Im FuBa selbst sind im Kommentar die Parameter, mit denen er aufgerufen wurde, im Importing zu finden, die Parameter, die er zurückliefert, im Exporting zu finden.

Im Fuba sind Name und Typ zu sehen.

Beim Coding ist am besten STRG-F6 einzugeben.

(Tipp von Denis Reis, sehr nette Seite)

Funktionsbausteine besitzen eine Schnittstelle, welche aus Parametern besteht. In den Schnittstellendefinitionen können verschiedene Arten von Parametern angelegt werden.

  • Import – diese Parameter übernehmen Werte für die Weiterverarbeitung in den Funktionsbaustein.
  • Export – damit liefert der Funktionsbaustein Ergebnisse nach außen. Der Empfänger kann, aber muss nicht, die Daten übernehmen.
  • Changing – ist eine Mischung aus Import und Export. Der Funktionsbaustein kann den Inhalt solchen Parameters ändern und an das aufrufende Programm zurückgeben.
  • Tabellen – diese Parameter sind veraltet und sollten nicht mehr verwendet werden, seit es Tabellentypen gibt.
  • Ausnahmen – falls im Funktionsbaustein Situationen eintreten, die so nicht geplant waren, kann eine Ausnahme ausgelöst und über die Schnittstelle nach außen gereicht werden. Die Behandlung der Ausnahme findet nicht im Funktionsbaustein selbst statt, sondern beim Aufrufer.
FUNCTION Z_GET_DETAILS.
*"------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     REFERENCE(I_ID) TYPE  ZHANDYLIST-TID
*"  EXPORTING
*"     REFERENCE(E_DETAIL) TYPE  ZHANDYLIST
*"------------------------------------------

*Details zu der I_ID von der DB lesen
  SELECT SINGLE * FROM zhandylist INTO e_detail
    WHERE tid = i_id.

ENDFUNCTION.
REPORT  zhandylist.

DATA: ls_details TYPE zhandylist.

CALL FUNCTION 'Z_GET_DETAILS'
  EXPORTING
    i_id     = '002'
  IMPORTING
    e_detail = ls_details.