0% found this document useful (0 votes)
113 views

Restricting List of Values in Variable Report Category

This document describes how to restrict the list of values for a variable called Report Category (ZVAR_RPTCATNM) using BADI RSR_VARIABLE_F4_RESTRICT_BADI. It defines several value ranges to include for different variable contexts, such as "Actual", "Plan", "Projection" and stores them in internal tables to be returned by the BADI.

Uploaded by

Gandhi Goditi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
113 views

Restricting List of Values in Variable Report Category

This document describes how to restrict the list of values for a variable called Report Category (ZVAR_RPTCATNM) using BADI RSR_VARIABLE_F4_RESTRICT_BADI. It defines several value ranges to include for different variable contexts, such as "Actual", "Plan", "Projection" and stores them in internal tables to be returned by the BADI.

Uploaded by

Gandhi Goditi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Restricting list of Values in variable Report

Category (ZVAR_RPTCATNM)

1) Goto SE24 and enter Badi name RSR_VARIABLE_F4_RESTRICT_BADI

2) Double click on Implementations


3) Double click on Implementation Class

4) Code is as below for the variable and related bex queries


5) Below is the code written to restrict the list of values in variable Report Category ( ZVAR_RPTCATNM):

METHOD IF_RSR_VARIABLE_F4_RESTRICT~GET_RESTRICTION_FLAT.
*  DATA: l_s_range LIKE LINE OF c_t_range.
*
*  IF i_vnam EQ '0D_FC_P21'.
*    READ TABLE i_t_compid WITH TABLE KEY table_line = '0D_FC_AE_VAR_Q02' T
RANSPORTING NO FIELDS.
*    IF sy-subrc = 0.
*      l_s_range-iobjnm = i_iobjnm.
*      l_s_range-sign   = 'I'.  "including
*      l_s_range-option = 'BT'. "between
*      l_s_range-low    = 'FC001'. " in internal format
*      l_s_range-high   = 'FC005'.
*      APPEND l_s_range TO c_t_range.
*      l_s_range-iobjnm = i_iobjnm.
*      l_s_range-sign   = 'I'.  "including
*      l_s_range-option = 'CP'. "between
*      l_s_range-low    = 'FC01*'. " in internal format
*      CLEAR l_s_range-high.
*      APPEND l_s_range TO c_t_range.
*    ENDIF.
*  ENDIF.
*  DATA: LT_RANGE TYPE RANGE OF /BIC/OIZCSRPTCTG,
*          LS_RANGE LIKE LINE OF LT_RANGE.

  DATA: L_S_RANGE  LIKE LINE OF C_T_RANGE,
        L_T_RANGE  LIKE C_T_RANGE,
        L_S_RANGE1 LIKE LINE OF C_T_RANGE,
        L_T_RANGE1 LIKE C_T_RANGE,
        L_S_RANGE2 LIKE LINE OF C_T_RANGE,
        L_T_RANGE2 LIKE C_T_RANGE,
        L_S_RANGE3 LIKE LINE OF C_T_RANGE,
        L_T_RANGE3 LIKE C_T_RANGE.

********************* List of Values Ranges ******************
****** Actual, Plan, Projection ******************************
  L_S_RANGE-IOBJNM = I_IOBJNM.
  L_S_RANGE-SIGN = 'I'.
  L_S_RANGE-OPTION = 'EQ'.
  L_S_RANGE-LOW = 'ACTU'.
  APPEND L_S_RANGE TO L_T_RANGE.
  L_S_RANGE-LOW = 'PLAN'.
  APPEND L_S_RANGE TO L_T_RANGE.
  L_S_RANGE-LOW = 'PROJ'.
  APPEND L_S_RANGE TO L_T_RANGE.
****** Actual, Plan, Projection, Year End Projection *********
  L_S_RANGE1-IOBJNM = I_IOBJNM.
  L_S_RANGE1-SIGN = 'I'.
  L_S_RANGE1-OPTION = 'EQ'.
  L_S_RANGE1-LOW = 'ACTU'.
  APPEND L_S_RANGE1 TO L_T_RANGE1.
  L_S_RANGE1-LOW = 'PLAN'.
  APPEND L_S_RANGE1 TO L_T_RANGE1.
  L_S_RANGE1-LOW = 'PROJ'.
  APPEND L_S_RANGE1 TO L_T_RANGE1.
  L_S_RANGE1-LOW = 'YEFC'.
  APPEND L_S_RANGE1 TO L_T_RANGE1.
****** Actual Net Sales **************************************
  L_S_RANGE2-IOBJNM = I_IOBJNM.
  L_S_RANGE2-SIGN = 'I'.
  L_S_RANGE2-OPTION = 'EQ'.
  L_S_RANGE2-LOW = 'ACNS'.
  APPEND L_S_RANGE2 TO L_T_RANGE2.
****** Actual Operating Income *******************************
  L_S_RANGE3-IOBJNM = I_IOBJNM.
  L_S_RANGE3-SIGN = 'I'.
  L_S_RANGE3-OPTION = 'EQ'.
  L_S_RANGE3-LOW = 'ACOI'.
  APPEND L_S_RANGE3 TO L_T_RANGE3.
**************************************************************

  IF I_VNAM EQ 'ZVAR_RPTCATNM'.
    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM01'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM02'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM03'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM08'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM09'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM10'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM11'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM12'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM13'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM14'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM17'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM18'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM19'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM20'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM21'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM22'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM23'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM24'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCFIN_QM25'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE1 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCDEPT_QM04'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE2 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCDEPT_QM05'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE3 TO C_T_RANGE.
    ENDIF.

    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCDEPT_QM06'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE2 TO C_T_RANGE.
    ENDIF.
    READ TABLE I_T_COMPID WITH TABLE KEY TABLE_LINE = 'ZCSCDEPT_QM07'
    TRANSPORTING NO FIELDS.
    IF SY-SUBRC = 0.
      MOVE L_T_RANGE3 TO C_T_RANGE.
    ENDIF.
  ENDIF.

ENDMETHOD.

You might also like