Show TOC Anfang des Inhaltsbereichs

Komponentendokumentation Erweiterung des BAPIs um Import-Daten, die sich nicht auf die Datenbank-Ebene niederschlagen  Dokument im Navigationsbaum lokalisieren

Einsatzmöglichkeiten

Eine weitere denkbare Erweiterungsmöglichkeit ist, dass der Kunde zusätzliche Daten an das BAPI übergeben möchte, die er nur zur Laufzeit benötigt. Der Unterschied zu den zuvor beschriebenen Arten der Erweiterung besteht darin, dass diese Werte keinen Feldern in Datenbanktabellen zugeordnet sind. Somit werden die Daten im Extension-Container anders strukturiert, da keine Schlüsselwerte zur Ermittlung der zugehörigen Zeile in der Datenbanktabelle übergeben werden müssen.

Beispiele für diese Art der Erweiterung sind:

      Aufnahme zusätzlicher Selektionskriterien in ein GetList()-BAPI, die die Anzahl der Datensätze der zurückgegebenen Liste einschränken

      Aufnahme zusätzlicher Filterkriterien in einem GetDetail()-BAPI, die festlegen, welche Detailinformationen angezeigt werden

      Erweiterung der Ankreuzleiste bei einem Change()-BAPI, das nach dem Konzept „Änderung durch Markierung“ implementiert worden ist

Einführungshinweise

Auch für diese Art der Erweiterung muss das BAPI die folgenden Vorkehrungen besitzen:

...

       1.      Extension-Parameter an der BAPI-Schnittstelle
Um die zusätzlichen Daten an das BAPI übergeben zu können, muss die Schnittstelle des BAPI-Funktionsbausteins den ExtensionIn-Parameter besitzen.

       2.      Business Add-Ins (BadIs)
Auch für diesen Anwendungsfall muss jeder BAPI-Funktionsbaustein neben den durch die Anwendung vorgegebenen Exits, in Abhängigkeit von den Anforderungen, maximal zwei zusätzliche BAdIs enthalten, in denen der Kunde die übergebenen Daten prüfen oder weitere Verarbeitungen durchführen kann.

Während der ExtensionIn-Parameter an der BAPI-Schnittstelle und das BAdI obligatorisch sind, bleibt es vollständig dem Kunden überlassen, in welcher Form er die zu übergebenden Daten in dem Extension-Container anordnet.
Allerdings wird empfohlen, für die zusätzlich zu übergebenden Werte Hilfsstrukturen anzulegen, deren Felder diese zusätzlichen Werte repräsentieren. Mit Hilfe dieser Datenstrukturen kann die Auswertung des ExtensionIn-Parameters komfortabler und sicherer durchgeführt werden.

Beispiel

Im folgenden wird anhand eines GetList()-BAPIs verdeutlicht, welche Schritte durchlaufen werden, wenn ein zusätzliches Selektionskriterium in das BAPI einbezogen werden soll. Da BAPI-Selektionsparameter immer aus den vier Feldern SIGN, OPTION, HIGH und LOW bestehen, müssen also diese vier zusätzlichen Werte innerhalb des ExtensionIn-Containers an das BAPI übergeben werden.

Die zugehörige Hilfsstruktur

Um das Füllen bzw. Auswerten des ExtensionIn-Parameters zu erleichtern, sollten Datenstrukturen angelegt werden, die jeweils diejenigen zusätzlich an das BAPI zu übergebenden Felder enthalten, welche inhaltlich zusammengehören.

Dem Beispiel folgend sollte eine Datenstruktur für das zusätzliche Selektionskriterium angelegt werden, die die vier Felder SIGN, OPTION, HIGH und LOW enthält.

Diese Grafik wird im zugehörigen Text erklärt

 

Achtung

Das Anlegen dieser Hilfsstruktur ist optional und stellt lediglich eine Erleichterung beim Füllen und Auswerten des ExtensionIn-Containers dar. Alternativ können andere Hilfsstrukturen verwendet werden, oder es kann vollständig auf derartige Hilfsstrukturen verzichtet werden.

 

Der ExtensionIn-Parameter am BAPI

Wie bereits erwähnt, wird der ExtensionIn-Parameter an der BAPI-Schnittstelle dazu verwendet, die Erweiterungen in einem Containerformat an den BAPI-Funktionsbaustein zu übergeben.

Im Gegensatz zur Erweiterung über BAPI Table Extensions gibt es in diesem Fall keine Richtlinien, wie die Daten im ExtensionIn-Container anzuordnen sind.

Wird allerdings eine Hilfsstruktur in der zuvor beschriebenen Form verwendet, werden die Daten im Container wie folgt strukturiert:

Diese Grafik wird im zugehörigen Text erklärt

Das Feld STRUCTURE der BAPIPAREX-Struktur enthält den Namen der Hilfsstruktur, in welcher die für die Selektion notwendigen Felder zusammengefasst sind. Somit würde in diesem Fall das Feld SIGN den Wert „I“, OPTION den Wert „CP“, HIGH den Wert „00000010“ und LOW den Wert „00000001“ erhalten.

Das Prüfen und die Weiterverarbeitung der Daten aus dem Import-Container findet ebenfalls in den BAdIs statt, die vom BAPI-Entwickler dafür vorgesehen wurden.

 

 

Ende des Inhaltsbereichs