BPS variable type EXIT to expand hierarchy

Hello,
Any idea how I can get all elements under a particular node (chosen by the user through a variable) of a hierarchy using a Function module in BPS?
I have been trying to do this using Function 'RSSH_HIERARCHY_READ' with the following code and parameters (see below)
Could anyone tell me how to proceed next?
Thanks in advance
Points will be assigned
""Local Interface:
*"  IMPORTING
*"     REFERENCE(I_TYPE) TYPE  UPC_Y_VAR_TYPE
*"     REFERENCE(I_AREA) TYPE  UPC_Y_AREA
*"     REFERENCE(I_VARIABLE) TYPE  UPC_Y_VARIABLE
*"     REFERENCE(IS_HIE_KEY) TYPE  UPC_YS_HIE_KEY
*"  EXPORTING
*"     REFERENCE(ET_HIE_NODES) TYPE  UPC_YT_HIESEL
  DATA: BEGIN OF wa_val,
          from TYPE rsleaffrom,
          to   TYPE rsleafto,
        END OF wa_val,
        wa_hierdir    TYPE rshi_s_hiedir,
        wa_hiedirkey  TYPE rshi_s_rshiedirkey,
        wt            LIKE wa_hiedirkey OCCURS 0 WITH HEADER LINE,
        ls_hie_nodes  TYPE upc_ys_hiesel,
        tb_node_val   TYPE rshi_t_hienode,
        tt            LIKE LINE OF tb_node_val,
        tb_interval   TYPE rshi_th_interval.
  SELECT SINGLE hieid objvers FROM /bic/hystopid
         INTO wa_hiedirkey
         WHERE nodename = '00001'.
  CALL FUNCTION 'RSSH_HIERARCHY_READ'
    EXPORTING
      i_rshiedirkey     = wa_hiedirkey
      i_date            = sy-datum
    IMPORTING
      e_rshiedir        = wa_hierdir
      e_t_rsnodes       = tb_node_val
      e_th_rsinterval   = tb_interval
    EXCEPTIONS
      invalid_hierarchy = 1
      name_error        = 2
      iobj_not_found    = 3
      OTHERS            = 4.

Hi Nicolas,
It looks like you are trying to program an exit for a hierarchy variable. In there you don't need to return all nodes down to the  leaves. You have to return only the top node(s) that should be selectable.
Anyway, if you want to read another BPS hiearchy variable, then use the following code:
FUNCTION z_variable_get_detail_hier.
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(I_AREA) TYPE  UPC_VAR-AREA
*"     REFERENCE(I_VARIABLE) TYPE  UPC_VAR-VAR
*"     REFERENCE(I_BUFFER) TYPE  BOOLE-BOOLE OPTIONAL
*"  EXPORTING
*"     REFERENCE(E_SUBRC) TYPE  SY-SUBRC
*"     REFERENCE(ES_RETURN) TYPE  BAPIRET2
*"     REFERENCE(E_TYPE) TYPE  UPC_VAR-VARTYPE
*"     VALUE(ET_HIESEL_ALL) TYPE  UPC_YT_HIESEL
*"     VALUE(ET_HIESEL) TYPE  UPC_YT_HIESEL
*"     VALUE(ETO_CHANM) TYPE  UPC_YTO_CHA
  STATICS:
    p_subrc        LIKE sy-subrc,
    ps_return      LIKE bapiret2,
    p_type         LIKE upc_var-vartype,
    pt_hiesel_all  TYPE upc_yt_hiesel,
    pt_hiesel      TYPE upc_yt_hiesel,
    pto_chanm      TYPE upc_yto_cha,
    p_variable     TYPE upc_var-var,
    p_area         TYPE upc_y_area,
    p_first_read   LIKE boole-boole VALUE 'X'.
  DATA:
    lr_variable TYPE REF TO cl_sem_variable.
* We can't read the values from the buffer if ...
* - it is the first read
* - the buffer flag is initial
* - the stored area or varname differ from imported values.
  IF NOT i_buffer IS INITIAL
    AND p_first_read IS INITIAL
    AND p_area = i_area
    AND p_variable = i_variable.
    e_subrc        = p_subrc.
    es_return      = ps_return.
    et_hiesel_all  = pt_hiesel_all.
    et_hiesel      = pt_hiesel.
    eto_chanm      = pto_chanm.
  ELSE.
