Here is the sample code:
DATA:
l_wa_proxy_invent TYPE zdt_nl_stock_inventories_stock, *---Proxy Structure
l_wa_output TYPE zmt_nl_stock_inventories, *---Output Data
l_i_proxy_invent TYPE zdt_nl_stock_inventories_s_tab. *---Table to pass to proxy
FIELD-SYMBOLS:
<l_fs_final> TYPE ty_final.
DATA:
l_o_proxy TYPE REF TO zco_l_nl_ops_proxy_stock_inven. *---Object for proxy class
*-Add Data to Proxy table
LOOP AT fp_i_final ASSIGNING <l_fs_final>.
IF <l_fs_final>-stock IS NOT INITIAL.
l_wa_proxy_invent-maitem = <l_fs_final>-matnr. *-----Material
l_wa_proxy_invent-maloc = <l_fs_final>-lgort. *-----Location
l_wa_proxy_invent-maavail_date = <l_fs_final>-hsdat. *-----Production date
l_wa_proxy_invent-maexp_date = <l_fs_final>-vfdat. *-----Best before date
l_wa_proxy_invent-maqty = <l_fs_final>-stock. *-----Stock
APPEND l_wa_proxy_invent TO l_i_proxy_invent.
ENDIF.
ENDLOOP.
IF NOT l_i_proxy_invent IS INITIAL.
l_wa_output-mt_nl_stock_inventories-stock_inventories =
l_i_proxy_invent.
TRY.
*-Create Proxy Object
CREATE OBJECT l_o_proxy.
CALL METHOD l_o_proxy->execute_asynchronous
EXPORTING
output = l_wa_output.
*Catch exceptions if any.
CATCH cx_ai_system_fault INTO v_sys_excep.
RETURN.
CATCH cx_ai_application_fault INTO v_app_excep.
RETURN.
ENDTRY.
COMMIT WORK.
ENDIF.