Inkompatible Weiterentwicklungen 
Inhaltliche Änderungen an einem BAPI bedingen zumeist die Einführung neuer Parameter, ohne die die Schnittstelle nicht mehr funktionieren würde. Oftmals verlieren auch existierende Parameter durch inhaltliche Änderungen ihre ursprüngliche Bedeutung. Derartige Änderungen zählen als inkompatible Weiterentwicklungen, durch die eine Abwärtskompatibilität des BAPIs nicht mehr gewährleistet ist.
Syntaktisch inkompatible Weiterentwicklungen sind beispielsweise:
Änderungen der Feldlänge
Änderung des Feldtyps
Umbenennen eines Parameters im Funktionsbaustein oder an der Methode
Hinzufügen von Feldern inmitten einer Struktur
Löschen von Parametern oder Feldern
Hinzufügen neuer obligatorischer Parameter oder Felder Im BOR können Parameter als obligatorisch gekennzeichnet werden. Dies ist jedoch für Felder nicht möglich, d.h. Felder können nicht auf technischer, sondern nur auf semantischer Ebene als obligatorisch kategorisiert werden. Deshalb muss in der Dokumentation zu jedem Parameter angegeben werden, welche Felder zu füllen sind.
Folgende Tabelle gibt eine Auflistung von inkompatiblen Änderungen im Funktionsbaustein. Die Vollständigkeit dieser Liste ist nicht garantiert.
Inkompatible Änderungen eines Funktionsbausteins |
|
|---|---|
An der Schnittstelle |
Neuer obligatorischer Parameter |
Neue Felder zwischen vorhandenen Feldern in Struktur einfügen |
|
Neue Felder zwischen vorhandenen Feldern in Tabelle einfügen |
|
Neues obligatorisches Feld an Struktur anhängen |
|
Neues obligatorisches Feld an Tabelle anhängen |
|
Inkompatibles Ändern der Typen der Felder (über das ABAP Dictionary) |
|
Umwandeln eines Felds von optional nach obligatorisch |
|
Umbenennen eines Parameters |
|
Im Programmcode |
Neues zusätzliches Coding, wobei die Interpretation/Verarbeitungslogik verändert wird |
Ändern des vorhandenen Codings, wobei die Interpretation/Verarbeitungslogik verändert wird |
|
Hinzufügen oder Entfernen eines 'COMMIT WORK'- Kommandos im Programm |
|
Bei inkompatiblen Änderungen an einem BAPI sind die drei Schritte Anlegen eines zusätzlichen BAPIs,Unterstützung und Kennzeichnung des zu ersetzenden BAPIs und Löschen des ersetzten BAPIs zu durchlaufen.
Um die Schnittstellenstabilität eines existierenden BAPIs nicht zu beeinträchtigen, dürfen inkompatible Änderungen nicht an dem existierenden BAPI vorgenommen werden. Stattdessen sind zu diesem BAPI ein - oder bei Bedarf mehrere - zusätzliche BAPIs hinzuzufügen, die das existierende BAPI ersetzen sollen.
Das neue BAPI muss den Namen des zu ersetzenden BAPIs beibehalten, erhält jedoch als Suffix eine Zahl. Diese Zahl kann dann, wenn nötig, bei weiteren inkompatiblen Änderungen hochgezählt werden.
Beispiel
An dem BAPI FixedAsset.Create() müssen inkompatible Änderungen vorgenommen werden. Ein neues BAPIFixedAsset.Create1() wird erstellt, um die Schnittstelle des BAPIs FixedAsset.Create() nicht zu verändern.
Sollten zu einem späteren Zeitpunkt erneut inkompatible Änderungen anfallen, so müssten diese Änderungen in einem weiteren BAPI, FixedAsset.Create2(), implementiert werden.
Beim Anlegen des zusätzlichen BAPIs sind alle im BAPI-Programmierleitfaden (CA-BFA) beschriebenen Richtlinieneinzuhalten.
Das zu ersetzende BAPI darf nicht sofort aus dem Business Object Repository (BOR) entfernt werden, sondern es muss zunächst als auslaufend (obsolet) gekennzeichnet werden. Dieses BAPI muss im Änderungsrelease (d.h. in dem Release, in dem das Nachfolge-BAPI eingeführt wird) und in dem darauffolgenden funktionalen Release weiter unterstützt werden und während dieser Zeit in seiner Funktion erhalten und lauffähig bleiben.
Die Kennzeichnung des BAPIs als auslaufend (obsolet) erfolgt folgendermaßen:
Wählen Sie den entsprechenden SAP-Business-Objekttyp im Business Object Builder und öffnen Sie den Knoten Methoden. Positionieren Sie den Cursor auf das entsprechende BAPI, und wählen Sie anschließend .
Dokumentieren Sie im BOR die entsprechende alternative Methode bzw. Methoden, die das auslaufende BAPI ersetzen.
Dokumentieren Sie im SAP-Hinweis 0107644 "Sammelhinweis für obsolete BAPIs ab Release 4.5A" die BAPIs, die in einem Release auf "obsolet" gesetzt wurden.
Unterrichten Sie Ihre Benutzer anhand von Release Notes über die entsprechenden Nachfolge-BAPIs.
Folgende Abbildung beschreibt die Auslaufphase eines BAPIs. In diesem Beispiel wird das Nachfolge-BAPI im Release 4.0 eingeführt. Das zu ersetzende BAPI wird folglich im Release 4.0 (d.h. im Änderungsrelease, in dem das Nachfolge-BAPI eingeführt wurde) und in dem nächsten funktionalen Release "F1" unterstützt. Erst im darauffolgenden funktionalen Release "F2" steht dieses BAPI nicht mehr zur Verfügung.
Auslaufphase eines BAPIs

Ist die Auslaufphase eines auf obsolet gesetzten BAPIs beendet, kann das ersetzte BAPI aus dem BOR entfernt werden. Ein obsoletes BAPI sollte möglichst zu Beginn eines neuen Releases gelöscht werden, um Entwicklern möglichst viel Zeit für die Umstellung auf das Nachfolge-BAPI zu geben.
Um ein BAPI zu löschen, ist wie folgt vorzugehen:
Löschen Sie die Methode aus dem BOR
Zeigen Sie hierzu im Business Object Builder den entsprechenden SAP-Business-Objekttyp im Änderungsmodus an. Öffnen Sie den Knoten Methoden. Positionieren Sie den Cursor auf das entsprechende BAPI und löschen Sie dieses über .
Löschen Sie den Funktionsbaustein, der das BAPI implementiert
Geben Sie hierzu im Function Builder den Namen des Funktionsbausteins im Feld Funktionsbaustein ein und wählen Sie anschließend .
Dokumentieren Sie im SAP-Hinweis 0107644 "Sammelhinweis für obsolete BAPIs ab Release 4.5A" die BAPIs, die in einem Release auf "obsolet" gesetzt wurden.