Bevor ich es vergesse, das hier zur Info:
http://www.tricktresor.de/blog/kundenfe ... r-fuellen/
BAPI bedeutet in erster Linie, dass eine Funktion mit fest definiertem und unveränderlichen Funktionsumfang zur Verfügung gestellt wird.
Ändert sich die Funktionalität oder die Schnittstelle, dann werden sie nicht an den vorhandenen BAPI "angehängt", sondern der BAPI wird kopiert und erhält einen neuen Namen.
Die Frage ist jetzt: Musst du als Addon-Hersteller einen BAPI zur Verfügung stellen, den dann deine Kunden nutzen oder sollst du einfach einen Baustein erstellen, der eine bestimmte Funktionalität zur Verfügung stellt?
Im ersten Fall musst du dann tatsächlich einen Baustein (=BAPI) mit fest definierter Schnittstelle programmieren und die evtl. angehängten Append-Felder separat behandeln. Wenn du es dir kompliziert machen möchtest.
Wenn du es dir einfach machen möchtest und im zweiten Fall, nimmst du als Eingabeparameter einfach die DB-Struktur inklusive Append-Felder.
Das ganze Gehampel mit dem EXTENSIONIN-Parametern ist wirklich gruselig und hat m.W. nach nur den Hintergrund, dass der BAPI auch dann funktionieren muss, wenn in dem einen System 3 Append-Felder vorhanden sind und in dem anderen System keine (oder umgekehrt). Die Schnittstelle ist also immer gleich.
Je nachdem, was du wirklich machen sollst, kannst du es dir also kompliziert oder einfach machen.