Definition

SAP Business Application Programming Interface (BAPI)

SAP Business Application Programming Interface, kurz BAPI, ist eine Standardschnittstelle zu den Business-Objekten in SAP-Anwendungen.

BAPIs sind die Hauptmethode, über die Kundencode und Anwendungen von Drittanbietern mit SAP-Produkten interagieren. BAPIs umhüllen die internen Schichten des SAP-Business-Objekt-Modells, um sicherzustellen, dass alle Geschäftslogiken, Validierungen und Berechtigungsprüfungen ordnungsgemäß ausgeführt werden, wenn auf Business-Objekte zugegriffen oder diese geändert werden.

Wie BAPI funktioniert

BAPIs sind als Funktionsbausteine implementiert, die SAP-internen Code aufrufen. Je nachdem, welcher Satz von BAPIs verwendet wird, können sie Business-Objekt-Modelle aufrufen, die mit dem Business Objects Processing Framework (BOPF) definiert wurden, oder Legacy-Modelle, die mit Programmen, Tabellen und Funktionsbausteinen definiert wurden.

BAPIs stellen eine formale und stabile Schnittstelle dar, über die Entwickler von Kunden- und Fremdcode auf SAP-Business-Objekte zugreifen können, und zwar auf eine Art und Weise, die von SAP auch in Zukunft garantiert werden kann. Der Zugriff auf zugrunde liegende Tabellen und Nicht-BAPI-Funktionsbausteine, -Programme und -Klassen ist in SAP-Systemen ebenfalls möglich, aber es besteht nicht die gleiche Garantie, dass der Code in Zukunft funktionieren wird oder dass die Objekte, auf die zugegriffen wird, überhaupt existieren werden.

Eine solche Verwendung von Nicht-BAPI-Schnittstellen kann zu Problemen bei Upgrades führen oder kleine Patches erfordern, wenn sich die Signatur eines internen Funktionsbausteins ändert und der Code, der sich darauf stützt, ungültig wird.

Verwendung von BAPI

BAPIs dürfen von Drittanbietern oder Kundenentwicklern nur dann verwendet werden, wenn sie freigegeben sind, das heißt von SAP als einsatzbereit und garantiert stabil für die Zukunft eingestuft wurden. Der Freigabestatus kann anhand des Datums Freigegeben am im Attributbereich des Funktionsbausteins BAPI überprüft werden. Wenn dieses Feld leer ist, wurde das BAPI von SAP nicht freigegeben und sollte nicht verwendet werden.

Um ein SAP BAPI in der Sprache Advanced Business Application Programming (ABAP) zu verwenden, greift ein Entwickler auf den ABAP-Befehl CALL FUNCTION zurück, um den Funktionsbaustein aufzurufen (siehe Abbildung 1). Alternativ dazu sind die meisten BAPIs Remote-fähig, das heißt sie können über Remote Function Call (RFC), Web Services oder den Java Connector von SAP aufgerufen werden.

ABAP CALL FUNCTION
Abbildung 1: ABAP CALL FUNCTION wird zum Ändern einer Adresse verwendet.

Merkmale der SAP BAPIs

In jedem SAP-Produkt, das auf der ABAP-Plattform basiert, gibt es BAPIs, die eine vollständige Automatisierung der meisten Geschäftsprozesse ermöglichen. Die Dokumentation für jedes SAP-Produkt bietet einige Informationen über die verfügbaren BAPIs. Es kann auch sinnvoll sein, in den SAP-Transaktionscodes SE37 und SE80 oder in ABAP for Eclipse nach Funktionsbausteinen zu suchen, die mit BAPI beginnen.

Zu jedem BAPI-Funktionsbaustein sollte eine ausführliche Dokumentation in mehreren Sprachen vorhanden sein, die über die Option Function Module Documentation in SE37 zugänglich ist. Es ist wichtig, diese Dokumentation gründlich zu lesen, da BAPIs in ihrer Struktur und ihrem Verhalten sehr unterschiedlich sind und manchmal auf unerwartete Weise funktionieren oder mit kryptischen Fehlermeldungen fehlschlagen, wenn ihre Anforderungen nicht erfüllt sind.

BAPI-Code zum Ändern einer Adresse
Abbildung 2: BAPI-Code zum Ändern einer Adresse.

Viele BAPIs haben komplexe Strukturen, die die zugrunde liegenden Business-Objekt-Strukturen nachbilden. Das in Abbildung 2 gezeigte BAPI zum Ändern einer Geschäftspartneradresse – dieselbe CALL FUNCTION wie in Abbildung 1 – enthält mehrere Importstrukturen sowie eine große Anzahl von Tabellenparametern, mit denen zusätzliche Informationen an BAPI übergeben werden können.

Zwei der wichtigen Parameter in Abbildung 2 sind ADDRESSDATA und ADDRESSDATA_X. Diese Art von Paaren ist typisch für BAPIs, wobei die zweite _X-Struktur eine Reihe von Flags ist, die genau angeben, welche Felder aktualisiert werden sollen.

BAPIs in der Praxis

Da BAPIs als Funktionsbausteine implementiert sind, passen sie nicht in das ABAP-Paradigma der objektorientierten Programmierung (OOP) mit Klassen, Methoden und Schnittstellen. Dennoch werden sie in der Regel objektorientiert implementiert, da sie Schnittstellen zu SAP-Business-Objekten darstellen.

In ABAP können diese Funktionsbausteine aus Programmen, Funktionsbausteinen oder Klassen aufgerufen werden. Oft ist es vorteilhaft, BAPI-Aufrufe in Data Access Objects (DAOs) zu verpacken, das heißt in Klassen, die die Aufrufe der BAPIs kapseln. Dies ermöglicht Unit-Tests mit einer Mock-Version des DAOs, so dass der Entwicklercode unabhängig von den BAPI-Aufrufen selbst getestet werden kann.

Diese Definition wurde zuletzt im Mai 2022 aktualisiert

Erfahren Sie mehr über Enterprise Resource Planning (ERP)