cancel
Showing results for 
Search instead for 
Did you mean: 

How to get DTP selection values in Transformation.

Former Member
0 Kudos

Hi,

I am loadin a cube through DTP.

This DTP is always executed manually by selection values. (say 0CALMNOTH = 1.2007 to 6.2008).

I would like to use this selection values in the transformation routine to cube.

Please let me know, how to get selection values in transformation?

Thanks in advance for your help.

Regards,

Suresh Muthuramalingam

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

rsiccont is the table

Former Member
0 Kudos

Hi Jerry ,

it looks like you have decent knowlege about the new dtp loading process.

I am looking for a table containing all filter values per InfoObject and DTP. I need this for

documentation purposes. So it is not required during runtime but any time else.

If you can help me please post a note

Thanks

Andreas

Former Member
0 Kudos

I've never isolated where they're located. The selection fields (N_T_SELTAB) are in a table that is an attribute of the class CL_RSBC_FILTER. In looking at the setter and getter methods of that class, it is not obvious to me how they're determined.

The above ABAP program, instantiating the class, is the best that I've come up with.

If you ever find it out, I'd love to know

Former Member
0 Kudos

Yes, you can do it in a start routine, and use that in a global variable.

The only key you have in the start routine is request. You can use that to get the DTP (LOGDPID). Then with that you can get the DTP filter values.

Here is a standalone program showing how to do it.

REPORT  zz_print_dtp_filter.


PARAMETERS: request            TYPE RSREQUNR DEFAULT 'DTPR_4B67BH1XA4LG7NMQDUCVWAFG7'.


DATA:
  l_r_rsbk_dtp                      TYPE REF TO cl_rsbk_dtp,
  l_r_rsbc_filter                   TYPE REF TO cl_rsbc_filter,
  l_r_rsbk_dtp_a                    TYPE REF TO cl_rsbk_dtp_a,
  l_s_rsbk_select                   TYPE rsbk_s_select,
  l_v_logdpid                       TYPE rslogdpid.


START-OF-SELECTION.
  SELECT SINGLE r~logdpid INTO l_v_logdpid
       FROM rsreqdone AS r
         INNER JOIN rsbkdtpt AS t
            ON t~dtp = r~logdpid
       WHERE r~rnr = request
       AND t~langu = sy-langu.


* Factory method to create DTP Object
  l_r_rsbk_dtp = cl_rsbk_dtp=>factory( l_v_logdpid ).

* Get object reference to active version
  l_r_rsbk_dtp_a ?= l_r_rsbk_dtp->get_obj_ref_objvers( rs_c_objvers-active ).

* Get reference to DTP's filter object
  CALL METHOD l_r_rsbk_dtp_a->if_rsbk_dtp_display~get_obj_ref_filter
    RECEIVING
      r_r_filter = l_r_rsbc_filter.

* Print filter criteria
  LOOP AT l_r_rsbc_filter->n_t_seltab INTO l_s_rsbk_select.
    WRITE /: l_s_rsbk_select-field,
             l_s_rsbk_select-sign,
             l_s_rsbk_select-option,
             l_s_rsbk_select-low,
             l_s_rsbk_select-high,
             l_s_rsbk_select-sel_type.
    SKIP.
  ENDLOOP.

0 Kudos

In NetWeaver 7.50 ( and probably before ), there is the program RSBK_DTP_SHOW_FILTER that shows DTP filters.

best regards

Former Member
0 Kudos

Hi,

Write a Routine for the same. Then restrict the values for the particular field, and then onl these values will be taken in from the PSA, if you are writing a Start Routine.

Or, if you want all values to come, but only these values to go till the target, write an End Routine.

You can check it thru an "if" condition. If the data is between the dates or parameters that you want, then the data or source package should be loaded. Or else it should not..Something like this should help.

But, you said you are doing it at the DTP level, only those records will be processed which come out of the DTP.. Then why coding.. Is it that you do not want the DTP to do the filtering ?

Edited by: Vishal Sanghvi on Dec 2, 2008 1:40 PM