2008 Feb 19 11:52 PM
Hi Gurus,
I get the data into an internal table itab which has field that contains the infoobjects names. Later I have to pass this value to the function module which has type like g_s_sfc which is of type rsdri_th_sfc -- structure.
This itab-iobjnm = g_th_sfc
In the function module RSDRI_INFOPROV_READ., I can only pass g_th_sfc. But this is of type structure.
how do I assign the values of itab-iobjnm to g_th_sfc. I tried creating a field symbol and then assigning but still does'nt work.
Please advise, your help is greatful to me.
Thanks,
Prashant.
Hi Gurus,
I get the data into an internal table itab which has field that contains the infoobjects names. Later I have to pass this value to the function module which has type like g_s_sfc which is of type rsdri_th_sfc -- structure.
This itab-iobjnm = g_th_sfc
In the function module RSDRI_INFOPROV_READ., I can only pass g_th_sfc. But this is of type structure.
how do I assign the values of itab-iobjnm to g_th_sfc. I tried creating a field symbol and then assigning but still does'nt work.
Please advise, your help is greatful to me.
Thanks,
Prashant.
2008 Feb 20 12:09 AM
Hi Prashant,
Can you show your code and also what the error is.
Regards,
Atish
2008 Feb 20 12:18 AM
***************************************************
DATA: BEGIN OF line occurs 0,
infocube TYPE RSDCUBEIOBJ-INFOCUBE,
iobjnm TYPE RSDCUBEIOBJ-IOBJNM,
drilevel TYPE /obt/iobj-drilevel,
alternative type /obt/iobj-alternative,
END OF line.
DATA : FLAG TYPE C.
DATA : FLAG_LEVEL_1 type c.
DATA itab LIKE SORTED TABLE OF line WITH UNIQUE KEY table_line.
*DATA itab LIKE LINE.
DATA itab1 LIKE LINE OCCURS 0 WITH HEADER line.
DATA line_wa like line.
DATA itab1_wa like line.
DATA lin TYPE i.
DATA:
g_s_data TYPE gt_s_data,
g_s_sfc TYPE rsdri_s_sfc,
g_th_sfc TYPE rsdri_th_sfc.
SELECT finfocube giobjnm gdrilevel galternative
INTO CORRESPONDING FIELDS OF TABLE line
FROM RSDCUBEIOBJ as F
INNER JOIN /OBT/IOBJ as G
on fiobjnm = giobjnm
where f~objvers = 'A'
and g~tlogo = 'CUBE'.
sort line by infocube drilevel ALTERNATIVE.
loop at line .
move-corresponding line to line_wa .
at new infocube.
CLEAR : FLAG, FLAG_LEVEL_1.
if line_wa-drilevel <> 1.
FLAG_LEVEL_1 = 'X'.
continue.
endif.
endat.
CHECK FLAG_LEVEL_1 IS INITIAL.
case line_wa-drilevel.
when 1.
move-corresponding line_wa to itab1_wa.
append itab1_wa to itab1.
when 2.
if line_wa-alternative = 'PRIMARY'.
move-corresponding line_wa to itab1_wa.
append itab1_wa to itab1.
FLAG = 'X'.
continue.
endif.
if line_wa-alternative = 'SECONDARY'.
IF FLAG <> 'X'.
move-corresponding line_wa to itab1_wa.
append itab1_wa to itab1.
continue.
endif.
ENDIF.
when others.
endcase.
endloop.
**************************************************************
Instead of hard coding here we have to pass the values of itab1-iobjnm to g_s_sfc-chanm
*
0FISCYEAR
*CLEAR g_s_sfc.
--- name of characteristic
*g_s_sfc-chanm = '0FISCYEAR'.
--- name of corresponding column in G_T_DATA
*g_s_sfc-chaalias = 'FISCYEAR'.
--- no ORDER-BY
*g_s_sfc-orderby = 0.
--- include into list of characteristics
*INSERT g_s_sfc INTO TABLE g_th_sfc. ---> must be passed to the function module
*******************************************************
g_end_of_data = rs_c_false.
g_first_call = rs_c_true.
WHILE g_end_of_data = rs_c_false.
loop at itab1.
CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
i_infoprov = itab1-infocube
i_th_sfc = g_th_sfc --> type conflict error comes because here the
i_th_sfk = g_th_sfk values of itab1-iobjnm must be passed.
i_t_range = g_t_range
i_reference_date = sy-datum
i_t_requid = g_t_requid
i_save_in_table = rs_c_false
i_save_in_file = rs_c_false
i_packagesize = 50000
i_use_db_aggregation = rs_c_false
i_use_aggregates = rs_c_false
i_authority_check = rsdrc_c_authchk-read
IMPORTING
e_t_data = g_t_data
e_end_of_data = g_end_of_data
CHANGING
c_first_call = g_first_call
EXCEPTIONS
illegal_input = 1
illegal_input_sfc = 2
illegal_input_sfk = 3
illegal_input_range = 4
illegal_input_tablesel = 5
no_authorization = 6
ncum_not_supported = 7
illegal_download = 8
illegal_tablename = 9
OTHERS = 11.
IF sy-subrc <> 0.
BREAK-POINT. "#EC NOBREAK
EXIT.
ENDIF.
ENDLOOP.
for the sake of the example: print returned data
PERFORM print_result.
ENDWHILE.
*************************************************
I have given the comments where required please help.
2008 Feb 20 4:40 AM
data: g_th_sfk type RSDRI_TH_SFK.
CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
i_infoprov = itab1-infocube
i_th_sfc = g_th_sfc
i_th_sfk = g_th_sfk
i_t_range = g_t_range
.....
...
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |