cancel
Showing results for 
Search instead for 
Did you mean: 

Calling BW query in ABAP function module

former_member381146
Participant
0 Kudos

Hi Experts,

My requirement is to retrieve data from BW query. The selection screen of BW query contains sold-to party (select-option) and fiscal year (parameter).

The query returns gross sales figures for sold-to party in specified fiscal year.

When tried executing query using the function module 'RRW3_GET_QUERY_VIEW_DATA', the sy-subrc is returned 5 (Invalid input).

The parameters are filled as follows:

gs_parameters-name  = 'VAR_NAME_2'.

gs_parameters-value = '0P_CALYE'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_SIGN_2'.

gs_parameters-value = 'I'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_OPERATOR_2'.

gs_parameters-value = 'EQ'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_VALUE_LOW_EXT_2'.

gs_parameters-value = '2011'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_VALUE_LOW_2'.

gs_parameters-value = '2011'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_VALUE_HIGH_EXT_1'.

gs_parameters-value = iv_year.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

* Sold to party

gs_parameters-name  = 'VAR_NAME_1'.

gs_parameters-value = 'VSDVD_0SOLD_TO_MS'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_SIGN_1'.

gs_parameters-value = 'I'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_OPERATOR_1'.

gs_parameters-value = 'BT'.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_VALUE_LOW_EXT_1'.

gs_parameters-value = iv_kunnr.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_VALUE_LOW_1'.

gs_parameters-value = iv_kunnr.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_VALUE_HIGH_EXT_1'.

gs_parameters-value = iv_kunnr.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

gs_parameters-name  = 'VAR_VALUE_HIGH_1'.

gs_parameters-value = iv_kunnr.

APPEND gs_parameters TO gt_parameters.

CLEAR gs_parameters.

When used the function module 'RRX_GRID_CMD_PROCESS', the selection screen parameters of BW query are not populated as specified.

l_s_var-vnam = '0P_CALYE'.

l_s_var-vartyp = '1'.

l_s_var-vparsel = 'P'.

l_s_var-sign    = 'I'.

l_s_var-opt     = 'EQ'.

l_s_var-low     = iv_year.

l_s_var-low_ext = iv_year.

APPEND l_s_var TO l_t_var.

l_s_var-vnam = 'VSDVD_0SOLD_TO_MS'.

l_s_var-vartyp = '1'.

l_s_var-vparsel = 'S'.

l_s_var-sign    = 'I'.

l_s_var-opt     = 'EQ'.

l_s_var-low     = iv_kunnr.

l_s_var-low_ext = iv_kunnr.

APPEND l_s_var TO l_t_var.

Please help me resolve the issue with either of specified function modules.

Accepted Solutions (1)

Accepted Solutions (1)

former_member381146
Participant
0 Kudos

The issue is resolved. Called the function module 'RRX_VARIABLES_FLUSH' before calling 'RRX_GRID_CMD_PROCESS'.

Former Member
0 Kudos

Hi Santhosh,

I have called the RRX_VARAIBLE_FLUSH before RRX_GRID_CMD_PROCESS.But I am not getting the expected output. It is returnig all the entries.

THis is the below way i have passed the input. Please provide the correct answer.

MOVE w_Var-vnam   TO wa_param-vnam.

*

*      MOVE w_var-sign     TO wa_param-sign.

*

*      MOVE w_var-opt   TO wa_param-opt.

*

*      MOVE w_var-low      TO wa_param-low.

*

*      MOVE w_var-high     TO wa_param-high.

*

*      APPEND wa_param       TO is_param.

CALL FUNCTION 'RRX_VARIABLES_FLUSH'

*    EXPORTING

*      i_handle  = g_handle

*      i_selscrn = 'N'

*    TABLES

*      c_t_var   = is_param

*    EXCEPTIONS

*      OTHERS    = 1.

CALL FUNCTION 'RRX_GRID_CMD_PROCESS'

      EXPORTING

        i_handle           = g_handle

        i_cmdid            = g_cmdid

*        i_iobjnm           = i_iobjnm

      IMPORTING

        e_max_x            = g_x

        e_max_y            = g_y

*       e_keep_top         = g_keep_top

*       e_keep_bot         = g_keep_bot

*       e_subrc            = g_subrc

*       e_n_warnings       = g_n_warnings

*       e_var_changed      = g_var_changed

*       e_keep_left        = g_keep_left

*       e_keep_right       = g_keep_right

      TABLES

        e_t_con            = g_t_con

        e_t_fac            = g_t_fac

        i_t_ranges         = g_t_ranges1

        e_t_dim            = g_t_dim

        e_t_mem            = g_t_mem

        e_t_cel            = g_t_cel

        e_t_atr            = g_t_atr

        c_t_prptys         = g_t_prptys

        e_t_grid           = g_t_grid

        e_t_ranges         = g_t_ranges2

        e_t_hry_types      = g_t_hry_types

        i_t_cmd_params     = i_t_cmd_params

        e_t_var            = is_param

       e_t_symbols        = g_t_symbols

       e_t_text           = g_t_text

        e_t_drill          = g_t_drill

       e_t_doc_list       = g_t_doc_list

      EXCEPTIONS

        inherited_error    = 1

        no_record_found    = 2

        terminated_by_user = 3

        no_processing      = 4

        no_change          = 5

        dbcl_nosupport     = 6

        no_authorization   = 7

        x_message          = 8

        screen_canceled    = 9

        launch_url         = 10

        OTHERS             = 11.

    IF sy-subrc <> 0.

* Implement suitable error handling here

    ENDIF.

Answers (0)