Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Anwendung auf die standardisierten BAPIs  Dokument im Navigationsbaum lokalisieren

Im folgenden wird für jedes standardisierte BAPI dargestellt, welche Vorkehrungen vom BAPI-Entwickler getroffen werden sollten, um dieses BAPI sinnvoll für die Kundenerweiterung nutzen zu können. Diese Ausführungen stellen eine Empfehlung dar, von welcher in begründeten Fällen abgewichen werden kann.

Hinweis

Fällt das zu erweiternde BAPI nicht in die Kategorie der standardisierten BAPIs, so sollten die Empfehlungen desjenigen standardisierten BAPIs eingehalten werden, welches diesem BAPI vom Charakter her am ähnlichsten ist.

GetList()

      Ein GetList()-BAPI sollte einen ExtensionIn-Parameter besitzen, um dem Kunden die Möglichkeit zu geben, die Selektionsparameter zu erweitern.

      Es wird ein ExtensionOut-Parameter benötigt, damit zusätzliche Werte zurückgegeben werden können.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es sind beide BAdIs zur Verfügung zu stellen, da Datenprüfungen notwendig sein können und der ExtensionOut-Parameter gefüllt werden kann.

      Das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING ist nicht zu programmieren, da keine Daten in erweiterte Tabellen geschrieben werden.

GetDetail()

      Es sollte ein ExtensionIn-Parameter angelegt werden, um die Definition zusätzlicher Filterkriterien zu erlauben, welche den Umfang der Details festlegen.

      Es wird ein ExtensionOut-Parameter benötigt, damit zusätzliche Detailwerte zurückgegeben werden können.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es sind beide BAdIs zur Verfügung zu stellen, da Datenprüfungen notwendig sein können und der ExtensionOut-Parameter gefüllt werden kann.

      Das Auslesen des ExtensionIn-Parameters per MOVE-CORRESPONDING ist nicht zu programmieren, da keine Daten in erweiterte Tabellen geschrieben werden.

Create() und CreateFromData()

      Ein Create()-BAPI sollte einen ExtensionIn-Parameter besitzen, um dem Kunden die Möglichkeit zu geben, zusätzliche Felder an dem anzulegenden Objekt zu definieren.

      Ein ExtensionOut-Parameter wird nur benötigt, falls neben den erzeugten Schlüsseln und dem Return-Parameter zusätzliche Export-Parameter vorhanden sind. Dies ist in erster Linie dann der Fall, wenn generisch neue Tabellen im BAPI erzeugt werden.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es sind beide BAdIs zur Verfügung zu stellen. Einerseits muss der Kunde die Möglichkeit haben, Datenprüfungen durchzuführen, andererseits kann er von SAP nicht vorgedachte Tabellen für das anzulegende Teilobjekt definiert bzw. erweitert haben, welche im zweiten BAdI gefüllt werden müssen.

      Für jede dem anzulegenden Objekt zugeordnete Tabelle, für die eine Table Extension definiert wurde, muss das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING programmiert werden.

Change()

      Ein Change()-BAPI sollte einen ExtensionIn-Parameter besitzen, da der Kunde zusätzliche Felder an dem zu ändernden Objekt definiert haben kann.

      Ein ExtensionOut-Parameter wird nur benötigt, falls neben dem Return-Parameter zusätzliche Export-Parameter vorhanden sind. Dies sollte allerdings die Ausnahme sein.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es sind beide BAdIs zur Verfügung zu stellen. Einerseits muss der Kunde die Möglichkeit haben, Datenprüfungen durchzuführen andererseits kann er zusätzliche Tabellen für das anzulegende Objekt definiert haben, deren Werte im zweiten BAdI geändert werden müssen.

      Das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING ist nicht zu programmieren, da es nicht sinnvoll ist, die erweiterten Felder bedingungslos zu überschreiben.

Cancel()

      Es ist kein ExtensionIn-Parameter notwendig, da in der Regel nur die Schlüsselfelder des Objekte an das BAPI übergeben werden.

      Sollen zusätzliche Detailwerte zurückgegeben werden können, muss ein ExtensionOut-Parameter angelegt werden. Dies sollte allerdings die Ausnahme darstellen.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es ist maximal nur das zweite BAdI zur Verfügung zu stellen, damit Daten aus Kundentabellen gelöscht oder der ExtensionOut-Parameter gefüllt werden kann.

      Das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING ist nicht zu programmieren, da keine Daten in erweiterte Tabellen geschrieben werden.