* clear all exporing tables of type reference
    CLEAR: eto_chanm, et_hiesel_all, et_hiesel.
    CALL METHOD cl_sem_variable=>get_instance
      EXPORTING
        i_area       = i_area
        i_variable   = i_variable
      RECEIVING
        rr_variable  = lr_variable
      EXCEPTIONS
        not_existing = 1
        OTHERS       = 2.
    IF sy-subrc <> 0.
      e_subrc = 4.
      CALL FUNCTION 'BALW_BAPIRETURN_GET2'
        EXPORTING
          type   = sy-msgty
          cl     = sy-msgid
          number = sy-msgno
          par1   = sy-msgv1
          par2   = sy-msgv2
          par3   = sy-msgv3
          par4   = sy-msgv4
        IMPORTING
          return = es_return.
      EXIT.
    ENDIF.
* read details of variable
    CALL METHOD lr_variable->get_attributes
      IMPORTING
        e_type    = e_type
        eto_chanm = eto_chanm.
* read restricted values
    CALL METHOD lr_variable->get_hie_nodes
      EXPORTING
        i_user     = sy-uname
        i_restrict = 'X'
      RECEIVING
        rt_value   = et_hiesel
      EXCEPTIONS
        error      = 1
        OTHERS     = 2.
    IF sy-subrc <> 0.
      e_subrc = 4.
      CALL FUNCTION 'BALW_BAPIRETURN_GET2'
        EXPORTING
          type   = sy-msgty
          cl     = sy-msgid
          number = sy-msgno
          par1   = sy-msgv1
          par2   = sy-msgv2
          par3   = sy-msgv3
          par4   = sy-msgv4
        IMPORTING
          return = es_return.
      EXIT.
    ENDIF.
* read all values
    CALL METHOD lr_variable->get_hie_nodes
      EXPORTING
        i_user     = sy-uname
        i_restrict = ' '
      RECEIVING
        rt_value   = et_hiesel_all
      EXCEPTIONS
        error      = 1
        OTHERS     = 2.
    IF sy-subrc <> 0.
      e_subrc = 4.
      CALL FUNCTION 'BALW_BAPIRETURN_GET2'
        EXPORTING
          type   = sy-msgty
          cl     = sy-msgid
          number = sy-msgno
          par1   = sy-msgv1
          par2   = sy-msgv2
          par3   = sy-msgv3
          par4   = sy-msgv4
        IMPORTING
          return = es_return.
      EXIT.
    ENDIF.
* -- no error occured => store results to buffer
    CLEAR p_first_read.
    p_area         = i_area.
    p_variable     = i_variable.
    p_subrc        = e_subrc.
    ps_return      = es_return.
    pt_hiesel_all  = et_hiesel_all.
    pt_hiesel      = et_hiesel.
    pto_chanm      = eto_chanm.
  ENDIF.
ENDFUNCTION.
Regards,
Marc
SAP NetWeaver RIG

