Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How to read dynamically InfoObject ( text table), methods in DataWarehouse

Former Member
0 Likes
1,280

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

4 REPLIES 4
Read only

hendrik_brandes
Contributor
0 Likes
808

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

Read only

0 Likes
808

The exception 'CX_RSR_PROPAGATE_X' was raised

Read only

0 Likes
808

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

Read only

0 Likes
808

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