BeispieldokumentationBeispielprogramme mit synchronem BAPI-Aufruf Dieses Dokument in der Navigationsstruktur finden

 

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

Hinweis Hinweis

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

Ende des Hinweises

Achtung Achtung

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

Ende der Warnung.
Filterobjekttypen sind zur Laufzeit nicht bekannt

Syntax Syntax

  1. * 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.
    
Ende des Codes
Filterobjekttypen sind zur Laufzeit bekannt

Syntax Syntax

  1. * 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.
    
Ende des Codes