Range customer exit

Requirement, I am trying to populate the user entry date from variable single value
<b>ZP_userent'.</b> and then feed that date to customer exit variable <b>'ZP_custexit'.</b> to calculate the range User entry date --  '01012099'.
but it is not populating any values in report
Error can not populate 'ZP_custexit'. Please correct error i think date format is not correct
DATA: L_S_RANGE TYPE RSR_S_RANGESID.
DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.
IF I_STEP = 2 AND I_VNAM = 'ZP_custexit'.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZP_userent'.
CLEAR L_S_RANGE.
L_s_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(8).
L_S_RANGE-HIGH = '01012099'.
APPEND L_S_RANGE TO E_T_RANGE.
EXIT.
ENDLOOP.
ENDIF.
Thanks
Soniya

Hi,
     in your code you are using OPT = 'EQ' for range its not correct instead use
    OPT= 'BT'.
     Since you are going to use range (low, high) you should use Between(BT) option.
Change your code like this:
IF I_STEP = 2 AND I_VNAM = 'ZP_custexit'.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZP_userent'.
CLEAR L_S_RANGE.
L_s_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(8).
L_S_RANGE-HIGH = '01012099'.
APPEND L_S_RANGE TO E_T_RANGE.
EXIT.
ENDLOOP.
ENDIF.
You should have defined your customer exit variable as variable range instead of single variable since you are going to populate range values.
and also, when uou are giving constant values for date use this format 'YYYYMMDD, (ex:'20990101')
rGRDS,
sEN
Message was edited by:
        Senthilkumar Viswanathan

