on 12-02-2008 12:20 PM
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
rsiccont is the table
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.