Thanks David for a quick reply !
I could manage to avoid # values in WebI prompt using BAdI implementation, here is the brief:
Problem:
WebI report prompt (which shows BEx variable) list of values shows blanks or # . Rrequirement was to avoid these blanks or #
Environment:
BW 7.3
BO 4.0
BW Cube > BEx Query > OLAP Connection > WebI report
Solution:
InfoObject Level1 in BW had # values in masterdata, this could not be deleted since it was in use with other Cubes.
Vaurable Var_Level1 displays # when pressed F4 running BEx query and in list of values in WebI report prompt.
I implemented BAdI on Level1 info object and variable Var_Level1.
Steps to implement BAdI are as in following link
BEx Query - Control the values which are shown on F4
Used following code to elimitate #.
METHOD IF_RSR_VARIABLE_F4_RESTRICT~GET_RESTRICTION_FLAT.
DATA: l_s_range LIKE LINE OF c_t_range.
DATA: l_var_range LIKE LINE OF i_t_var_range.
DATA: IT_MZLEVELS TYPE TABLE OF /BIC/MZLEVELS,
WA_MZLEVELS LIKE LINE OF IT_MZLEVELS.
DATA: L_ZLEVEL1 TYPE /BIC/OIZEVEL1.
IF i_vnam EQ 'ZV_LEVEL1'.
SELECT /BIC/ZLEVEL1
FROM /BIC/MZLEVELS
INTO CORRESPONDING FIELDS OF TABLE IT_MZLEVELS
WHERE OBJVERS = 'A'.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
SORT IT_MZLEVELS BY /BIC/ZLEVEL1.
DELETE ADJACENT DUPLICATES FROM IT_MZLEVELS COMPARING /BIC/ZCLV1GP.
DELETE IT_MZLEVELS WHERE /BIC/ZLEVEL1 = ''.
l_s_range-iobjnm = i_iobjnm.
l_s_range-sign = 'I'.
l_s_range-option = 'EQ'.
LOOP AT IT_MZLEVELS INTO WA_MZLEVELS.
l_s_range-low = WA_MZLEVELS-/BIC/ZLEVEL1.
APPEND l_s_range TO c_t_range.
ENDLOOP.
ENDIF.
- ENDMETHOD.