Show TOC Anfang des Inhaltsbereichs

Komponentendokumentation Erweiterung des BAPIs durch Einbeziehung zusätzlicher, kundeneigener Datenbanktabellen  Dokument im Navigationsbaum lokalisieren

Einsatzmöglichkeiten

Über das Kundenerweiterungskonzept kann es dem Kunden möglich gemacht werden, zusätzliche, selbst angelegte Tabellen in einem BAPI zu verarbeiten.

Einführungshinweise

Um dem Kunden diese Möglichkeit der Erweiterung zu geben, müssen am BAPI ebenfalls mindestens die folgenden Vorkehrungen getroffen werden:

...

       1.      Extension-Parameter an der BAPI-Schnittstelle
In Abhängigkeit von den Anforderungen, die an das jeweilige BAPI gestellt werden, muss ein Extension-Parameter (ExtensionIn) für den Datenimport und/oder ein Extension-Parameter (ExtensionOut) für den Datenexport in der Schnittstelle des BAPI-Funktionsbausteins enthalten sein.

       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 Datenprüfungen oder weitere Verarbeitungen durchführen kann.

Beispiel

Im folgenden wird anhand des BAPIs TravelAgency.CreateFromData verdeutlicht, welche Komponenten an dieser Art der Erweiterung beteiligt sind. In diesem Beispiel hat der Kunde zusätzlich zu den dem BAPI zugrundeliegenden SAP-Tabellen eine eigene Tabelle YSTRAVELAG angelegt, in welcher er zusätzliche Daten zu dem Objekt TravelAgency abspeichert.

Die angelegte Kundentabelle

Die vom Kunden angelegte Tabelle YSTRAVELAG hat die folgende Struktur:

Diese Grafik wird im zugehörigen Text erklärt

Die zugehörige Hilfsstruktur

Um das Füllen bzw. Auswerten der Extension-Parameter zu erleichtern, sollte für jede Kundentabelle eine Datenstruktur angelegt werden, die diejenigen Felder aus der zugehörigen Kundentabelle enthält, welche im BAPI berücksichtigt werden sollen. Dabei sollten die folgenden Punkte beachtet werden:

      Die einzelnen Felder dieser Datenstruktur sollten den gleichen Namen und den gleichen Datentyp besitzen wie die zugehörigen Felder in der Kundentabelle.

      Insbesondere müssen alle Schlüsselfelder der Kundentabelle in der Datenstruktur enthalten sein, um eine eindeutige Identifizierung der Datensätze zu ermöglichen.

      Der Name der Datenstruktur sollte der Konvention <Namensraum>BAPI_<Tabellenname> genügen, um eine eindeutige Zuordnung zur Datenbanktabelle herzustellen.

 

Die folgende Abbildung zeigt, wie die Hilfsstruktur YBAPI_YSTRAVELAG für das begleitende Beispiel aussehen sollte:

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 Extension-Containers dar. Alternativ können andere Hilfsstrukturen verwendet werden, oder es kann vollständig auf derartige Hilfsstrukturen verzichtet werden.

Die Extension-Parameter am BAPI

Wie bereits erwähnt, werden die beiden Extension-Parameter (ExtensionIn und ExtensionOut) an der BAPI-Schnittstelle dazu verwendet, die Erweiterungen in einem Containerformat an den BAPI-Funktionsbaustein zu übergeben bzw. aus dem Funktionsbaustein heraus an den Aufrufer weiterzuleiten.

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

Wird allerdings eine Hilfsstruktur in der zuvor beschriebenen Form verwendet, ist die Strukturierung der Daten in diesen Containern bis auf eine Ausnahme äquivalent zu der unter Anhängen kundeneigener Felder beschriebenen Strukturierung. Der einzige Unterschied besteht darin, dass in dem Feld STRUCTURE der BAPIPAREX-Struktur nicht der Name der BAPI Table Extension übergeben wird, sondern der Name der zugehörigen Hilfsstruktur.

Dem Beispiel folgend könnte der Extension-Container bei Verwendung der Hilfsstruktur YBAPI_YSTRAVELAG wie folgt aussehen:

Diese Grafik wird im zugehörigen Text erklärt

Die Werte „BOEING747“ und „LUFTHANSA“ des ersten Datensatzes würden in die durch YBAPI_YSTRAVELAG spezifizierten Felder der Kundentabelle YSTRAVELAG geschrieben. Die Tabellenzeile, in welche die Werte einzufügen sind, wird durch den Schlüssel „4711“ identifiziert.

Das Prüfen und die Weiterverarbeitung der Daten aus dem Import-Container bzw. das Füllen des Export-Containers findet anschließend in den BAdIs statt, die vom BAPI-Entwickler dafür vorgesehen wurden.

Ende des Inhaltsbereichs