Anfang des Inhaltsbereichs

Beispielprogramme mit synchronem BAPI-Aufruf  Dokument im Navigationsbaum lokalisieren

Die folgenden Beispielprogramme erläutern Ihnen die Empfängerermittlung mit synchronem BAPI-Aufruf.

 

Hinweis

Die Verwendung des Funktionsbausteins ALE_BAPI_GET_FILTEROBJECTS ist optional und muß nur dann erfolgen, wenn die Filterobjekttypen zur Laufzeit nicht bekannt sind.

Achtung

Durch den synchronen RFC wird ein Datenbankcommit abgesetzt, d. h. Datenbankänderungen, die vor dem RFC gemacht wurden, können nicht mehr zurückgerollt werden.

Filterobjekttypen sind zur Laufzeit nicht bekannt

* data declaration

data: filterobj_values like bdi_fobj occurs 0,
filterobj_types like bdi_fobjtype occurs 0,
bapi_server like bdbapidest occurs 0.

constants:
c_objtype_plant type c value ‘WERKS’,
c_objtype_langu type c value ‘SPRAS’.

* get filterobjects from ALE distribution model

call function ‘ALE_BAPI_GET_FILTEROBJECTS’
exporting
object = ‘BUS1001’
method = ‘GETDETAIL’
tables
filterobjects = filterobj_types
exceptions
error_in_ale_customizing = 1.

* fill filterobject values into table

loop at filterobj_types.
case filterobj_values-objtype.
when c_objtype_plant.
filterobj_values-objtype = c_objtype_plant.
filterobj_values-objvalue = ‘0002’.
when c_objtype_langu.
filterobj_values-objtype = c_objtype_langu.
filterobj_values-objvalue = ‘D’.
when others.
endcase.
append filterobj_values.
endloop.

* get receiver from ALE distribution model

call function ‘ALE_SYNC_BAPI_GET_RECEIVER’
exporting
object = ‘BUS1001’
method = ‘GETDETAIL’
tables
receivers = bapi_server
filterobjects_values = filterobj_values
exceptions
error_in_filterobjects = 1
error_in_ale_customizing = 2.

* call synchronous BAPI locally/remotely

if sy-subrc = 0.
if not bapi_server[] is initial.
loop at bapi_server.
call function ‘BAPI_MATERIAL_GET_DETAIL’
destination bapi_server-rfc_dest
...
endloop.
else.
call function ‘BAPI_MATERIAL_GET_DETAIL’
...
endif.

endif.

 

Filterobjekttypen sind zur Laufzeit bekannt

* data declaration

data: filterobj_values like bdi_fobj occurs 0,
filterobj_types like bdi_fobjtype occurs 0,
bapi_server like bdibapidest occurs 0.

* fill filterobject values into table

filterobj_values-objtype = ‘KKBER’.
filterobj_values-objvalue = ‘0002’.
append filterobj_values.

* get receiver from ALE distribution model

call function ‘ALE_SYNC_BAPI_GET_RECEIVER’
exporting
object = ‘BUS1010’
method = ‘GETSTATUS’
tables
receivers = bapi_server
filterobjects_values = filterobj_values
exceptions
error_in_filterobjects = 1
error_in_ale_customizing = 2.

* call synchronous BAPI locally/remotely

if sy-subrc <> 0.
if not bapi_server[] is initial.
loop at bapi_server.
call function ‘BAPI_DEBITOR_CREDITACC_GETSTATUS’
destination bapi_server-rfc_dest
...
endloop.
else.
call function ‘BAPI_DEBITOR_CREDITACC_GETSTATUS’
...
endif.

endif.