Similar Messages

  • Custom Exit for determining previous-year time range

    Dear all:
    I have a problem about custom exit:
    We have created a new object for combining Fiscal Year/Month and Period. So the format will be shown as " yyyymmp"
    now we have one requirement which is determining the same period but previous year based on user input. For Example, if user input start and end period as
    "2006041" and "2006111". There are should be 2 custom exit which are able to convert the user input to be "2005041" and "2005111". We created 2 custom exit for telling the previous-year period.
    Then based on this converted time range, we should be able to extract applicable data. But after testing, we cant get supposing result. The code is following:
    We will be very grateful for any input. thank you all so much
    Calculate (Start)previous year/month/period by current
    *year/month/period
    *user-entry calendar year/month/period
    WHEN 'ZFACLV19'.
          LOOP AT i_t_var_range INTO loc_var_range
          WHERE vnam = 'ZFACYMP1'.
            CLEAR l_s_range.
            LOC_YEAR = LOC_VAR_RANGE-LOW(4).
            LOC_MONTH = LOC_VAR_RANGE-LOW+4(2).
              LOC_YEAR = LOC_YEAR - 1.
            L_S_RANGE-LOW(4) = LOC_YEAR.
            L_S_RANGE-LOW+4(2) = LOC_MONTH.
            L_S_RANGE-LOW6(1) = LOC_VAR_RANGE-LOW6(1).
            l_s_range-sign = 'I'.
            l_s_range-opt = 'EQ'.
            APPEND l_s_range TO e_t_range.
            EXIT.
          ENDLOOP.
    Calculate (End)previous year/month/period by current
    *year/month/period
    *user-entry calendar year/month/period
    WHEN 'ZFACLV20'.
    break ab_william.
          LOOP AT i_t_var_range INTO loc_var_range
          WHERE vnam = 'ZFACYMP2'.
            CLEAR l_s_range.
            LOC_YEAR = LOC_VAR_RANGE-LOW(4).
            LOC_MONTH = LOC_VAR_RANGE-LOW+4(2).
              LOC_YEAR = LOC_YEAR - 1.
            L_S_RANGE-LOW(4) = LOC_YEAR.
            L_S_RANGE-LOW+4(2) = LOC_MONTH.
            L_S_RANGE-LOW6(1) = LOC_VAR_RANGE-LOW6(1).
            l_s_range-sign = 'I'.
            l_s_range-opt = 'EQ'.
            APPEND l_s_range TO e_t_range.
            EXIT.
          ENDLOOP.
    SzuFen

    Hi,
    Try with following modifications:
    ZYEAR1(4) = LOC_VAR_RANGE-LOW(4).
    ZYEAR1(4) = ZYEAR1(4)- 1.
    ZMONTH1(2) = LOC_VAR_RANGE-LOW+4(2).
    CONCATENATE ZYEAR1(4) ZMONTH1(2) INTO LOC_VAR_RANGE-LOW(6).
    With rgds,
    Anil Kumar Sharma .P

  • Count the number of days in the selected range using Customer exit

    Hi Experts,
    we have requirment where user is asking to add a column to report, which will have 'count of days for which key figure is having values' for each of the months and the Header would be 'Day Count'
    Please let me know if its possible using Customer exit?

    Hi,
    In our report we have two characteristics site no. and product and we have 6 key figures of type quantity and Input for the report is Fiscal year/period
    So in the report Key figures are populated with values for respective site no. and product combination
    Now the user wants new column in report which will have header u2018Day countu2019 and it should Simply count the number of days in the selected range that have a volume different than 0 for key figure
    Please let me know if more details are required

  • Query row structure to restrict on multiple ranges of Calendar Year /Month using Custom exit

    Hi All,
    I have written 2 queries in Bex 7.x which have similar requirement. One uses 0CALMONTH and other 0FISCPER. I will describe scenario with Calendar Year month query.
    Query to have user entry screen for 0CALMONTH. Added 0CALMONTH in Filters section and restricted on mandatory user entry variable.
    Key figures restricted in four ways by creating a row structure with four selections
    Current Month User entered value on selection screen (Restricted on User entry variable)
    Previous Month / Period (Above value offset -1)
    YTD value Range from Previous July / 07.YYYY to current user entered month value (Custom exit)
    LYTD value - Above value for previous year (Above value offset -12)
    For YTD value wrote a custom exit code which uses the user entry variable on 0CALMONTH to retrieve the current month value and then give output range value for YTD.
    The custom exit code when debugged seems to calculate the correct range. However the query output is not working and gives out the same data for Current month and YTD range. Also LYTD value and Previous month value don't show up with any data at all.
    Any tips on where we are going wrong would be helpful.
    Thanks!
    Custom Exit code:
    WHEN 'ZGB_FP_AYTD_PTNR'.
         IF i_step EQ '2'.
           READ TABLE i_t_var_range INTO loc_var_range WITH KEY vnam = 'ZFP_AYTD_PRTNR'
                                                                iobjnm = '0CALMONTH'.
           IF sy-subrc EQ 0.
             CLEAR: l_month_curr, l_month_low, l_year_curr, l_year_low,
                    l_calmonth_low, l_calmonth_high.
             l_month_curr = loc_var_range-low+4(3).
             l_year_curr = loc_var_range-low+0(4).
             l_month_low = 001.
             l_year_low  = l_year_curr.
             CONCATENATE l_year_low l_month_low INTO l_calmonth_low.
             CONCATENATE l_year_curr l_month_curr INTO l_calmonth_high.
             l_s_range-low = l_calmonth_low.
             l_s_range-high = l_calmonth_high.
             l_s_range-sign = 'I'.
             l_s_range-opt = 'BT'.
             APPEND l_s_range TO e_t_range.
           ENDIF.
         ENDIF.

    Hi
    try this code
    WHEN '0CALMONTH'.
    CLEAR: l_month_curr, l_month_low, l_year_curr, l_year_low,
                    l_calmonth_low, l_calmonth_high.
         IF i_step EQ '2'.
      loop at i_t_var_range INTO loc_var_range where vnam = 'ZFP_AYTD_PRTNR'.
             l_month_curr = loc_var_range-low+4(2).
             l_year_curr = loc_var_range-low+0(4).
             concatinate '0' l_month_curr into l_month_low.
             CONCATENATE l_year_low '001' INTO l_calmonth_low.
             CONCATENATE l_year_curr l_month_low INTO l_calmonth_high.
             l_s_range-low = l_calmonth_low.
             l_s_range-high = l_calmonth_high.
             l_s_range-sign = 'I'.
             l_s_range-opt = 'BT'.
             APPEND l_s_range TO e_t_range.
           endloop.
         ENDIF.
    This code used for calculate fiscal period interval from your input month.
    For Ex
    user input is 05.2014
    customer exit result as 001.2014 - 005.2014.
    Note: Fiscal year period is Jan - Dec otherwise need to convert the input month details.
    Regards
    Sureshkumar

  • Problem with customer exit variable on date range

    Hi All,
    I have customer exit variable on date range. In the selection screen it has to give the week range  as a default (05/21/2009 to 05/27/2009).
    Earlier its working fine and from yesterday onwards it is not working properly. yesday onwards default date range was not displaying in selection screen.
    Wht would be the problem.
    Thanks in Advance

    Hi Ashish,
    I checked every thing what u told earlier. Every thing is fine.
    And another thing is
    I have routine in infopackage level. Since day before yesterday it was working fine and yesterday onwards it was not working.
    Eg: budat will take the data based on routine for the week. But yesterday onwards it is not picking up the data.however I have the data in datasource for the week.
    Wht would be the problem. I debuged the code and its working fine.
    Sekhar

  • Customer exit Variable to split single date value into a range

    Hi All,
    we have a requirment where user will enter a date(01/21/2010) value in the variable input screen, it should be single value and mandatory, and the query output should have data for the Preceding 24 months for all 6 Key figures.  (e.g. user chooses 12/15/2009, result set is 12/01/2007 - to - 11/30/2009) summarized by month,
    Our query design is as given below -
    since we only have DATE value in the cube, we have added FISCAL YEAR/PERIOD in the cube and mapped DATE with time chars. Now the cube has the data stored in monthly buckets using FISCAL YEAR/PERIOD . Now we have used the variables  FISCAL YEAR/PERIOD  to restrict Key figures and have an offset on that to get the prior 24 periods.
    Since in our requirement user wants to enter Date variable asmandatory input, we create 1 customer exit variables as a mandatory & single value variable for Date Variable, and using that exit variable we thought of passing the period of user entered date to FISCAL YEAR/PERIOD  which we are using to restrict Key figures and get offset of 24 months.
    Can someone please help us in passing this period vaule from inout Variable Date to Fiscal year/period using CMOD, any other ideas are also welcome
    Thanks in advance

    Hi sateesh,
    we are using DATE_TO_PERIOD_CONVERT ,but in this case if user enter's a date (01/21/2010) then we are getting output only for that date and not for the entire prior 24 months period
    As per our requirment when user enter's date (01/21/2010) it should get the whole range that is entered date and 24 prior months and pass the range back to same input Variable so that in the output we get the data for entire prior 24 months
    Thanks

  • Customer exit variable for date range for the last day

    Hi,
    If user enters date ranges in variable
    suppose user enters 9/1/2010 to 9/15/2010 and we have to calculate currency conversion based on last day i..e 9/15/2010 . 08
    2)User input is date range 08/01/2010 to 08/30/2010
    I need from the customer exit 08/30/2010 (on last day) to calculate currency conversion.
    Can anyone help me with ABAP code to achieve this customer exit?And please tell me how to proceed step by step
    Sridhar

    create a variable to enter date range (ZDATE1)
    create a key date variable(ZDATE2) with processing type customer exit, should not be ready for input.
    In the exit ZXRSRU01 write below code.
    DATA: l_s_range TYPE rsr_s_rangesid,
          loc_var_range LIKE rrrangeexit.
    WHEN 'ZDATE2'.
        IF i_step = 2.
           read table i_t_var_range INTO loc_var_range
                    with key vnam = 'ZDATE1'.
            CLEAR l_s_range.
            l_s_range-low = loc_var_range-high.
            l_s_range-sign = 'I'.
            l_s_range-opt = 'EQ'.
            APPEND l_s_range TO e_t_range.
        ENDIF.

  • Customer Exit With Multiple Ranges

    Hi Experts,
    I have created a customer exit for my query. The values from this customer exit are multiple intervals.
    I|BT|2005001|2005006
    I|BT|2005002|2005007
    I|BT|2005003|2005008
    Is it possible to pass these interval values to a selection-options variable in my query? What type of variable should I use? Thanks in advance.
    Juice

    Hi San,
    Thanks for the reply. I tried setting the variable as interval but when I run the query in RSRT, i recieve an error message and then it won't display anything.
    However, when I set the variable to selection-options, the intervals seem to overlap. Instead of displaying like (as in RSRT ABAP Debugging mode):
    I|BT|2005001|2005006 -> Jan 2005 to June 2005
    I|BT|2005002|2005007 -> Feb 2005 to July 2005
    I|BT|2005003|2005008 -> March 2005 to August 2005
    It displays Jan 2005 to August 2005 in the query.How can I correct this?  Please help. Thanks.
    Juice

  • How to get data for current week and previous week using customer exit in Bex.

    Hi everyone,
    I have a scenario in which I need to display data for current week and previous week (based on "sy_datum" the program has to calculate current week and previous week) in Bex using  Customer exit. I have created one variable in Bex Query Designer and I have written code for the variable in CMOD. But it is not working fine, (I know that we can do the same by using offset value in Bex). Can some one guide me how to achieve my requirement using customer exit.
    Thanks in Advance,
    G S Ramanjaneyulu.

    Hi krishna,
    Thanks for your quick reply, can you have a look at my code,
    case i_vnam.
    WHEN 'ZPWK_CWK'.
    ranges : pre_week for sy-datum.
    data : start_date type DATS,
           end_date TYPE dats .
    ************FM TO GET FIRST DATE OF CURRENT WEEK ************************
    CALL FUNCTION 'BWSO_DATE_GET_FIRST_WEEKDAY'
      EXPORTING
        DATE_IN  = sy-datum
      IMPORTING
        DATE_OUT = start_date.   " WEEK FIRST DATE
    end_date = START_DATE + 6.   " WEEK LAST DATE
    END_DATE   = START_DATE - 1.   " PREVIOUS WEEK END DATE
    START_DATE = START_DATE - 7.   " PREVIOUS WEEK START  DATE
    **********PREVIOUS WEEK DATES IN PRE_WEEK******************
    pre_week-SIGN   = 'I'.
    pre_week-option = 'BT'.
    pre_week-LOW    = START_DATE.
    pre_week-HIGH   = END_DATE.
    APPEND  pre_week.
    CLEAR : START_DATE,END_DATE.
    endcase.
    Regards,
    G S Ramanjaneyulu.

  • Displaying Customer Exit Variable with derived value from another ODS

    Hi All,
    Sorry if this question has been answered before.  I searched the forums and could not find anything specific to my problem.
    I am new to BEx Query.  Customer is requesting a variable(s) be created which will be displayed as a column along with other CKF and RKF.  This query is a payroll query for US/Canada.  This new variable will be based on the user input date for the query.  We are to take this date and go look up the actual pay date for the pay period to which the user input date belongs.  The pay date is stored in another ODS.
    So far, as far as the changes to the Customer Exit ZXRSRU01 are concerned, I would perform the logic when I_STEP = 2.  Do a basic selection off the second ODS, derive the pay date, and store in range table E_T_Range.
    The data displayed off the user input date is displayed in rows.  This is done six times, going back seven days for each row (first row is data for period user entered date to user entered date - 7 days; second row is data for period user entered date - 7 days to user entered date - 14 days; etc ...).  For this to happen  correctly, I am assuming the variable(s) are to to have characteristic types 'Not ready for input', 'Mandatory', 'Customer Exit', and 'Single Value'.
    My question is ... How do I display the six variables in columns (how are they to be defined in the query) and the characteristics I list above, are they correct? Does this need to be a replacement path variable?
    Thanks.
    Edited by: Amir Hasan on Jun 11, 2009 6:24 PM
    Edited by: Amir Hasan on Jun 11, 2009 6:25 PM

    Hi Amir,
    What i can understand from u r requirement is you want to few columns that will show something like below,
    User entered date = x
    Period of X to Period of (X-7)       Period of X to Period of (X-14).....
    This can be done by CMOD for variable only.
    Logic steps :
    1) Take the user input.
    2) Find out the period by using T009B table and store in temp variable.
    3) Do day -7 and find out period for the same
    4) Assing period of X to ls_range-high range and X-7 to ls_range-low.
    Let me know if you have any doubt
    Regards,
    Viren

  • How to Verify the Variable Input in Customer EXIT

    Hi,
          I have a requirement to find out "Estimated Hours Total Calculation" with User input date range. I know little bit knowledge about Customer Exits please some one give me how to write code in CMOD. I have requirement how to get the Extimated Hours Total Calculation is follows ....
            Actual hours are the Hour Meter Reading used by the truck, it's calculated based on the "from and to" date parameters.       
    Collect the initial hours and adjusted hours from EM.       
    Get the PMN and Service Order data close to or within the Date Range.     
    1) If the Fleet Management Date (Start-up Date on EM) started before the input date Date Range (From-Date), calculate the average usage (in hours) based on the initial hours and the first PMN (or SO) falls within the Date Range to estimate the hour usage at start of Date Range. 
    2) If the Fleet Management Date started after the From-Date, use the Hour Meter (EM) as the Estimated Hours Begin. 
    3)If the last PMN (or SO) fell short of the Date Range (To-Date), obtain the Estimated Hours End by applying the average usage to fill the time-gap.       
    4)If the last PMN (or SO) fell after the Date Range (To-Date), get the Estimated Hours End by getting the next to last PMN performed inside the window parameter,           
         calculate the average usage between the two PMN's (or SO's) then apply the weighted average to fill the time-gap.       
    Adjusted Hours, if not zero or null, needs to be added to the Ending Hours to achieve the real number. 
    For Example
    User Input Date Range:  Jan. 1, 2006 - Dec. 31, 2006          
    Initial Hour (Equipment Master):  10          
    Adjusted Hours (Equipment Master): 0          
    Fleet Management Date (Equipment Master):  Dec. 1, 2005          
    1st PM Notification (Feb. 1, 2006):  410          
    Last PM Notification (Feb. 1, 2007):  2810          
    Second to last PMN (Dec. 1, 2006):  2410          
         Equipment was put into service (12/1/05) before the Date Range, needs to find the Estimated Hours Begin.     
         The first PM was performed (2/1/06) exactly two months from in-service date (12/1/05).
         Average monthly usuage from first PMN = (410 - 10) / 2 = 200
         Estimated Hours Begin = 200 + 10 = 210 (estimated Hour Meter Reading on Jan. 1, 2006)
         Average monthly usuage from the last 2 PMN = (2810 - 2410) / 2 months = 200
         Estimated Hours End = 2410 + 200 + 0 (adjusted hours) = 2610 (estimated Hour Meter Reading on Dec. 31, 2006)
         Estimated Hours Total = 2610 - 210 = 2400
               Please give me your valuable answers. Please let me know if you need any further information.
    Thanks
    Dave Sam.

    hi,
    well, your requirement seems clear but complex and needs more clarification:
    - what kind of infoprovider do you use
    - what is posted in your provider, I mean which characteristics and and key figures (name and descriptions)
    - what is the user input
    depending on that, the implementation may vary
    Please clarifiy
    Olivier.

  • Customer Exit variable of Query not working in View

    Hi,
    I have a customer exit variable in my query to calculate the last 6 month period on Calendar month. I have used 0CMONTH for the same and then using offset of 6 on its value range to get it.
    Now, I have many views based on this query, which should ideally be having the same filter condition for the calendar month, but it is not happening. Although, it is working fine for the query! The views do not seem to be catching the selection correct.

    Hi there,
    As far as I Know, yes they exist. The only difference here, is that you build a query with a selection screen, and  you execute the query with some selection parameters, and therefore all customer exit variables, offsets, etc, will be read and changed at the runtime execution of the query, and you can rearrange your query visualization drilling down free char., making filters, etc. and storing that visualization in a view.
    If you save your view and execute it afterwards, you'll get the same selection parameters to input, the same offsets, etc, that you have with the query, but with a visualization stored by you.
    So that should have been working.
    Diogo.

  • Concatination of Two dates in customer exit Variable

    HI Expert ,
    I am writting customer Exit Variable to get Records from user entered Dates .
    Eg. In Variable Screen of Bex report i have 2 Variable LYDate & TY Date both of them are As "Mutiple Single Value" & "Mendetory".
    If we give LYDATE and TYDATE Date range as,
    LYDate - 01/2013 - 06/2013
    TYDate - 01/2014 - 12/2014
    So I need ABAP Code which will get Value Range from 01/2013 from LYDATE and 12/2014 From TY DATE . So Query will Get data for 01/2013 TO 12/2014 (2 Years Data).
    ZCALYEAR (Cusomer Exit)  = LYDATE (01/2013)  TO TY DATE(12/2104).
    Please provide step by step ABAP Code to Achiev above issue. Points for Sure...
    Thanks,
    GB

    Hi,
    Some code like this will solve your issue:
    CASE I_VNAM.
       WHEN 'NEWVARIABLE'.
       IF I_STEP = 2.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE WITH KEY VNAM = 'LYDate'.
          If sy-subrc =0.
              CONCATENATE LOC_VAR_RANGE-LOW(4) INTO L_S_RANGE-LOW.
              READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE WITH KEY VNAM = 'TYDate'.
              If sy-subrc =0.
                   CONCATENATE LOC_VAR_RANGE-HIGH(4) INTO L_S_RANGE-HIGH.
                   L_S_RANGE-SIGN = 'I'.
                   L_S_RANGE-OPT = 'EQ'.
              APPEND L_S_RANGE TO E_T_RANGE.
            endif.
          endif.
        endif.
    endcase.
    Regards
    Yasemin...
    Just realized that you need the year. Message was edited by: Yasemin ULUTURK

  • Using Formula Variable in Customer Exit variable

    Hi,
    I want to assign valuees of 2 Formula Variables to one cstomer exit variable based on some Characteristic.
    Example. Formula variables are Early and Late. If Early = 3 and Late = 4 , I want to pass value to the Customer Exit variable as Low = 3 and High = 4.
    The problem is in I_T_VAR_RANGE there is no value for formula variable in LOW field.
    Other variables based on Characteristics have values in this field.
    What can I do in this case?
    Regards
    SSS

    SSS,
    You can restrict your characteristic with two variables in the value range options of restricting.
    One can be used as low and the other can be high.
    Hope that helps.
    Thanks.

  • Variable customer exit

    Hi all,
    I created a query with customer exit variable that is filled from another variable manual entry.
    When i start a query I receive this error message:
    Error for variable in the customer exit
    and in debug I find this message:
    System error in the program CL_RSR_REQUEST and Form GET_SETXX_WA
    How can I do?
    Thanks
    Gianmarco

    when 'ZODACE'.
        tables: /BIC/AZSD_O0100,
                /BIC/AZSD_O0200.
        ranges: r_createdon for /BIC/AZSD_O0100-CREATEDON.
    break-point.
        if i_step = 2.
          loop at i_t_var_range into loc_var_range
                  where vnam = 'ZDATADOC'.
            clear r_createdon.
            r_createdon-low    = loc_var_range-low.
            r_createdon-high   = loc_var_range-high.
            r_createdon-sign   = 'I'.
            r_createdon-option = 'BT'.
            append r_createdon.
            exit.
          endloop.
          select DOC_NUMBER into
                 /BIC/AZSD_O0100-DOC_NUMBER
                 from /BIC/AZSD_O0100
                  where /BIC/ZAUDAT in r_createdon.
            select single * from /BIC/AZSD_O0200
          select * from /BIC/AZSD_O0200
                   where refer_doc = /BIC/AZSD_O0100-DOC_NUMBER.
              clear l_s_range.
              l_s_range-low = /BIC/AZSD_O0200-refer_doc.
              l_s_range-sign = 'I'.
              l_s_range-opt  = 'EQ'.
              append l_s_range to e_t_range.
          endselect.
          endselect.
        endif.
    The variable are:
    ZODACE based on IO 0REFER_DOC with customer exit
    ZDATADOC based on IO ZDATU with manual entry
    After wich end-user digit a data in ZDATADOC popup I take ODOC_NUMBER in order item ODS ZSD_O01 where ZDATADOC=CREATEDON.
    With 0DOC_NUMBER I go to delivery item ODS ZSD_O02 and I take the corresponding 0REFER_DOC and then I fill variable ZODACE.
    0REFER_DOC is in row of the query.

Maybe you are looking for