Hierarchy Node authorization with customer exit

Hi All,
I have created a hierarchy for an info-object A along with nodes test1 and test 2.node test1 consisit of value 10,20,30,40,50 and node test2 consist of value 60,70,80,90.  .
1) I want that perticuler user should access perticuler node in hierarachy for that reason I have created a database table in which i have maintained the username and the values from the Infoobject A .I want to write a customer exit code in which user X can access node test1 and user Y can access node test2
but in database table i can not maintain the nodes i can only maintain the values from the nodes
so how can i restrict the user to perticuler node instead of values
The authorization values for the perticuler user will get filled by customer exit variable maintained in the authorization profile
can any body suggest me or send me example customer exit code for this scenario.
I really appreciate your thoughts on this issue.
Thanks,

Hi,
in addition to Anil's valid input, make sure that ZTEST is NOT ready for input. Indeed "ready for input" vars cannot be changed via customer exits.
hope this helps...
Olivier.

Similar Messages

  • Passed i_step = 2,3(Hierarchy Node Variable with Customer-Exit)

    Hellow !
    I want to insert the following ststement to force the variable to be executed with i_step = 2 or 3.
    CASE I_VNAM.
    when 'ZTEST'.
        CLEAR loc_var_range. REFRESH loc_var_range.
        CLEAR: l_s_range, ytest001.
    LOOP AT i_t_var_range INTO loc_var_range.
       SELECT * FROM ytest001
                  WHERE bname = sy-uname
                        AND node   = loc_var_range-low.
            IF sy-subrc = 0.
              l_s_range-low = loc_var_range-low.
              l_s_range-high = '0HIER_NODE'.
              l_s_range-sign = 'I'.
              l_s_range-opt  = 'EQ'.
              APPEND l_s_range TO e_t_range.
             else.
              l_s_range-low = '#'.
              l_s_range-sign = 'I'.
              l_s_range-opt  = 'EQ'.
              APPEND l_s_range TO e_t_range.
             endif.
    ENDLOOP.
    However, Passed customer-exit(Enhancements for Global Variables in Reporting)  i_step =2,3
    Regards,
    Don

    Hi,
    in addition to Anil's valid input, make sure that ZTEST is NOT ready for input. Indeed "ready for input" vars cannot be changed via customer exits.
    hope this helps...
    Olivier.

  • Authorization with customer exit variable (CP, BT, EQ)

    Hi SDN-Experts,
    I have a question concerning the new authorization concept.
    I created an authorization for 0COSTCENTER which also contains the 3 special characters 0TCAACTVT, 0TCAIPROV and 0TCAVALID. I inserted a customer exit variable for 0COSTCENTER. The exit reads datasets from a db table which contains authorizations for the actual user. The authorizations have different formats, e.g. "1000", "1000;1200", "25*" etc.
    The internal table e_t_range is filled as followed in the exit:
      i   eq   1000
      i   bt   1000   1200
      i   cp   25*
    This does not work. It works if I only use "eq" OR "cp". But not both at the same time.
    How can I achieve to use the different authorizations in the db table for the bi authorization?
    Thanks in advance...
    Joerg

    Hi Olivier.
    Yes, the variable is defined as selection option and I did also try to use "EQ" instead of "CP".
    I tested again with another variable which is "ready for input" and is not used in an authorization. The Variable is filled in the customer exit. This is the code:
    WHEN 'ZJGR_COSTCTR_TEST'.
      l_s_range-sign = 'I'.
      l_s_range-opt  = 'BT'.
      l_s_range-low = '0000001000'.
      l_s_range-high = '0000001200'.
      APPEND l_s_range TO e_t_range.
      l_s_range-sign = 'I'.
      l_s_range-opt  = 'CP'.
      l_s_range-low = '0000002*'.
      APPEND l_s_range TO e_t_range.
    The result in the variable screen in BEx Analyzer is the following:
    1000 - 1200;0000002*;
    And it still does not work. It seems that you could not mix EQ, BT and CP. But this is exactly what I have to do with the authorization variable...
    Do you have any other tipps that I might try out?
    Thanks,
    Joerg

  • Hierchies and hierchies node with customer exit?

    hi friends,
    what scenerio we use hierchies and hierchies node  variable with customer exit ?
    Thanking u
    suneel.

    Hierarchy variables represent hierarchies. You can use them wherever
    hierarchies can be selected.
    Hierarchy node variables represent a node in a hierarchy. You can use them as
    an alternative to hierarchy nodes as fixed values for restricting a characteristic.
    If you use a hierarchy node variable, you can make selections by hierarchy
    node when you use the query.
    The Customer Exit processing type for variables enables you to determine
    values for variables by means of a function module exit. The function
    module used is EXIT_SAPLRRS0_001.
    You create a project in transaction CMOD by selecting the SAP
    enhancement RSR00001 and assigning this to the enhancement project.
    Activate the project.
    WHEN 'HIERARCHY'.   " Hierarchy variable
             CLEAR L_S_RANGE.
             L_S_RANGE-LOW  = 'MY HIERARCHY'. " hierarchy name
             L_S_RANGE-SIGN = 'I'.
             L_S_RANGE-OPT  = 'EQ'.
             APPEND L_S_RANGE TO E_T_RANGE.
    -> Only dependents of hierarchy 'MY HIERARCHY'
          WHEN 'HNODE'.   " Hierarchy node variable
             CLEAR L_S_RANGE.
             L_S_RANGE-LOW  = 'DEPT1'.  " Node name
             L_S_RANGE-HIGH = '0HIER_NODE'.   " InfoObject
             L_S_RANGE-SIGN = 'I'.
             L_S_RANGE-OPT  = 'EQ'.
             APPEND L_S_RANGE TO E_T_RANGE.
    -> Node 'DEPT1', that cannot be posted to
          WHEN 'HNODEVAL'.   " Hierarchy node variable
             CLEAR L_S_RANGE.
             L_S_RANGE-LOW  = 'LEAVE1'.  " node name (node is a leaf)
             L_S_RANGE-SIGN = 'I'.
             L_S_RANGE-OPT  = 'EQ'.
             APPEND L_S_RANGE TO E_T_RANGE.
    -> Node 'LEAVE1' (leaf)
    Regards
    Naga

  • Error while trying to Execute the Query with Customer Exit

    Hi Experts,
           I am having a Query with Customer Exit, it is working fine for all the Employess, except for one. When i try to remove the Customer Exit it is working for her too. Below is the error i am getting.
    system error in program SAPLLRK0 and form RSRDR; CHECK_NAV_INIT_BACK
    Thanks,
    Kris.

    Hello Kris,
    Are you working with multiprovider? Please check if OSS notes 813454,840080 or 578948 are applicable in your case.
    Regards,
    Praveen

  • Prob in text variable with customer exit

    Hi to all
    I am working in PA module in HR ,In my Report i have to count total number of trainee and lateral in given Date range that From date to To Date , Before that i have to calculate a Total Employee Strength before one day of From date , suppose user enter a 1st of April 2007 to 1st of jun 2007 , so Employee strength should be calculated on the 31march 2007, for that i have written custome exit , now i am getting a value also , for Display that date have a created a text variable with customer exit , but i am not able to get that date , it should be display strength as on 31march2007 , instead of it is displaying Strength as on 00.00.0000.I am giving a cod also
    ls_range-sign ='I'.
    ls_range-opt = 'EQ'.
    ls_range-low = 'EB1A'.
    append LS_Range to e_t_range.
    WHEN 'ZPA_DATE'.
    if i_step = 3.
    READ TABLE I_T_VAR_RANGE INTO L_S_VAR_RANGE WITH KEY VNAM = 'ZPA_DATE'.
    IF SY-SUBRC = 0.
    ZTEST = L_S_VAR_RANGE-LOW.
    ztest1 = ZTEST - 1.
    export p = ztest1 to MEMORY ID 'VALUE'.
    ENDIF.
    endif.
    WHEN 'ZFRMDAT'.
    if i_step = 3.
    ls_range-sign ='I'.
    ls_range-opt = 'EQ'.
    ls_range-low = ztest.
    append LS_Range to e_t_range.
    endif.
    when 'ZPA_CDAT'.
    if i_step = 3.
    ztest1 = ztest - 1.
    ls_range-sign ='I'.
    ls_range-opt = 'EQ'.
    ls_range-low = ztest1.
    append LS_Range to e_t_range.
    endif.
    when 'ZPA_VAR3'.
    if i_step = 3.
    ztest1 = ztest - 1.
    import p = ztest1 from memory id 'VALUE'.
    concatenate ztest16(2) ztest14(2) ztest1+0(4) into date separated by '.'.
    move date to temp.
    move 'Hello' to temp.
    ls_range-sign ='I'.
    ls_range-opt = 'EQ'.
    ls_range-low = temp.
    append LS_Range to e_t_range.
    endif.
    Please help me to come out
    Thanks

    Hi Stefania,
    to me it looks like your local variable num_mese is not defined with the correct data type.
    Try to change
    if num_mese = 09 to if num_mese = <b>'</b>09<b>'</b>,
    same for 10 -> '10', 11 -> '11'.
    If that does not help please let me know your coding where you define the type of num_mese (DATA statement).
    Regards
    Stephan

  • Variable creation in bw with customer exit

    hi experts,
    how to create a variable in bw with customer exit?

    Hi
    Create a variable with Processing type as customer exit.
    Then Go to Se38 and ZXRSRU01 program in change mode and there you write the necessary coding how your customer exit variable should process.
    else you can access the include function via CMOD also with selecting the enhancement for reports.
    Regards
    RaM

  • Formula Variable with customer exit

    Hi,
    can we use Formula variables with customer exit based  on characteristics(ex Bill date)? if yes, can you guys help me on this.
    Thanks
    kri

    Yes , you can use a formula variable with customer exit based on characteristics .
    Depends on the requirement what you want to show in the formula variable ,
    Eg : if you want to show the max fiscal year period , in that case :
    create a new formula in the keyfigure section of your query , go to edit , you can see formula variable below the keyfigures ,
    right click on the same and create new formula variable :
    Write the code for the formula varible in the backend as we do for normal customer exit varaible :
    for this e.g the code will be :
    FORM get_variable_value
          tables E_T_RANGE      type RSR_T_RANGESID
          using I_VNAM          type RSZGLOBV-VNAM
                I_VARTYP        type RSZGLOBV-VARTYP
                I_IOBJNM        type RSZGLOBV-IOBJNM
                I_S_COB_PRO     type RSD_S_COB_PRO
                I_S_RKB1D       type RSR_S_RKB1D
                I_PERIV         type RRO01_S_RKB1F-PERIV
                I_T_VAR_RANGE   type RRS0_T_VAR_RANGE
                I_STEP          type I.
      DATA L_S_RANGE LIKE LINE OF E_T_RANGE.
      DATA loc_var_range LIKE rrrangeexit.
    Data  : l_inPer TYPE string.
    IF i_step = 1.
    Select min( distinct FISCPER )
            from /BIC/A(DSO name)
            into l_minper  .
        l_s_range-sign = 'I'.
        l_s_range-opt = 'EQ'.
        l_s_range-low = l_minper  .
        APPEND l_s_range TO e_t_range.
    endif.
    drag the formula variable in the new formula created and exexcute the query , you will be able to see the output .
    This is just an example , your code will differ as per your requirement .

  • Variable with customer exit

    Hello,
    I have created a query with customer exit variable.this variable calculates cumulative month from the beginning of the year. this variable depends on another regular variable 0PCALMON (single value, mandatory). i also use this variable in the query to show the month itself.
    <b>the problem is as follow:</b>
    until yesterday the 0PCALMON variable pop up normally, but now the variable doesn't pop up  at all!
    Does anyone have an idea?
    Thanks,
    Maya

    Hi,
    The variable may be personalized with some value.
    <b>To remove the personalization for a user:</b>
    Step 1: RSA1 -> Search for ODS 0PERS_VAR
    Step 2: Manage -> Contents ->selective deletion
    Step 3: Put the user to remove the personalization
    http://help.sap.com/saphelp_nw04/helpdata/en/01/42c73c13b0ce5be10000000a114084/content.htm
    Regards
    Happy Tony

  • Characterstic variable with customer exit

    Can u some bady help me.
    How to express about Characterstic variable with customer exit
    Edited by: chenna reddy on Aug 7, 2008 9:48 PM

    Hi,
    The variable may be personalized with some value.
    <b>To remove the personalization for a user:</b>
    Step 1: RSA1 -> Search for ODS 0PERS_VAR
    Step 2: Manage -> Contents ->selective deletion
    Step 3: Put the user to remove the personalization
    http://help.sap.com/saphelp_nw04/helpdata/en/01/42c73c13b0ce5be10000000a114084/content.htm
    Regards
    Happy Tony

  • Formel Variable - how to fill with Customer Exit from control table

    Hello Experts,
    I have create in BEx-Analyser a formel Variable ZEXRATE1 filled through Customer Exit. In BW I had a "control tabel" with keyfigures.
    In the query definition I have include 0FISCPER, 0FISCVARNT and 0VTYPE. This
    are the keys which should give the values for the selectstatement to select my keyfigure from the "control table" to fill ZEXRATE1.
    If it possible to do with Customer Exit (CMOD -> RSR00001 -> ZXRSRU01) or do I have to implement a Bapi. Perhaps someone can give me a code example.
    Regards Dieter

    Hi,
    Code may look like this
    WHEN 'ZEXRATE1'.
    check i_step = 2.
        LOOP AT I_T_VAR_RANGE INTO L_S_RANGE.
          CASE L_S_RANGE-IOBJNM.
            WHEN 'ZFISCPER'. GV_ZFISCPER = L_S_RANGE-LOW.
            WHEN 'ZFISCVARNT'. GV_ZFISCVARNT =  L_S_RANGE-LOW.
            WHEN 'ZVTYPE'. GV_ZVTYPE =  L_S_RANGE-LOW.
          ENDCASE.
        ENDLOOP.
        SELECT SINGLE RATE into INTO GV_RATE
                  FROM ZTABLE
                  WHERE 0FISCPER = GV_ZFISCPER
                  AND   0FISCVARNT = GV_ZFISCVARNT
                 AND 0VTYPE = GV_ZVTYPE   .
    Assumptions : ZTABLE name of control table
                          ZFISCPER name of variable represents fiscal period
                          'ZFISCVARNT' name of variable representing fiscal year variant 
                          'ZVTYPE'. name of variable representing value type
    Hope that helps.
    Regards
    Mr Kapadia
    Assigning points is the way to say thanks in SDN.

  • Authorization (rsecadmin) with customer exit variable

    Hello,
    I need to maintain authorization on 0CALMONTH with a customer exit variable.
    0CALMONTH is "authorization relevant"
    I created a variable of type "customer exit" : ZVAR001 (this variable is OK, I checked its value in a query)
    I created a new authorization object with 0CALMONTH = $ZVAR001.
    When I run my query I have a message due to authorization error.
    If I change my authorization object by replacing my variable ($ZVAR001) by a constant value I have no authorization problem.
    I don't understand why...
    Error logs don't help me to solve my problem : I have the following message "Message EYE007: You do not have sufficient authorization" and system just says I have "0CALMONTH  I EQ $ZVAR001 " but doesn't precise values under variable ZVAR001
    Thanks for your help

    Indeed problem was in costumer exit because I used condition with "I_STEP". Since I have delete my condition I have no authorization problem with my variable....

  • Hierarchy node authorization problem

    Hi All,
    We are on SP10 for BI.
    We are restricting user to a node (fund center) in the hierarchy (based on fund centers).
    1) When a user executes the query and selects a node (in the filter
    selection criteria) to which he is authorized, the output of the query is
    restricted to the authorized node. This is what we want. Test is successful.
       After the query is executed, when the user tries to play around with the
    Fund Center info-object by moving it to the Free Characteristics space and
    back to the Rows, the node restriction still works and the user is again
    restricted to the authorized node. This is what we want. Test is successful.
    2) When a user executes the query and selects a higher node (in the filter
    selection criteria) to which he is NOT authorized, the output of the query
    is still restricted to the authorized node. This is what we want. Test is
    successful.
       After the query is executed, when the user tries to play around with the
    Fund Center info-object by moving it to the Free Characteristics space and
    back to the Rows, the node restriction no longer works and the user is now
    able to the data for the complete hierarchy. Now here our security fails and
    we do not want this to happen.
    Possible approach for a solution:
    We would want the user to see only the authorized nodes in the filter
    selection criteria. By doing this, the user will not be able select any
    other nodes and would be restricted to Testing scenario 1, thus avoiding testing scenario 2. Is this approach feasible? I found couple of OSS note but none of them exactly match to our situation here. Did anyone encounter this problem?
    Is there any other solution for this problem?
    Thanks,
    Jay

    Hello,
    this is interesting and sounds like system failure.
    I would suggest to open an OSS message and explain the system behaviour to the support. I'm sure they can help you.
    For me it sounds like the node authorization restriction should be active anytime.
    Best, Michael

  • Error With Customer Exit Variable

    Hi,
    I need To Create Customer Exit For Text Variable based on Two Input Variable values.
    can any one correct my code Code is written below based on quarter and Fiscalyearvarient.
    I have to get calmonth Text value.
    I am getting the error as : "I_T_VAR_RANGE" is a table without a header line and therefore has no
    Component Called "0PERIV".
    DATA :  l_s_range TYPE rsr_s_rangesid,
            loc_var_range LIKE rrrangeexit.
    IF i_step = 2.
    CASE i_vnam.
       WHEN 'ZTXT_CML' .
          CLEAR: l_s_range.
          LOOP AT i_t_var_range INTO L_S_VNAM WHERE vnam = 'ZQUAR' AND vnam = '0periv'.
            IF i_t_Var_range-0PERIV = 'IE'.
              IF i_t_var_range-ZQUAR = '1'.
                l_s_range-low = 'APRIL'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ELSEIF i_t_var_range-ZQUAR = '2'.
                l_s_range-low = 'JULY'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ELSEIF i_t_var_range-ZQUAR = '3'.
                l_s_range-low = 'OCTOBER'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ELSEIF i_t_var_range-ZQUAR = '4'.
                l_s_range-low = 'JANUARY'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ENDIF.
            ELSEIF i_t_var_range-0PERIV = 'K4'.
              IF i_t_var_range-ZQUAR = '1'.
                l_s_range-low = 'JANUARY'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ELSEIF i_t_var_range-ZQUAR = '2'.
                l_s_range-low = 'APRIL'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ELSEIF i_t_var_range-ZQUAR = '3'.
                l_s_range-low = 'JULY'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ELSEIF i_t_var_range-ZQUAR = '4'.
                l_s_range-low = 'OCTOBER'.
                l_s_range-sign = 'I'.
                l_s_range-opt = 'EQ'.
              ENDIF.
            ENDIF.
              APPEND l_s_range TO e_t_range.
          ENDLOOP.
      ENDCASE.
    ENDIF.

    Hi Supraja,
    You would have to declare I_T_VAR_RANGE internal table as the table with an header line.
    This you will find in data declaration segment.
    ie
    DATA : I_T_VAR_RANGE type <table name> WITH HEADER LINE.
    or
    Create a work area like l_s_var_range.
    Use work area while performing operations in your code and later append the record to the table i_t_var_range.
    DATA : L_S_VAR_RANGE type i_t_var_range.
    Also, i_step = 3 is the right one, because you are processing the customer exit based on the values of the user input of two variables.
    Modified code below.
    DATA : l_s_range TYPE rsr_s_rangesid.
    DATA : L_S_VAR_RANGE type i_t_var_range,
    loc_var_range LIKE rrrangeexit.
    IF i_step = 3.
    CASE i_vnam.
    WHEN 'ZTXT_CML' .
    CLEAR: l_s_range.
    LOOP AT i_t_var_range INTO l_s_var_range WHERE vnam = 'ZQUAR' AND vnam = '0periv'.
    IF l svar_range -0PERIV = 'IE'.
    IF l_s_var_range -ZQUAR = '1'.
    l_s_range-low = 'APRIL'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ELSEIF l_s_var_range -ZQUAR = '2'.
    l_s_range-low = 'JULY'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ELSEIF l_s_var_range -ZQUAR = '3'.
    l_s_range-low = 'OCTOBER'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ELSEIFl_s_var_range -ZQUAR = '4'.
    l_s_range-low = 'JANUARY'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ENDIF.
    ELSEIFl_s_var_range -0PERIV = 'K4'.
    IF i_t_var_range-ZQUAR = '1'.
    l_s_range-low = 'JANUARY'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ELSEIF l_s_var_range -ZQUAR = '2'.
    l_s_range-low = 'APRIL'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ELSEIF l_s_var_range -ZQUAR = '3'.
    l_s_range-low = 'JULY'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ELSEIF l_s_var_range -ZQUAR = '4'.
    l_s_range-low = 'OCTOBER'.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'EQ'.
    ENDIF.
    ENDIF.
    APPEND l_s_range TO e_t_range.
    ENDLOOP.
    ENDCASE.
    ENDIF.
    Hope it helps,
    Best regards,
    Sunmit.

  • Problem with customer exit variable in BeX Query

    Hi All,
    We have created a customer exit variable in a query and populated with few patterns in customer exit.
    My query has to bring all the records where the address line is containg the patterns passed through customer exit. Here the query is not working as expected.
    It is bringing the values where the address line is exactly same as the pattern and not bringing the records where the pattern is part of the address line.
    For example: Pattern passed in customer exit = 'HOSPITAL'
    The record where address line = 'HOSPITAL' is shown in the rpeort, where the record with address line = 'HOSPITAL ROAD' is not shown in the report.
    I would appreciate your help on this.
    Regards,
    Rakesh

    Hi Diogo,
    Below is the code I am using in the customer exit.
    SELECT * FROM zae_tt_pbuild INTO TABLE gt_pbuild.
          IF sy-subrc = 0.
            LOOP AT gt_pbuild INTO gs_pbuild.
              CONCATENATE '*' gs_pbuild-pbuild '*' into lv_pattern.
              ls_range-low = lv_pattern.
              ls_range-sign = lc_sign_i.
              ls_range-opt = 'CP'.
              APPEND ls_range TO e_t_range.
              CLEAR: ls_range,
                     lv_pattern.
            ENDLOOP.
          ENDIF.
         ENDIF.
    I have tried using '%' instead of '*' aswell but the result is same.
    Thanks,
    Rakesh

Maybe you are looking for