Similar Messages

  • SEM- VARIABLE TYPE EXIT

    Hi
    We have a planning area where I have various variable that represent the product hierarchy, in particular:
    u2022     Market
    u2022     Brand
    u2022     Family
    The user select the value for any variables and thereu2019s a function module that derives the value of material, the material is another variable type exit.
    The IO material has various attributes that I use in layout, one of these (material group 3) has many value, but I need only two values:
    u2022     PCO
    u2022     STD
    In layout the user has to see only material with PCO, then I create a variable for characteristic material group 3 fixed PCO used in level and layout. Itu2019s ok
    Now I must create another layout in same planning area, where the user has to see both, PCO and STD.
    I created a new level where I donu2019t use the variable for characteristic material group 3, but this variable is fixed PCO, the material derived by FM obviously are only PCO.
    How can I do?
    Thanks in adavance for suggestion
    Edited by: Celi Laura on Apr 28, 2009 3:23 PM

    Hi Dieter,
    Refer to Marc's comment in the below post that Planning layouts lock all data
    How to avoid SEM-BPS Lock entries
    Hence the best option would be to create a different Planning level for Cost center based on the need for planning.
    You could also explore the possibility of creating a BEx report wherein the data just needs to be viewed by the boss and not planned.
    Hope it helps
    Cheers
    Anurag
    Also take a look at this document to get some more insight into locking in BPS
    https://websmp102.sap-ag.de/~sapdownload/011000358700004574572003E/SEMBPSLocking.pdf
    Hope you have access to the service marketplace.
    Message was edited by: Anurag  Khungar

  • Variable Type EXIT - Locking Transaction Data

    Dear all,
    I have to use a variable type Exit in the level to identify all cost centers for a planner and his corresponding boss (master data lookup). Now e.g.
    the planner has cost center 1 and 2 as possible single values. The boss has cost center 1, 2, 3,and 4 because he also is the boss of an other one.
    The result is now that the boss locks all cost centers 1,2,3 and four even if he only plans e.g. the cost center 4. In this way it is not possible for the planner to enter data for 1 or 2 the same time.
    Does anybody has an idea to solve this situation or how to lock only the values of the variable that is really in use?
    Thanks a lot
    Dieter

    Hi Dieter,
    Refer to Marc's comment in the below post that Planning layouts lock all data
    How to avoid SEM-BPS Lock entries
    Hence the best option would be to create a different Planning level for Cost center based on the need for planning.
    You could also explore the possibility of creating a BEx report wherein the data just needs to be viewed by the boss and not planned.
    Hope it helps
    Cheers
    Anurag
    Also take a look at this document to get some more insight into locking in BPS
    https://websmp102.sap-ag.de/~sapdownload/011000358700004574572003E/SEMBPSLocking.pdf
    Hope you have access to the service marketplace.
    Message was edited by: Anurag  Khungar

  • Variable type exit with two source variables

    I have a case where I should determine a variable (A) value according to two other variables (B) and (C). That is, e.g.
    - IF (B)=x AND (C)=y THEN (A)=z
    - IF (B)=i AND (C)=j THEN (A)=k
    It seems like I cannot call the user exit with more than one exported variable, the standard call below:
    call function m_user_exit
      exporting
        i_area      = m_area
        i_variable  = m_variable
        i_chanm     = l_chanm
        ito_chanm   = mto_chanm
      importing
        eto_charsel = rto_value
    Any suggestions?
    Regards, Aki

    Thanks to everyone especially to Natarajan,
    Both source variables are type exit, so I did the following:
    A-variable was the “standard source”
    B-variable was determined by function call (source below)
    C-variable then determined by combination of A and B
    I added this simple code in the beginning of “your own logic”  and I had source_var_B as a “B-variable”.
    DATA: source_var_B TYPE upc_yto_charsel.
    call function 'ZDETERMINE_B'
      exporting
        i_area      = 'AREA'
        i_variable  = 'VAR_B'
        i_chanm     = 'CHAR_B'
        ito_chanm   = ito_chanm
      importing
        eto_charsel = source_var_B.
    Do you see any risks or inconsistencies or whatever I should take into account?
    Aki

  • SEM-BPS Variable with exit function

    Hi,
    this is my problem. I use a variable for period and I increment the variable dinamically in a sequence of execution. When I try to read the variable with a exit function, the function is only called the first time and return ok the value, but the next time the function not called and the value is returned from the buffer (I think this, because always is the same value).
    How can I change this? I need to my function return the variable value, because is changed.
    Thanks.

    Hi,
    thanks for replys.
    I think the problem occurs after update the patch level to level 15. This is the code of class_constructor in class cl_sem_variable:
    method CLASS_CONSTRUCTOR.
    data ls_dark type upc_dark2.
    select single * from upc_dark2 into ls_dark
       where param = c_param_dark_buffer.
    if sy-subrc = 0 and ls_dark-value = 'X'.
        m_buffer = 'X'.
    endif.
    endmethod.
    The flag m_buffer is always X and for that reason my the value of the variable is read from the buffer and the exit function for read variable isn't called.
    What do yo think about this?
    Thanks.

  • BPS Variable for hierarchy type User-Exit

    I try to make this type of variable.
    The variable is NCSTOPU, hierarchy is
    NHSTOPU like
    NHMAIN
    -- 4
        -- 401
        -- 402
        -- 403
      -- 5
         -- 501
         -- 502
         -- 503
    So The ABAP is
    FUNCTION ZCCB_AHR_VAR_HIER.
    *"*"Ëîêàëüíûé èíòåðôåéñ:
    *"  IMPORTING
    *"     REFERENCE(I_TYPE) TYPE  UPC_Y_VAR_TYPE
    *"     REFERENCE(I_AREA) TYPE  UPC_Y_AREA
    *"     REFERENCE(I_VARIABLE) TYPE  UPC_Y_VARIABLE
    *"     REFERENCE(IS_HIE_KEY) TYPE  UPC_YS_HIE_KEY
    *"  EXPORTING
    *"     REFERENCE(ET_HIE_NODES) TYPE  UPC_YT_HIESEL
    DATA ZHIER type upc_ys_hiesel.
    *CHANM  UPC_Y_CHANM
    *HIENM     UPC_Y_HIENM
    *HIEVER     UPC_Y_HIEVER
    *DATETO     UPC_Y_DATETO
    *NODENAME     UPC_Y_NODENAME
    *HIECHA     UPC_Y_CHANM
    *DUMMY_LEAF     UPC_Y_DUMMYLEAF
    *TO_CHADEP     UPC_YTO_CHADEP
    ZHIER-CHANM      = 'NCSTOPU'.
    ZHIER-HIENM      = 'NHSTOPU'.
    ZHIER-NODENAME   = '5'.
    ZHIER-HIEVER     = 'A'.
    ZHIER-HIECHA     = '5'.
    ZHIER-DUMMY_LEAF = ''.
    ZHIER-DATETO     = '99993112'.
    INSERT ZHIER INTO TABLE ET_HIE_NODES.
    ENDFUNCTION.
    But it doesn't work.
    The mistake is
    Selected node 5 does not exist
    The node 5  selected as the start value for characteristic 5 with the specified compound table does not exist in hierarchy NHSTOPU.
    What is the problem?

    Configuration of the variable:
    Variable Type - Hierarchy node,
    Characteristic - NCSTOPU,
    Hierarchy - NHSTOPU,
    Replacement type - user-exit,
    FUNCTION MODULE NAME - ZCCB_AHR_VAR_HIER.
    In the planning level the characteristic NCSTOPU is set with this variable.
    In the Layout  1) the characteristic NCSTOPU - Lead Column,
                         2) Hierarchy in the lead column -  Hierarchical Data Model, BW Hierarchy

  • SEM-BPS: Variables of type hierarchy node user exit

    Hi,
    I read the "How to.." document "Variables of Type Exit".
    This document has example for variable type caracteristic.
    I need to use this kind of solution for global variables:
    I have the same variables in several planning areas. I have defined one ‘leading’ area containing the variable that should automatically set/adjust the corresponding variables in the other planning areas.
    I've created a SEM variable of type hierarchy node and with the replacement type user exit. There is a standard function module API_SEMBPS_VARIABLE_GETDETAIL which has to provide the selected hierarchy node in leading area to other areas.
    The function works ideally in test mode, but it doesn't work as the SEM user exit.
    Does anyone have experience in this problem?
    Thanks

    Your function module shall follow the expected interface (required for exit type). Function API_SEMBPS_VARIABLE_GETDETAIL is not for such usage.
    To see an example FM that is fit for a 'user exit' processing for hierarchy node, have a look at FM UPF_VARIABLE_USER_EXIT_HIER. There is inline documentation in the source code that shall help you create your own FM if required.
    cheers,

  • How To ... BPS Variables of type exit

    Dear All,
    I am reading the How To ... BPS Variables of type exit sap document.
    On chapter 3.3.1 step 10 to 12 it's explain how to populated variable, and check user exit action to display one value in fonction of an other one.
    Unfortunately on step 11, when I click on F4 I got nothing. I can't enter value.
    Would you please let me know if the system should be configured in a particular way ?
    Thanks

    Hi Luminy,
    If you have followed Step 2 with 2002 then you would have got that at f4
    regards
    Happy Tony
    <b>Points == Thanks</b>

  • BPS Variables of Type Exit (How To Document)

    Hello,
    I'm trying to restrict entries for (say) variable #2, based on the selection of variable #1. 
    I've just realised characteristic relationships cannot be used and need to use a user exit.  I've gone through the "How To" on BPS Variables of Type Exit and have gotten the function modules to working properly. 
    However when the function module attempts to pass the data to BPS Variable #2, BPS gives an ERROR saying that in order to write new values into variable #2, the variable must have a replacement path "USER DEFINED VALUES".
    However this is not possible as the replacement path must be set to "USER EXIT" so the function module can be activated.
    The only way around this is to tell the function module which BPS Variable it should choose to write the data to, if so does anyone the ABAP to store values into a BPS Variable.
    Right now would appreciate any comment on this.
    Kind regards,
    Marinos

    Hi Marc,
    Yes, the How To paper answers my problem, and when I run the program via se37 the correct variable selections are being populated in table ETO_CHARSEL.  However when values are passed to the BPS Variable, the first information message read "The Conditions were Adapted"  but no values are passed to the variable.  Then a second error message "Entry not possible, var does not have replacement type user-spec vals."  This seems to be a conundrum as the variable needs to be set as user-exit.
    Any thoughts?
    Marinos
    My Z_SIMPLE_RELATION code is
    FUNCTION Z_SIMPLE_RELATION.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_AREA) TYPE  UPC_Y_AREA
    *"     VALUE(I_VARIABLE) TYPE  UPC_Y_VARIABLE
    *"     VALUE(I_CHANM) TYPE  UPC_Y_CHANM
    *"     VALUE(ITO_CHANM) TYPE  UPC_YTO_CHA
    *"  EXPORTING
    *"     VALUE(ETO_CHARSEL) TYPE  UPC_YTO_CHARSEL
    Change constant according to your needs
    TABLES: /BIC/MTASSTCAT.
    CONSTANTS:
    l_source_var TYPE upc_y_variable VALUE 'TCAPASST',
    l_source_area TYPE upc_y_area VALUE 'TCAP001P',
    l_use_restricted_values TYPE boole-boole VALUE 'X',
    l_buffer_call TYPE boole-boole VALUE 'X'.
    DATA:
    l_subrc LIKE sy-subrc,
    ls_return LIKE bapiret2,
    l_type LIKE upc_var-vartype,
    lto_varsel_all TYPE upc_yto_charsel,
    lto_varsel TYPE upc_yto_charsel,
    lto_var TYPE upc_yto_charsel,
    lt_chavl TYPE /bic/PTASSTCAT occurs 0,
    ls_chavl like line of lt_chavl,
    lto_chanm type upc_yto_cha.
    read source value
    CALL FUNCTION 'Z_VARIABLE_GET_DETAIL'
    EXPORTING
    i_area = l_source_area
    i_variable = l_source_var
    i_buffer = l_buffer_call
    IMPORTING
    e_subrc = l_subrc
    es_return = ls_return
    e_type = l_type
    eto_varsel_all = lto_varsel_all
    eto_varsel = lto_varsel
    eto_chanm = lto_chanm.
    IF l_subrc <> 0.
    MESSAGE i136(upc_fw) WITH l_source_var.
    Values of variable &1 cannot be determined
    EXIT.
    ENDIF.
    now, you are free to determine the logic on how to
    derive the values based on the source values.
    Example 1: determine the next year
    Assumptions:
    - we have only a single year in the selection
    - the variable is of type characteristic
    DATA: ls_varsel TYPE upc_ys_charsel,
    l_next_year(4) TYPE n,
    l_entries TYPE i.
    We have a single value for the year and only one characteristic
    => our value is stored in the first line
    IF l_use_restricted_values IS INITIAL.
    lto_var = lto_varsel_all.
    ELSE.
    lto_var = lto_varsel.
    ENDIF.
    READ TABLE lto_var INTO ls_varsel INDEX 1.
    check prerequisites:
    - record found?
    IF sy-subrc <> 0.
    MESSAGE i147(upc_fw) WITH l_source_var.
    Variable &1 does not contain any values
    EXIT.
    ENDIF.
    - exactly one record and characteristic?
    DESCRIBE TABLE lto_var LINES l_entries.
    IF l_entries <> 1.
    MESSAGE i534(upc) WITH l_source_var.
    Variable &1 must be restricted to a value
    EXIT.
    ENDIF.
    SELECT * FROM /BIC/PTASSTCAT INTO TABLE lt_chavl
      WHERE asset_clas = ls_varsel-low.
      if sy-subrc <> 0.
        MESSAGE e026(upc) WITH ls_varsel-low '0ASSET_CLAS'.
    Attribute value not found
      exit.
    endif.
    ls_varsel-seqno = '0000'.
    ls_varsel-chanm = '/BIC/TASSTCAT'.
    LOOP AT lt_chavl INTO ls_chavl.
    ls_varsel-seqno = ls_varsel-seqno + 1.
    ls_varsel-low = ls_chavl-/BIC/TASSTCAT.
    APPEND ls_varsel TO eto_charsel.
    ENDLOOP.
    ENDFUNCTION.

  • Variable type Hierarchy, how to get the value from another similar variable

    Hi.
    We have created a variable, type hierarchy (using ORGEH hierarchy in HR based on 0ORGUNIT). Let's call this VAR1. We want to fill this with an User Exit, beacuse we want VAR1 to have the value from another variable, VAR2, which is also type hierarchy (and based on the same characteristic).
    However, when we program this user exit and use the VAR1 afterwards, it just behaves as if we have a single characteristic value and not a node value. As a result, we just get posts which do have the 'parent itself' as characteristic value, and none of the subnodes...  Any hints as to what we can do in our User exit to get the value passed over from VAR2 to VAR1 as a node value? Is there any spesific syntax to be used here that we are missing? ( The VAR1 and VAR2 are both defined as hierarchy variables, we have double checked...).

    Hi,
    are you on BI7.0? There you can create variables type replacement path and get the value out from a different variable without any coding.
    regards
    Cornelia

  • BPS variable exit takes more execution time

    Hi,
        I am having a BPS variable of type exit in the planning level and it is taking very long time to execute the layout even though my planning cube is having very little data.
    Can any one tell me how to reduce the excution time of the layout .
    Thanks,
    Ramkumar.

    Hi Ravi,
            I excuted the FM in se37 with a SQL Trace and it was working fine . there are no expensive statements .
    The same FM performs well if the output record count is less say 10, but taking more time when the output record count is more say 8000.
    Is there any way to increase the performance of the BPS layout . or do i need to apply any notes for it.
    if any one faced the same problum kindly let me know how to resolve this . your help is greatly appreciated.
    Thanks
    Ramkumar

  • Enhance planning function type exit in BPS

    Hello,
    I have 2 questions concerning planning functions type exit in BPS:
    1. Is there any way to do a check, if the data is from the selection of the planning package itself or created in the planning function, when looping over the XTH_DATA table. I mentioned, that the loop is done also over the newly created data. Now, I copy the XTH_DATA into a working version, add the data to it and assign it afterwardws.
    2. I create new lines of data in the planning function. These lines can also contain data, which is not in the package selection. Now I need a condition for not writing the data, which checks, if the data can be added to the XTH_DATA or otherwise skips this particular line.
    Background is, I don't want to read the variable values from the package selection to keep it more generic.
    Hope anyone of you can help me solving these problems. Thanks in advance...

    Hello Jerrit,
    there's no indication in XTH_DATA if data was already existing or is new. You have to program this logic yourself.
    The selection of the planning package is passed to the exit in ITO_CHASEL. So you do not have to read the package or variables. However, checking data (XTH_DATA) against this selection can be quite performance intensive. If you are dealing with high data volumes such a check will probably take too long.
    Regards
    Marc
    SAP NetWeaver RIG

  • How to access BPS variables in ABAP Exit Function

    Hi Experts,
    I am using a Exit Function. My BPS variables contain multiple values. I want to trasfer then (may be directly read) to an internal table from where I can loop over then.
    Could you please suggest me the code for this?
    Points will be awarded.
    Thanks in advance,
    Shiwesh

    Did you try using the FMs API_SEMBPS_VARIABLE_GETDETAIL or Z_VARIABLE_GET_DETAIL for this?

  • Derivation from variable type authorization in exit

    Hi Experts,
    I have got a query with two variables "AUTH" type authorization and "DERI" which should be derivate from "AUTH".
    "DERI" is type Exit.
    my problem, in the exit "AUTH" is not in i_t_var_range. Where do I get the value of "AUTH" from, to use it in the exit logic?
    Thanks for your help
    Pierre

    I Peter
    I needed to make the same thing.
    Did you found a solution?
    Best regards
    Joã

  • No Query Result After Using Hierarchy Node Variable (Customer Exit)

    Hi
    I have problem at my query. It doesn't show anything in BEx but when i check the data in BW using tcode LISTCUBE i can display the data.
    This problem happen when i change the restrictions for one of characteristic in filter value.
    The characteristic is custom Infoobject (ZCPARTNER), which like Infoobject Partner Unit.
    Previously I set the restriction with constant value, example : A500,A700,A710,A720,A730,A740 and it worked before.
    But when I change it using hierarchy node variable (customer exit), this problem is arise.
    Here is my code at ZXRSRU01
      WHEN 'ZHIEPART'. --> hierarchy node variable
       BREAK-POINT.
        IF i_step = 2.
        Read from ZZCONSGR information
          LOOP AT i_t_var_range INTO loc_var_range
             WHERE vnam = 'ZZCONSGR' OR vnam = 'ZOCONSGR'. --> read input value from consolidation group variable
            CLEAR l_s_range.
            CLEAR l_s_range-low.
            IF loc_var_range-low EQ '000000000000030000'
               OR loc_var_range-low EQ '000000000000010130'.
              l_s_range-low = 'MEZBUNITMDI'.
              l_s_range-high = '0HIER_NODE'.
            ELSEIF loc_var_range-low EQ '000000000000040000'
               OR loc_var_range-low EQ '000000000000010160'.
              l_s_range-low = 'MEZBUNITMPI'.
              l_s_range-high = '0HIER_NODE'.
            ENDIF.
            l_s_range-sign = 'I'.
            l_s_range-opt = 'EQ'.
            APPEND l_s_range TO e_t_range.
            EXIT.
          ENDLOOP.
        ENDIF.
    Here the hierarchy in BW system:
    XXX Cons Unit Hierarchy Set; InfoObject ; Node Name
    - XXX Cons Unit Hierarchy Set; 0HIER_NODE; ZBUNITALL
      - XXX DownStream ... ; OHIER_NODE; MEZBUNITMDI
         - ME/A730; 0CS_UNIT; MEA730
         - ME/A740; 0CS_UNIT; MEA740
      - XXX Power ; OHIER_NODE; MEZBUNITMPI
        - ME A800 - A808; OHIER_NODE; MEZBUNITMPI
        - PT Mitra xxx; 0CS_UNIT;  MEA820
    Anyone can help my problem? Thank you
    Regards,
    Satria B Tandyono

    Hi Satria,
    Instead of following code ---
    CLEAR l_s_range-low.
    IF loc_var_range-low EQ '000000000000030000'
    OR loc_var_range-low EQ '000000000000010130'.
    l_s_range-low = 'MEZBUNITMDI'.
    l_s_range-high = '0HIER_NODE'.
    ELSEIF loc_var_range-low EQ '000000000000040000'
    OR loc_var_range-low EQ '000000000000010160'.
    l_s_range-low = 'MEZBUNITMPI'.
    l_s_range-high = '0HIER_NODE'.
    ENDIF.
    try this ---
    IF loc_var_range-low EQ '000000000000030000'
    OR loc_var_range-low EQ '000000000000010130'.
    l_s_range-low = 'MEZBUNITMDI'.
    ELSEIF loc_var_range-low EQ '000000000000040000'
    OR loc_var_range-low EQ '000000000000010160'.
    l_s_range-low = 'MEZBUNITMPI'.
    ENDIF.
    Note : whenver the option is EQ, the system takes only low value.

Maybe you are looking for