Hallo,
Wenn ich mir über die Transaktion BAPI die Implementierung einer Methode anschaue, sieht man da zum Teil recht seltsame Konstrukte, zum Beispiel bei der Methode Vendor.GetDetail:
Code: Alles auswählen.
begin_method getdetail changing container.
...
swc_get_element container 'CompanyCode' companycode.
...
end_method
Nach normalem ABAP (Objects) sieht das ja nicht aus. Wann wird denn exakt dieser Code zum Beispiel ausgeführt. Denn eine Implementierung einer BAPI erfolgt doch letztendlich
immer über einen remotefähigen FuBa, oder? Oder noch einfacher: wenn ich eine BAPI rufe, dann rufe ich einen RFC-fähigen FuBa.
Das bedeutet doch auch, dass ich in eigenen Programmen immer schreiben muss:
Oder?
D.h. ich habe selbst unter ABAP Objects nicht die Möglichkeit in etwa folgendes zu schreiben (was dem OOP-Ansatz entsprechen würde):
Code: Alles auswählen.
DATA vendor1 TYPE REF TO Vendor.
CALL METHOD vendor1->getdetail.
Wieso wurde das denn so umständlich gelöst? Denn in Beschreibungen über BAPIs steht immer, es gebe halt die Methode Vendor.GetDetail, im eigentlichen Code sieht das dann aber immer nach einem ganz schnöden Funktionsaufruf aus: BAPI_VENDOR_GETDETAIL. Oder hat es was mit der "RFC-Fähigkeit" von BAPIs zu tun?
Viele Grüße, Lars