<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Example of customized BAPI in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-of-customized-bapi/m-p/3709244#M893050</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi suyog,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example Programs with Asynchronous BAPI Calls &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following example programs show how receivers are determined with asynchronous BAPI calls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Filter Object Types Are Not Known at Runtime &lt;/P&gt;&lt;P&gt;Receiver determination with business add-in &lt;/P&gt;&lt;P&gt;Filter object types are known at runtime&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function ALE_BAPI_GET_FILTEROBJECTS must be used if the application's filter object types are not known at runtime.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A COMMIT WORK must be executed in the program after the outbound function module of the generated BAPI-ALE interface has been called. The database commit at the end of the transaction is not sufficient. If a COMMIT WORK is not executed, the IDoc is created with the correct status but it will not be dispatched.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The IDocs created are locked until the called transaction has been completed. If you want to unlock them earlier, you can call the function module:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DEQUEUE_ALL releases all locked objects&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDI_DOCUMENT_DEQUEUE_LATER releases individual IDocs whose numbers have been transferred to the function module as parameter values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Filter Object Types Are Not Known at Runtime&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: filterobj_values like bdi_fobj occurs 0, &lt;/P&gt;&lt;P&gt;filterobj_types like bdi_fobjtype occurs 0,&lt;/P&gt;&lt;P&gt;bapi_logsys like bdi_logsys occurs 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;constants:&lt;/P&gt;&lt;P&gt;c_objtype_plant type c value &amp;#145;WERKS&amp;#146;,&lt;/P&gt;&lt;P&gt;c_objtype_langu type c value &amp;#145;SPRAS&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get filterobjects from ALE distribution model&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_BAPI_GET_FILTEROBJECTS&amp;#146;&lt;/P&gt;&lt;P&gt;exporting &lt;/P&gt;&lt;P&gt;object = &amp;#145;BUS1001&amp;#146;&lt;/P&gt;&lt;P&gt;method = &amp;#145;REPLICATEDATA&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;filterobjects = filterobj_types&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill filterobject values into table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at filterobj_types.&lt;/P&gt;&lt;P&gt;case filterobj_values-objtype.&lt;/P&gt;&lt;P&gt;when c_objtype_plant.&lt;/P&gt;&lt;P&gt;filterobj_values-objtype = c_objtype_plant.&lt;/P&gt;&lt;P&gt;filterobj_values-objvalue = &amp;#145;0002&amp;#146;.&lt;/P&gt;&lt;P&gt;when c_objtype_langu.&lt;/P&gt;&lt;P&gt;filterobj_values-objtype = c_objtype_langu.&lt;/P&gt;&lt;P&gt;filterobj_values-objvalue = &amp;#145;D&amp;#146;.&lt;/P&gt;&lt;P&gt;when others.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;append filterobj_values.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get receiver from ALE distribution model&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_ASYNC_BAPI_GET_RECEIVER&amp;#146;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;object = &amp;#145;BUS1001&amp;#146;&lt;/P&gt;&lt;P&gt;method = &amp;#145;REPLICATEDATA&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;filterobject_values = filterobj_values&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;error_in_filterobjects = 1 &lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call generated ALE interface function module &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;if not bapi_logsys[] is initial.&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_MATERIAL_REPLICATE_DATA&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Receiver determination with business add-in&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form routine implemented by SAP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM ALE_BFA_TEST_RECEIVERS &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ale_bfa_test_receivers TABLES receivers STRUCTURE bdi_logsys &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USING object TYPE swo_objtyp &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method TYPE swo_method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key1 LIKE tbbfatest-key1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key2 LIKE tbbfatest-key2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return_info LIKE syst. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;key1 and key2 are parameters regarding receiver determination &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;2 filter object types were defined by SAP: &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TEST_KEY1 &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TEST_KEY2 &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variables definition &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: w_filter_object_type TYPE bdi_flttyp, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_filter_object_type TYPE bdi_flttyp_tab, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filter_object_value TYPE bdi_fobj, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_filter_object_value TYPE bdi_fobj_tab, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receivers_output LIKE bdi_logsys OCCURS 0 WITH HEADER LINE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS: cl_ex_customer_filter DEFINITION LOAD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: my_exit TYPE REF TO if_ex_customer_filter. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 1) get filter object types for a BAPI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'ALE_BAPI_GET_FILTEROBJECTS' &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;object = object &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method = method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receiver_input = receivers &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobjects = t_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXCEPTIONS &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OTHERS = 2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return_info = syst. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXIT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 2) evaluate SAP filter objects &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT t_filter_object_type INTO w_filter_object_type. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE w_filter_object_type-objtype. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;evaluate delivered filter objects &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'TEST_KEY1'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING w_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TO w_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filter_object_value-objvalue = key1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND w_filter_object_value TO t_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'TEST_KEY2'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING w_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TO w_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filter_object_value-objvalue = key2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND w_filter_object_value TO t_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;customers defined filter objects &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN OTHERS. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCASE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 3) evaluate customer-defined filter objects &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT my_exit TYPE cl_ex_customer_filter. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD my_exit-&amp;gt;filtering &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;object = object &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method = method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key1 = key1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key2 = key2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobjtype = t_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHANGING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobjvalue = t_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 4) determine receivers for all filter objects &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'ALE_ASYNC_BAPI_GET_RECEIVER' &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;object = object &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method = method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receiver_input = receivers &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receivers = receivers_output &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobject_values = t_filter_object_value &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXCEPTIONS &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error_in_filterobjects = 1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OTHERS = 3. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return_info = syst. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXIT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receivers[] = receivers_output[]. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Methods Implemented by Customers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The following method was implemented by a customer with &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Business Add-In &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;1 filter object type was defined by customer: &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ZTEST_KEYS &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD if_ex_customer_filter~filtering. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;... &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: w_filterobjtype TYPE bdi_flttyp, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filterobjvalue TYPE bdi_fobj. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT filterobjtype INTO w_filterobjtype. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE w_filterobjtype-objtype. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'ZTEST_KEYS'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING w_filterobjtype TO w_filterobjvalue. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filterobjvalue-objvalue+0(3) = key1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filterobjvalue-objvalue+3(3) = key2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND w_filterobjvalue TO filterobjvalue. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN OTHERS. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCASE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Filter Object Types are Known at Runtime&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: filterobj_values like bdi_fobj occurs 0,&lt;/P&gt;&lt;P&gt;filterobj_types like bdi_fobjtype occurs 0,&lt;/P&gt;&lt;P&gt;bapi_logsys like bdi_logsys occurs 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobj_values-objtype = &amp;#145;KKBER&amp;#146;.&lt;/P&gt;&lt;P&gt;filterobj_values-objvalue = &amp;#145;0002&amp;#146;.&lt;/P&gt;&lt;P&gt;append filterobj_values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get receiver from ALE distribution model&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_ASYNC_BAPI_GET_RECEIVER&amp;#146;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;object = &amp;#145;BUS1010&amp;#146;&lt;/P&gt;&lt;P&gt;method = &amp;#145;REPLICATESTATUS&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;filterobject_values = filterobj_values&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;error_in_filterobjects = 1 &lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call generated ALE interface function module &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;if not bapi_logsys[] is initial.&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_DEBITOR_CREDITACC_REPLICATESTATUS&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see this links also...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04s/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04s/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="405443"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;karthik&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward me points if usefull&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 07 May 2008 09:44:35 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-07T09:44:35Z</dc:date>
    <item>
      <title>Example of customized BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-of-customized-bapi/m-p/3709242#M893048</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone give me example of customized BAPI? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards, &lt;/P&gt;&lt;P&gt;Suyog&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2008 08:49:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/example-of-customized-bapi/m-p/3709242#M893048</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-07T08:49:01Z</dc:date>
    </item>
    <item>
      <title>Re: Example of customized BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-of-customized-bapi/m-p/3709243#M893049</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See the below links i think it may useful  for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/BAPI/CustomBAPICreation2/page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/BAPI/CustomBAPICreation2/page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/BAPI/CustomBAPICreation/page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/BAPI/CustomBAPICreation/page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if it useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance&lt;/P&gt;&lt;P&gt;lakshmi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2008 08:54:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/example-of-customized-bapi/m-p/3709243#M893049</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-07T08:54:24Z</dc:date>
    </item>
    <item>
      <title>Re: Example of customized BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-of-customized-bapi/m-p/3709244#M893050</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi suyog,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example Programs with Asynchronous BAPI Calls &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following example programs show how receivers are determined with asynchronous BAPI calls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Filter Object Types Are Not Known at Runtime &lt;/P&gt;&lt;P&gt;Receiver determination with business add-in &lt;/P&gt;&lt;P&gt;Filter object types are known at runtime&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function ALE_BAPI_GET_FILTEROBJECTS must be used if the application's filter object types are not known at runtime.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A COMMIT WORK must be executed in the program after the outbound function module of the generated BAPI-ALE interface has been called. The database commit at the end of the transaction is not sufficient. If a COMMIT WORK is not executed, the IDoc is created with the correct status but it will not be dispatched.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The IDocs created are locked until the called transaction has been completed. If you want to unlock them earlier, you can call the function module:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DEQUEUE_ALL releases all locked objects&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDI_DOCUMENT_DEQUEUE_LATER releases individual IDocs whose numbers have been transferred to the function module as parameter values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Filter Object Types Are Not Known at Runtime&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: filterobj_values like bdi_fobj occurs 0, &lt;/P&gt;&lt;P&gt;filterobj_types like bdi_fobjtype occurs 0,&lt;/P&gt;&lt;P&gt;bapi_logsys like bdi_logsys occurs 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;constants:&lt;/P&gt;&lt;P&gt;c_objtype_plant type c value &amp;#145;WERKS&amp;#146;,&lt;/P&gt;&lt;P&gt;c_objtype_langu type c value &amp;#145;SPRAS&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get filterobjects from ALE distribution model&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_BAPI_GET_FILTEROBJECTS&amp;#146;&lt;/P&gt;&lt;P&gt;exporting &lt;/P&gt;&lt;P&gt;object = &amp;#145;BUS1001&amp;#146;&lt;/P&gt;&lt;P&gt;method = &amp;#145;REPLICATEDATA&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;filterobjects = filterobj_types&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill filterobject values into table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at filterobj_types.&lt;/P&gt;&lt;P&gt;case filterobj_values-objtype.&lt;/P&gt;&lt;P&gt;when c_objtype_plant.&lt;/P&gt;&lt;P&gt;filterobj_values-objtype = c_objtype_plant.&lt;/P&gt;&lt;P&gt;filterobj_values-objvalue = &amp;#145;0002&amp;#146;.&lt;/P&gt;&lt;P&gt;when c_objtype_langu.&lt;/P&gt;&lt;P&gt;filterobj_values-objtype = c_objtype_langu.&lt;/P&gt;&lt;P&gt;filterobj_values-objvalue = &amp;#145;D&amp;#146;.&lt;/P&gt;&lt;P&gt;when others.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;append filterobj_values.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get receiver from ALE distribution model&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_ASYNC_BAPI_GET_RECEIVER&amp;#146;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;object = &amp;#145;BUS1001&amp;#146;&lt;/P&gt;&lt;P&gt;method = &amp;#145;REPLICATEDATA&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;filterobject_values = filterobj_values&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;error_in_filterobjects = 1 &lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call generated ALE interface function module &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;if not bapi_logsys[] is initial.&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_MATERIAL_REPLICATE_DATA&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Receiver determination with business add-in&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form routine implemented by SAP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM ALE_BFA_TEST_RECEIVERS &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ale_bfa_test_receivers TABLES receivers STRUCTURE bdi_logsys &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USING object TYPE swo_objtyp &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method TYPE swo_method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key1 LIKE tbbfatest-key1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key2 LIKE tbbfatest-key2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return_info LIKE syst. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;key1 and key2 are parameters regarding receiver determination &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;2 filter object types were defined by SAP: &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TEST_KEY1 &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TEST_KEY2 &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variables definition &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: w_filter_object_type TYPE bdi_flttyp, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_filter_object_type TYPE bdi_flttyp_tab, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filter_object_value TYPE bdi_fobj, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_filter_object_value TYPE bdi_fobj_tab, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receivers_output LIKE bdi_logsys OCCURS 0 WITH HEADER LINE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS: cl_ex_customer_filter DEFINITION LOAD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: my_exit TYPE REF TO if_ex_customer_filter. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 1) get filter object types for a BAPI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'ALE_BAPI_GET_FILTEROBJECTS' &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;object = object &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method = method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receiver_input = receivers &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobjects = t_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXCEPTIONS &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OTHERS = 2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return_info = syst. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXIT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 2) evaluate SAP filter objects &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT t_filter_object_type INTO w_filter_object_type. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE w_filter_object_type-objtype. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;evaluate delivered filter objects &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'TEST_KEY1'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING w_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TO w_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filter_object_value-objvalue = key1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND w_filter_object_value TO t_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'TEST_KEY2'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING w_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TO w_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filter_object_value-objvalue = key2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND w_filter_object_value TO t_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;customers defined filter objects &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN OTHERS. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCASE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 3) evaluate customer-defined filter objects &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT my_exit TYPE cl_ex_customer_filter. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD my_exit-&amp;gt;filtering &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;object = object &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method = method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key1 = key1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key2 = key2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobjtype = t_filter_object_type &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHANGING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobjvalue = t_filter_object_value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt; Step 4) determine receivers for all filter objects &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'ALE_ASYNC_BAPI_GET_RECEIVER' &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;object = object &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method = method &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receiver_input = receivers &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receivers = receivers_output &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobject_values = t_filter_object_value &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXCEPTIONS &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error_in_filterobjects = 1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OTHERS = 3. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return_info = syst. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXIT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;receivers[] = receivers_output[]. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Methods Implemented by Customers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The following method was implemented by a customer with &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Business Add-In &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;1 filter object type was defined by customer: &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ZTEST_KEYS &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD if_ex_customer_filter~filtering. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;... &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: w_filterobjtype TYPE bdi_flttyp, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filterobjvalue TYPE bdi_fobj. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT filterobjtype INTO w_filterobjtype. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE w_filterobjtype-objtype. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'ZTEST_KEYS'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING w_filterobjtype TO w_filterobjvalue. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filterobjvalue-objvalue+0(3) = key1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_filterobjvalue-objvalue+3(3) = key2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND w_filterobjvalue TO filterobjvalue. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN OTHERS. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCASE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Filter Object Types are Known at Runtime&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: filterobj_values like bdi_fobj occurs 0,&lt;/P&gt;&lt;P&gt;filterobj_types like bdi_fobjtype occurs 0,&lt;/P&gt;&lt;P&gt;bapi_logsys like bdi_logsys occurs 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filterobj_values-objtype = &amp;#145;KKBER&amp;#146;.&lt;/P&gt;&lt;P&gt;filterobj_values-objvalue = &amp;#145;0002&amp;#146;.&lt;/P&gt;&lt;P&gt;append filterobj_values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get receiver from ALE distribution model&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_ASYNC_BAPI_GET_RECEIVER&amp;#146;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;object = &amp;#145;BUS1010&amp;#146;&lt;/P&gt;&lt;P&gt;method = &amp;#145;REPLICATESTATUS&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;filterobject_values = filterobj_values&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;error_in_filterobjects = 1 &lt;/P&gt;&lt;P&gt;error_in_ale_customizing = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call generated ALE interface function module &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;if not bapi_logsys[] is initial.&lt;/P&gt;&lt;P&gt;call function &amp;#145;ALE_DEBITOR_CREDITACC_REPLICATESTATUS&amp;#146;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;receivers = bapi_logsys&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see this links also...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04s/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04s/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="405443"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/78/21746a51ce11d189570000e829fbbd/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;karthik&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward me points if usefull&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2008 09:44:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/example-of-customized-bapi/m-p/3709244#M893050</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-07T09:44:35Z</dc:date>
    </item>
  </channel>
</rss>

