вот пример из sdn

все достаточно очевидно.
I created the following fm in R/3 to be called from BW:
FUNCTION z_read_table.
*"----------------------------------------------------
""local Interface:
*" IMPORTING
*" VALUE(IP_TABNAME) TYPE TABNAME
*" EXPORTING
*" VALUE(EP_TAB) TYPE ZBP0_TAB
*"---------------------------------------------------
DATA: it_table TYPE REF TO data,
l_line TYPE zbp0_struc.
FIELD-SYMBOLS: <it_tab> TYPE STANDARD TABLE,
<ls_tab> TYPE ANY.
* create internal table
CREATE DATA it_table
TYPE STANDARD TABLE OF (ip_tabname).
ASSIGN it_table->* TO <it_tab>.
* read data
SELECT * INTO TABLE <it_tab> FROM (ip_tabname).
* assign data
LOOP AT <it_tab> ASSIGNING <ls_tab>.
CALL FUNCTION 'SO_STRUCT_TO_CHAR'
EXPORTING
ip_struct = <ls_tab>
IMPORTING
ep_string = l_line.
APPEND l_line TO ep_tab.
ENDLOOP.
ENDFUNCTION.
In BW I am calling it with
CALL FUNCTION Z_READ_TABLE destination 'DEST'
IMPORTING ip_tabname = 'ZTABLE'
EXPORTING ep_tab = itab.
Hope this helps!