Delete() und Undelete()

      Es ist kein ExtensionIn-Parameter notwendig, da in der Regel nur die Schlüsselfelder des Objekte an das BAPI übergeben werden.

      Sollen zusätzliche Detailwerte zurückgegeben werden können, muss ein ExtensionOut-Parameter angelegt werden. Dies sollte allerdings die Ausnahme darstellen.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es ist maximal nur das zweite BAdI zur Verfügung zu stellen, damit Daten aus Kundentabellen gelöscht oder der ExtensionOut-Parameter gefüllt werden kann.

      Das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING ist nicht zu programmieren, da keine Daten in erweiterte Tabellen geschrieben werden.

Add<Teilobjekt>()

      Ein Add<Teilobjekt>()-BAPI sollte einen ExtensionIn-Parameter besitzen, um dem Kunden die Möglichkeit zu geben, zusätzliche Felder an dem anzulegenden Teilobjekt zu definieren.

      Ein ExtensionOut-Parameter wird nur benötigt, falls neben den erzeugten Schlüsseln und dem Return-Parameter zusätzliche Export-Parameter vorhanden sind. Dies ist in erster Linie dann der Fall, wenn generisch neue Tabellen im BAPI erzeugt werden.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es sind beide BAdIs zur Verfügung zu stellen. Einerseits muss der Kunde die Möglichkeit haben, Datenprüfungen durchzuführen, andererseits kann er von SAP nicht vorgedachte Tabellen für das anzulegende Teilobjekt definiert bzw. erweitert haben, welche im zweiten BAdI gefüllt werden müssen.

      Für jede dem anzulegenden Teilobjekt zugeordnete Tabelle, für die eine Table Extension definiert wurde, muss das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING programmiert werden.

Remove<Teilobjekt>()

      Es ist kein ExtensionIn-Parameter notwendig, da nur die das Teilobjekt identifizierenden Werte an das BAPI übergeben werden.

      Sollen zusätzliche Detailwerte zurückgegeben werden können, muss ein ExtensionOut-Parameter angelegt werden. Dies sollte allerdings die Ausnahme darstellen.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es ist maximal nur das zweite BAdI zur Verfügung zu stellen, damit Daten aus Kundentabellen gelöscht oder der ExtensionOut-Parameter gefüllt werden kann.

      Das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING ist nicht zu programmieren, da keine Daten in erweiterte Tabellen geschrieben werden.

Replicate()

      Ein Replicate()-BAPI sollte einen ExtensionIn-Parameter besitzen, um dem Kunden die Möglichkeit zu geben, die Selektionsparameter zu erweitern.

      Es wird ein ExtensionOut-Parameter benötigt, damit zusätzliche Werte zurückgegeben werden können.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es sind beide BAdIs zur Verfügung zu stellen, da Datenprüfungen notwendig sein können und der ExtensionOut-Parameter gefüllt werden kann.

      Das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING ist nicht zu programmieren, da keine Daten in erweiterte Tabellen geschrieben werden.

SaveReplica()

      Ein SaveReplica()-BAPI sollte einen ExtensionIn-Parameter besitzen, um dem Kunden die Möglichkeit zu geben, Objekte mit zusätzlichen Feldern zu replizieren.

      Ein ExtensionOut-Parameter wird nur benötigt, falls neben den erzeugten Schlüsseln und dem Return-Parameter zusätzliche Export-Parameter vorhanden sind. Dies ist in erster Linie dann der Fall, wenn generisch neue Tabellen im BAPI erzeugt werden.

      Für jede Datenbanktabelle, die der BAPI-Entwickler als sinnvoll erweiterbar erachtet, sollte eine BAPI Table Extension angelegt werden. In jedem Fall sind alle im BAPI verwendeten Table Extensions in der Dokumentation zu den Extension-Parametern aufzuführen.

      Es sind beide BAdIs zur Verfügung zu stellen. Einerseits muss der Kunde die Möglichkeit haben, Datenprüfungen durchzuführen, andererseits kann er von SAP nicht vorgedachte Tabellen für das anzulegende Teilobjekt definiert bzw. erweitert haben, welche im zweiten BAdI gefüllt werden müssen.

      Ob das Auslesen des ExtensionIn-Parameters per MOVE CORRESPONDING zu programmieren ist, hängt von der Art des SaveReplica()-BAPIs ab:

       Sollen die zu replizierenden Objekte vollständig, ohne Rücksicht auf eventuell bestehende Daten, gespeichert werden, ist für jede Tabelle, der eine BAPI Table Extension zugeordnet wurde, das Auslesen zu programmieren.

       Sollen nur einzelne Felder des zu replizierenden Objektes in Abhängigkeit von bestimmten Bedingungen übernommen werden, darf das Auslesen nicht programmiert werden.

 

Ende des Inhaltsbereichs