User Exit Variable picking values from InfoProvider

Hi,
I've created a User Exit variable (of type Interval, Mandatory) on 0CALMONTH and populating it in exit.
The problem is at the time of query execution, I get "BRAIN 657" error i.e.  "Value <value> is Invalid for Variable <variable name>".
After doing some analysis I figured out that once the user-exit code is performed, system validates the entries populated in this Variable against the values in InfoProvider and gives error when it doesn't find those values.
E.g. lets say InfoProvider has values for 0CALMONTH from 06.2010 till 10.2010 and if I populate my variable with range 03.2009 till 12.2010 then it throws above error. But if I populate the variable with exact values i.e. 06.2010 till 10.2010 then it works.
Any idea how can I remove this validation and populate with my own value range?
Regards,
Vikrant.

hi remove that default value from the variable.
and you shd be able to run the query without any problem.
regards,
VJ

Similar Messages

  • How to select several values from a user exit variable in a planning folder

    Hello,
    I have created a user exit variable for limiting the values only to which the user need to access.
    For a simulation part, it is then necessary for him to select several values from these values (not only one, and not all)
    But It seems in this case the user has only two possibilities :
    - keep all the values without any restriction
    - restrain the selection to only one value.
    It seems possible for the user to access to a multiple choice window, but this possibility doesn't seems to work : in all tests we did, only the first value was taken into account by BPS.
    If this method is not good do you know an other manner to permit the user to choice several values amongst a set of pre-selected  (because the original set is too important) values ?
    Thanks for your help.

    Hi Mayank,
    Thanks for your response, but I don't think it corresponds to my problem.
    I my case, I use a user exit variable to filter some data. It seems BPS offers the possibility to the user to select several values amongts the pre-selected values presented by the user exit variable, but it doesn't work. We can use a popup in which we enters the required values, but in final, only the first value is taken into account.
    I don't know if it is due to a BPS bug or if it is not a good solution in regard to BPS philosophy. In this case, the concerned caracteristic isn't in the header but in lead columns.
    I must present a solution to my client next monday, so I have not enough time to open an OSS message.
    An alternate solution should be interesting too.
    My need is to present to a user a selection of values amongst all values from an infoobject (the user exit variable seemed to be a good solution) and the user must have the possibility to select some values amongst these as filter.
    Regards

  • User exit variable I_STEP=1 does not show default value WebI selection scr

    Hello,
    We have a BW query with a user exit variable. We have written user exit code under I_STEP = 1 so that the default value for the field is displayed on the selection screen to the user. Works very well on the BW side.
    We based a universe on top of the query and then created a WebI report.
    When the WebI report is executed the default value is NOT seen on the selection screen,
    Note:
    1. If the user exit variable is optional and we execute the report, the default value is NOT seen on the selection screen. However if the report is executed without entering any value for the field the logic under I_STEP = 1 is picked up and the report gets the correct output
    1. If the user exit variable is mandatoryand we execute the report, the default value is NOT seen on the selection screen. The user now has to enter the value for the field.
    The scheduled reports will work in case of optional user exit variable.
    However this amounts to loss of functionality.
    Is this a known bug?
    Is there a way to display default values based on user exit variables on the WebI selection screen?
    Kindly advice. Btw we are on XI 3.1 SP3
    Rgds
    Edited by: Anup Deshmukh on Jun 29, 2010 11:13 PM

    OSS Note 1285993 - "Support of Customer Exit Variables from BEx query into WebIntelligence via OLAP universe"  deals with this issue and has deemed it out of scope for XI 3.1 SP3.
    Rgds

  • Value for user-exit variable  is invalid

    Hi Gurus,
    My Value for a Fiscal Year Prd returns a invalid value for the 12th month of each year( for Example 12/2004, returns the error "Value 200313 for User-exit variable is invalid.
    This is the code that is being used.
    *Rolling 12 months for entered month
    when 'ZCALM12'.
          clear: v_mth, v_yr.
          REFRESH E_T_RANGE.
          CLEAR L_S_RANGE.
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
                   WHERE VNAM = 'ZCALMON'.
            exit.
          endloop.
          v_yr = LOC_VAR_RANGE-LOW+0(4) - 1.
          v_mth = LOC_VAR_RANGE-LOW+4(2) + 1.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT = 'BT'.
          concatenate v_yr v_mth into L_S_RANGE-LOW.
          L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
          APPEND L_S_RANGE TO E_T_RANGE.
    Thanks in Advance.

    Hi Ravi,
    when 'ZCALM12'.
    clear: v_mth, v_yr.
    REFRESH E_T_RANGE.
    CLEAR L_S_RANGE.
    LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
    WHERE VNAM = 'ZCALMON'.
    exit.
    endloop.
    <b>-->> Here, you are not checking any thing.</b> <i>On which logic you are reducing year by one and increasing month by 1..?</i>
    v_yr = LOC_VAR_RANGE-LOW+0(4) - 1.
    v_mth = LOC_VAR_RANGE-LOW+4(2) + 1.
    -->><i>IF month is 200512 you will get output from above code is :</i> please check.
    v_yr = 2005 - 1 = 2004
    v_mth = 12 +1 = 13.
    L_S_RANGE-SIGN = 'I'.
    L_S_RANGE-OPT = 'BT'.
    concatenate v_yr v_mth into L_S_RANGE-LOW.
    L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
    APPEND L_S_RANGE TO E_T_RANGE.
    Try to debug the code by keeping break point after When. and execute the report, you will be debugging mode.
    Hope it Helps
    Srini

  • Need help in creating a user exit variable

    Hi all,
    I have created a query in which a key figure needs to be automated with an user exit variable.I want to derive the value of this key figure 'x' based on calender month.
    This key figure should get the cumulative value from the first month of the fiscal year till the calender year month entered while executing the query.
    I got a basic understanding on the User exits from SDN. But Im not sure how to implement this logic.
    I would really appreciate if you could provide me a detailed explanation of how to do this.
    Thanks in advance,
    Vinoth

    Hi
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/208811b0-00b2-2910-c5ac-dd2c7c50c8e8
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/6378ef94-0501-0010-19a5-972687ddc9ef
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2d99121a-0e01-0010-e78c-b1ae566a2413
    http://sap.ittoolbox.com/groups/technical-functional/sap-bw/how-can-i-set-bex-variables-in-i_step3-exit_saplrrs0_001-335232

  • RRI & user exit variable

    Hello RRI specialist!
    I need to implement the following logic: user executes report 1 (sender) which contains characteristic Material (and several other characteristics). With the RRI the user must be abled to jump into report 2 (receiver)displaying the Material Type(s) of the Material selectied in report 1.
    Note: in this case there is a n:m relationship between Material and  Material Type. The relationship between Material and Material Type exists in a Z-table.
    I thought to implement this with 2 alternatives:
    First alternative, under Assignment Details, assigning Material to variable V1 (being a User-Exit variable of type Material Type) used in report 2.  From report 1 I hope to jump into report 2 by "selecting" on a Material (e.g. 4711) and then read the Z-table when i_step = 2 to find the corresponding Material Type. 
    Prolem: when I set a break point for V1 in ZXRSRU01 I see that V1 does not appear in the table I_T_VAR_RANGE (for any i_step), i.e. the values (e.g. 4711) are no passed from the sender selection to V1.
    Second alternative, under Assignment Details, assigning Material to variable V2 (being a User-Entry/Default variable of type Material) used in report 2.  Report 2 will then contain variable V3 (being a User-Entry/Default variable of type Material Type). The user-exit logic will read V2 from I_T_VAR_RANGE when i_step = 2 and the Z-table to find the corresponding Material Type.  
    Problem: exactly the same as above. NOTE: it does not help that V3 is of type replacement type from the sender report.
    When I use the debugger of the RRI in RSRT2 both alternatives seem to work correctly.
    Does the variable defined under Assignment Details have to fulfill certain conditions in order for the values to be passed?
    Is it simply that ZXRSRU01 is called before the values are passed from the sender report?
    Anybody got an idea what I am doing wrong and how I could implement the requirement to read the Z-table in the RRI jump????
    Thanks for any help,
    Martin

    Dear Martin,
    That was a good explanation of issue and approach. It had been quitesome time to work on user exits. I am not sure the following views can help you.. but i am also interested in the solution..
    1) can we include the material group in the sendor ( hidden) and can this me directly assigned to target?
    2) I think i_step = 2, get excuted after user filled the values manually. How about trying i_step = 3, i think this is the loop for reading other than manual entries..
    3) how about the trails of filing the default values at i_step = 1, on the taget query names. Notsure this will give you the solution.. just my thoughts..
    regards,
    hari

  • BPS User Exit Variable based on Planning Package Selection

    Hi,
    I'm implementing a SAP BW-BPS planning layout to be integrated into the CRM we user interface.
    Most of the characteristic selections come from the CRM fields that need to be filled by the user when creates a trade promotion.
    The charcteristic selections work (as standard) just if in the planning level I flag "Selection in Package", then in package these selections are dinamically defined from what the user select in the CRM fields at runtime.
    My problem is that I have to build a BPS User Exit variable to filter, in the planning level, the proper Planning Area based on the CRM Sales Organization value.
    The characteristic CRM Sales Organization belongs to whose chararcteristic the value is determined dinamically in the planning package.
    Is it possible for a BPS user exit variable, set in the planning level, to catch the value of a characteristic selection made at planning package?
    Many thanks for your help.
    Alessandro

    Hi Indu,
    Many thanks for your answer.
    I have already took a look at the document posted by you but I didn't find the solution to my problem.
    This because i have to create a user exit variable that need to get the value of the characteristic selection in package.
    I mean in the planning level I will have the user exit variable that restrict the planning area and, his function module, need to read, at runtime, what is the value of the characteristic CRM Sales Organization restricted in package by CRM.
    So I don't have any idea to which BPS internal table I have referred to in my funcion module to catch the value of the CRM Sales Organization dinamically filtered by CRM.
    Many thanks,
    Alessandro

  • BEx Analyzer exit variable behaves differently from RSRT

    Hello experts
    I have an exit variable on a number of queries which is being filled out at I_STEP 1 with different values depending on which query is executed. This is a requirement for a number of reasons and cannot be changed. The user then has a different variable which is user input ready so he can select from one of the values I supply them. This variable is in the proposed values section of the query so it should only list the variables allowed for the user to select.
    For example on query A, I want the exit variable to give the values 1,2 and 3. The user, on variable screen can select in the input-ready variable on of those values. In query B the same happens except the exit variable has values 3, 4 and 5.
    If the user accesses one of these queries everything works fine. The problem happens when the user accesses query A, closes it and then accesses query B. In this situation he sees values 1,2,3,4 and 5 as available instead of only 3,4 and 5. It seems that the system shows him variables 1 and 2 despite the fact that he can't access them. This only happens in analyzer but not if I use RSRT. Is it a bug in Analyzer? I've tried debugging from RSRT the code to check if I forgot to clear something but I cannot find anything wrong but then again the problem does not happen in RSRT.
    What can I try to do to solve this?
    Thanks for your help.

    I've done some further researching and discovered the following:
    1 - My exit variable is working fine. It gets the correct values.
    2 - The user-input variable is not being filtered correctly. It looks like it does not show only the values allowed in the exit variable.
    Is this right? I thought if I had a set of values in the filter of the query, they would automatically restrict user input variables that the query may use in the proposed values.

  • Problem with User exit variable

    We're using an user exit variable (var2) for YTD calculation (For getting the first month of current year). It gets value from another exit variable (var1) which has by default value last month of current year(populated in I_step1 from sy-datum). If the user wants he can change the default value of var1. It works fine when the query is executed the first time. But if the user calls the variable screen again, the variable screen does not show var1 in the popup and the user gets an error message that no value could be determined for var2. How can this issue be resolved or is there any other method to satisfy this requirement.
    Your help would be appreciated and rewarded.
    Thanks & Regards
    Hari

    Hi Ravi,
    Sorry, there's a correction. <b>var2 is used for getting the first month of the year selected by the user in var1</b>. If the user doesn't enter a value for var1, then var2 should take first month of current year from var1 which has by default last month of current year (populated in i_step1 from sy-datum). The user can select the value of var1 according to his requirement. Then var 2 should get first month of the year selected. That's why I'm using two exit variables.
    It works fine during the initial run of the query. But when the user clicks on the variable button in the toolbar and executes the query, var1 is not being displayed and an error message <i>No value could be determined for var2</i> is shown. All other variables used in the query are displayed except var1.
    Krzys, Is the option <i>Can be changed in Query Navigation</i>  available for Exit variables. I'll check that and get back to you.
    Boujema, Thanks for the OSS note.
    Thanks
    Hari

  • ABAP help in user exit variables

    Hi,
    In the selection screen of a query, I have an optional variable CalenderMonth (SOMONTH). I have to calculate another user exit variable (CALMONTH) in ZXRSRU01 by using this SOMONTH. This is how. If the value SOMONTH is entered, then I need to assign SOMONTH to CALMONTH. If SOMONTH is not entered, then I need to set CLAMONTH to current calender month from system date.
    For that, I need to check if SOMONTH is entered or not in the program ZXRSRU01. This is what I am trying to do, and is not working.
    WHEN 'CALMONTH'.
        If I_step = 2.
          Loop at I_T_VAR_RANGE into LOC_VAR_RANGE
                 Where VNAM = 'SO_MONTH'.
           IF LOC_VAR_RANGE-LOW IS INITIAL.
            ELSE
           ENDIF.
    <b>PROBLEM:</b> The statement "IF LOC_VAR_RANGE-LOW IS INITIAL." is not working. When I try to debug the code, program aborts at that line. By this line of code, I mean to check if SOMONTH is initial or not.
    Any suggestions or ideas very much appreciated.
    Thanks alot
    John

    Hi
    When I have tried something similar to this (in BW v3.1), and the (optional) variable I am reading from is not populated by the user; in STEP 2 table I_T_VAR_RANGE does not contain a record for it. Hence, the logic I would use is:
    CASE I_VAM.
    WHEN 'CALMONTH'.
      IF I_STEP = 2.
        READ TABLE i_t_var_range INTO loc_var_range
        WITH KEY vnam = 'SOMONTH'.
        IF SY-SUBRC = 0.
          loc_range-low = loc_var_range-low.
        ELSE.
          loc_range-low = sy-datum+4(2).
        ENDIF.
        loc_range-sign  = 'I'.
        loc_range-opt   = 'EQ'.
        APPEND loc_range TO e_t_range.
       ENDIF.
    Hope this helps.

  • User Exit variable to determine Month to date

    Hello folks, wondering if someone could please assist with this problem.  I have  a need for a user exit variable that will determine the MTD based on a user input from another variable.  For example, if a user enters 09/15/2009, the exit will know to retrieve information only for the days from 09/012009 - 09/15/2009.  Here is the sample of the code that our ABAP programmer came up with but so far it's not working.  Can someone please have a look at the codes below and let me know what may be the problem?  Thanks.
    in CMOD:
    *&  Include           ZXRSRU01
      DATA: l_sub_name TYPE char30,
            l_f_chk TYPE rs38l_fnam.
      CONSTANTS: lc_sub_prefix TYPE char5 VALUE 'F_BW_'.
      CASE i_step.
        WHEN 3.
          CONCATENATE lc_sub_prefix i_s_rkb1d-infocube INTO l_sub_name.
        WHEN OTHERS.
          CONCATENATE lc_sub_prefix i_vnam INTO l_sub_name.
      ENDCASE.
    *--- this for XXX project. please create programs for
    *--- each individual projects (project).
    *--- variables at STEP 2
      CASE i_vnam.
        WHEN  'BCCMTD'.
          IF l_sub_name IS NOT INITIAL.
            SORT i_t_var_range BY vnam iobjnm.
            PERFORM (l_sub_name) IN PROGRAM    zbw_XXX_exit
                                      USING    i_t_var_range
                                      CHANGING e_t_range.
            CLEAR l_sub_name.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
    **--- infocubes at STEP 3
      CASE i_s_rkb1d-infocube.
        WHEN 'BSD_M01'.
          IF l_sub_name IS NOT INITIAL.
            SORT i_t_var_range BY vnam iobjnm.
            PERFORM (l_sub_name) IN PROGRAM    zbw_XXX_exit
                                      USING    i_t_var_range
                                      CHANGING e_t_range.
            CLEAR l_sub_name.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
    Edited by: David on Oct 1, 2009 5:08 PM

    more info on the program
    In zbw_XXX_exit program
    FORM f_bw_bccmtd USING    i_t_var_range TYPE zbw_rrs0_t_var_range
                     CHANGING e_t_range     TYPE rsdd_t_range.
    *--- current date
      DATA: l_current_date TYPE sy-datum.
    *--- initialize the variables
      CLEAR:   v_wa_var_range, v_exch_rate,
               v_exch_temp, v_wa_return.
    *--- get the appropriate value from input variable table
      READ TABLE i_t_var_range INTO v_wa_var_range
           WITH KEY vnam    = c_var_name3
                    iobjnm  = c_obj_name2
                    BINARY SEARCH.
      IF sy-subrc = 0.
        l_current_date = v_wa_var_range-low.
        l_current_date = l_current_date - 1.
        CLEAR v_wa_return.
    *--- populate return value
        v_wa_return-sign = c_sign.
        v_wa_return-opt  = c_opt_bt.
        CONCATENATE l_current_date+0(6) c_one INTO v_wa_return-low.
        v_wa_return-high  = l_current_date.
        APPEND v_wa_return TO e_t_range.
      ENDIF.
    ENDFORM.

  • Populate user exit Variable with User Authorizations using ABAP?

    Hi, Does anyone know of a way to populate a user exit variable (with ABAP) with the Authorization Values for a user running a report?  I am turning off authorizations for our InfoProvider using RSSM and want to populate a variable instead and use the variable as a filter.

    Hi Kenneth ,
    You need dynamic authorization in your report .This can be done at query runtime by using exit variable and writing cmod code for the same .
    This code will read authorization maintained at runtime of query in i_step = 1 and will pass input var values accordingly .
    For step by step information you can access this document .
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0f9f33c-0f17-2d10-d3a2-ae52ccd00780?quicklink=index&overridelayout=true
    Hope this will be helpful .
    Regards,
    Jaya Tiwari

  • User-Exit Variable Scenario

    Hi,
    I have a multiprovider M1 over two cubes C1 and C2. User reports on this Multiprovider M1.
    C1 has keyfigure K1 which holds activity values for each Calendar Year Month.
    C2 has keyfigure K2 which holds only Inception to Date values for each Calendar Year Month.
    User needs a report which displays Activity values for both K1+K2 for each calendar year month(for the range he gives).
    To calculate activity value per month for K2, we need to get Change in the Inception to Date values between current month and the prior month.
    So, as per the user requirement, if for example we need activity for Jan 2006, the value he needs would be
    K1(jan 2006) + K2(jan 2006 - dec 2005).
    I created 2 user-exit variables V1 and V2 based on the characteristic Calendar Year Month having a variable V0(Interval, mandatory).
    V1 takes the "low" value and V2 takes the "low + 1" value of V0.
    In the columns panel of the BeX designer, I created a structure S1 which contains keyfigures K1(V1), K2(V1) and K2(V2). I made a formula, "K1(V1) + (K2(V2) - K2(V1))".
    I put the calendar year month characteristic with variable V0 in the filters panel. Ran the query with a wide range 01/2004 to 12/2006. It gave me results for only first 1 month (01/2004).
    I moved the calendar year month characteristic with variable V0 into the columns panel on the top of the structure S1. Ran the query with a wide range 01/2004 to 12/2006. It gave me results for only first two months (01/2004 and 02/2004). But, unfortunately either of K2(V1) or K2(V2) is blank for each month.
    Anyways, I was able to successfully get what user wants by keeping V0 in filter panel, but could make it just for 1 month. But, I want this to be extended over all the months for the range user gives.
    Can anyone suggest a good way to do this? Hope I did not confuse you with lot of information.
    Thanks,
    Sai.

    Hi,
    1.
    Change V0 to single value (mandat.)
    2.
    Put restriction [V0-1; V012] (value restr. from V0-1 to V012) in filter panel for char Calendar Year Month.
    3.
    Define 13 Customer-Exit Variables:
    V1 for -1 period () of time interval (from char. Calendar Year Month),
    V2 for 1 period of time interval (from char. Calendar Year Month),
    V13 for 12 period of time interval (from char. Calendar Year Month).
    4.
    Create 13 Selections (always hidden):
    Sel1 for V1,
    Sel2 for V2,
    Sel13 for V13.
    5.
    Make 12 formulas. In every formula you can use
    all of these 13 selections.
    Yes, it is not a perfect solution, but hope it helps.
    But Cell editor is a killer for perfomance

  • User-Exit Variable

    Hi, I created a simple user-exit variable and for some reason the variable seems to get executed around 16 times and then the query gives me the below error messages.   Any ideas why my variable would have I_STEP = 2 many times before it bombs out? 
    Note: This variable is based on a Virtual Characteristic I just implemented and is probably related.  The query did not fail before trying to implement this user exit based on the Virtual Characteristic.
    Error for variable in customer enhancement ZVRSR_001
    Incorrect call of OLAP layer CL_RSR_OLAP; error in BW-BEX-ET
    *~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
    * Load Variable with NCI Authorized Sales Rep (Sales Group)
    *~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
      WHEN 'ZVRSR_001'.
        IF I_STEP = 2.                         "after the popup
          DATA: LT_REP    TYPE /BIC/AZ_P_O04300.
          DATA: LV_REP    TYPE /BI0/OISALES_GRP.
          SELECT SINGLE * FROM /BIC/AZ_P_O04300 INTO LT_REP
               WHERE USERNAME = SY-UNAME.
          IF SY-SUBRC = 0.
            W_L_S_RANGE-LOW = LT_REP-/BIC/ZSHTO_GRP.
          ELSE.
            W_L_S_RANGE-LOW = '???'.
          ENDIF.
          W_L_S_RANGE-SIGN = 'I'.
          W_L_S_RANGE-OPT  = 'BT'.
          APPEND W_L_S_RANGE TO E_T_RANGE.
        ENDIF.
    ENDCASE.

    OK, It looks like because it is a Virtual Characteristic that the User Exit Variable Code will be called every time the "Virtual Characteristic" code is executed as well.  The real problem seemed to be that I had used a BT in the Variable User Exit Range.  Once I changed that to "EQ' it works fine now.  Thanks

  • BI 7 Bex Query - User exit variables after variable screen re-processed

    User exit variables are not re-calculated after the variable screen is called up to re-run report with a new selection.  Is there some way to force the user exit variables to change?   I am aware of note 1064273 but this doesn't seem to help in these circumstances.
    Example:
    My Bex Query uses OI_FYPER for a static characteristic selection and  I have defined a customer exit formula variable which uses the values in OI_FYPER.
    All works fine when the query is run first time but if the user calls up the variable screen to change the selection and re-run the query, the customer exit formula variable is not re-calculated (customer exit is called but only with ISTEP = 3).
    Software version is NS2004S (BI 7.0)  SPS10, BI ABAP SP11, BI JAVA SP10, BI Front End Package 1401 rel 354.

    hi.. i just came to know about this in another thread..
    I_STEP 3 does not have I_VNAM stored. So, to access values at I_STEP3 :
    data: l_range TYPE RRS0_S_VAR_RANGE.
    if I_STEP = '3'.
    read table I_T_VAR_RANGE into L_RANGE with key VNAM = 'OI_FYPER'
    if SY-SUBRC = 0.
    ...code as required...
    endif.
    endif.
    Customer-Exit for analysis Authorizations: i_step = 3, i_vnam is empty

Maybe you are looking for