‎2012 Mar 19 9:42 AM
Hi experts,
I am beginner in ABAP object, i am working with data warehouse and i would like to use "dynamical" function or report to read content of the master data ( e.g. content of text table /BI0/TPLANT, InfoObject SPLANT ).
The similar solution as RSEC_F4HELP_CHAVL, but i need to returns table, no window
i found the methods, classes below
CALL METHOD cl_rsmd_rs_factory=>get_flat_reader
EXPORTING
i_chanm = 'SPLANT'
i_langu = 'E'
IMPORTING
e_r_rsmd_rs = l_r_rsmd_rs.
CALL METHOD l_r_rsmd_rs->read_meta_data
IMPORTING
e_t_metadata = i_t_metadata
e_t_readmodes = i_t_readmodes.
CALL METHOD l_r_rsmd_rs->read_data
IMPORTING
e_r_data = l_r_t_periv
e_th_position = l_th_position.
Maybe i am near, but the code returns error in
- > CALL METHOD l_r_rsmd_rs->read_data
Thanks in advance
Martin
‎2012 Mar 19 10:18 AM
Hi Martin,
looks like a very interesting approach, to read the text-tables with a set of standard classes.
Usually, most developers selects directly the /BI*/T-Tables.
Could you explain, what error is returned?
Kind regards,
Hendrik
‎2012 Mar 19 11:30 AM
‎2012 Mar 19 1:42 PM
Hi Martin,
just look at my changed coding:
{code}
FIELD-SYMBOLS:
<meta> TYPE rsmd_rs_sx_metadata.
DATA:
l_r_rsmd_rs TYPE REF TO if_rsmd_rs,
lr_data TYPE REF TO data,
lt_req TYPE rsmd_rs_t_req,
ls_req TYPE rsmd_s_req,
lt_pos TYPE rsmd_rs_th_iobjnm_pos,
lt_meta TYPE rsmd_rs_t_meta_data.
cl_rsmd_rs_factory=>get_flat_reader(
EXPORTING
i_infoprov = <yourinforprovider>
i_chanm = <requestedinfoobject>
i_langu = sy-langu
IMPORTING
e_r_rsmd_rs = l_r_rsmd_rs
).
* Determine, which objects can be found
l_r_rsmd_rs->read_meta_data( IMPORTING e_t_metadata = lt_meta ).
* Set the requested objects
LOOP AT lt_meta ASSIGNING <meta>.
ls_req-iobjnm = <meta>-iobjnm.
ls_req-role = <meta>-role.
ls_req-chavl_txtsh_req = abap_true.
APPEND ls_req TO lt_req.
ENDLOOP.
* Submit the internal table
l_r_rsmd_rs->set_requested_iobjnms( lt_req ).
l_r_rsmd_rs->read_data(
IMPORTING
e_r_data = lr_data
e_th_position = lt_pos
).
{code}
First, you have to say, in which context (infoprovider) you request the masterdata. Then you have to specify, which characters should be displayed in the result table.
You can specify, in which form the infoobjects will be displayed. The fields CHAVL_INT_REQ, CHAVL_INT_NC_REQ, CHAVL_EXT_REQ, CHAVL_EXT_NC_REQ, CHAVL_EXT_MIX_REQ, CHAVL_TXTSH_REQ, CHAVL_TXTMD_REQ, CHAVL_TXTLG_REQ and CHAVL_SID_REQ determines which format will be used.
Kind regards,
Hendrik
‎2012 Mar 21 10:48 AM
Hi Hendrik,
i have already resolved it, part below was missing
l_r_rsmd->set_requested_iobjnms ( i_t_req_iobjnms = l_t_req_iobjnm )
You wrote it too above
Thanks
Martin