In diesem fiktiven Beispiel wird folgendes BAPI verwendet, um den Standardpreis eines Materials lesen zu können:
bapi_material_getprice
importing
material like mara-matnr
exporting
material_price like bapi_material_price.
Die externe Struktur bapi_material_price hat folgende Felder:
Felder in der externen BAPI-Struktur
Feld |
Bedeutung |
Datenelement |
Domäne |
currency_iso |
ISO-Währungscode |
isocd |
isocd |
currency |
Währungscode |
waers |
waers |
amount |
Betrag |
bapimatprice |
bapicurr |
Ein Anwendungsprogrammierer im System R/3, der dieses BAPI benutzen möchte, verwendet in seinem Programm die interne Struktur mat_preis bestehend aus den folgenden Feldern:
Felder in der internen Arbeitsstruktur
Feld |
Bedeutung |
Datenelement |
Domäne |
matnr |
Materialnummer |
matnr |
matnr |
waers |
Währungscode |
waers |
waers |
stprs |
Stückpreis |
stprs |
strps |
Die BAPI-Struktur bapi_material_price enthält einen ISO-Währungscode und einen Währungsbetrag. Nach Aufruf des BAPIs muß der Anwendungsprogrammierer diese Felder in das intern im R/3-System verwendete Format umwandeln, um mit den Feldern weiterarbeiten zu können.
Über die Funktion Feldzuweisungsbaustein generieren (siehe Abschnitt
Mapping zwischen internen/externen Datenformaten) läßt sich der Anwendungsentwickler den Funktionsbaustein map2i_bapi_material_price_to_mat_preis generieren, der die Währungs- und Betragsfelder konvertiert. Dieser Funktionsbaustein hat folgende Schnittstelle:function map2i_bapi_material_price_to_mat_preis
importing
external structure bapi_material_price
changing
internal structure mat_preis
exceptions
error_during_iso_convertion
error_converting_currency_amount.
Das Anwendungscoding könnte nun folgendermaßen aussehen:
...
data: matnr like mara-matnr,
preis like mat_preis,
bapi_preis like bapi_material_preis.
...
* Aufruf des BAPIs
Call function bapi_material_getprice
exporting
material = matnr
changing
material_price = bapi_preis.
* Abbilden und Konvert. des Ergebnisses auf internes Format
call function map2i_bapi_material_price_to_mat_preis
exporting
external = bapi_preis
changing
internal = preis.
* exceptions
* error_during_iso_convertion
* error_during_currency_amount_conversion
preis-matnr = matnr.
...