Explain Customer Exit (ABAP) Written in CMOD

Hi Experts,
Please explain what this Customer Exit (CMOD) is performing
Here var1 is the user entered expiry date and test1 is the newly created customer exit variable.
What happens if user enters 01.05.2008 to 31.05.2008
data: yrr1(4) type n,
mn(2) type n,
dy1(2) type n.
when 'test1'.
if i_step = 2. "after the popup
loop at i_t_var_range into loc_var_range
where vnam = 'var1'.
yrr1 = loc_var_range-low+0(4).
mn = loc_var_range-low+4(2).
dy1 = loc_var_range-low+6(2).
clear l_s_range.
concatenate yrr1 mn '01' into l_s_range-low.
concatenate yrr1 mn dy1 into l_s_range-high.
l_s_range-sign = 'I'.
l_s_range-opt = 'BT'.
append l_s_range to e_t_range.
exit.
endloop.
endif.

HI,
it will populate the below range for test1.
01.05.2008 to 01.05.2008.
based on the selection provided in var1, it takes the from value.
then it takes the first day of the month of the from value from the var1 to the from date in var1.
suppose you give in var1 25.05.2008 to 31.05.2008
then in test1 it will take 01.05.2008 to 25.05.2008
retgds,
Shashank

Similar Messages

  • Explain Customer Exit (ABAP) Logic

    Hi Experts
    Could any one explain me what is this Customer Exit doing
    CASE I_VNAM.
    WHEN 'ZXPDATE'.
    IF I_STEP = 2.
    CLEAR L_S_RANGE.
    L_S_RANGE-LOW = SY-DATUM.
    L_S_RANGE-SIGN = 'I'.
    L_S_RANGE-OPT = 'GE'.
    APPEND L_S_RANGE TO E_T_RANGE.
    ENDIF.
    ENDCASE.

    Hi Santosh,
    Thanks for the Update
    'In your code it is calculating the system data which is greate than or equal to and that value will be restricted to that user exit variable and it will bring the output based on that system data '
    The Variable ZXPDATE (Processing Type-Customer Exit) is Created on Policy Expiry Date.
    My requirment is to show all the Policys whose expiry date is Greater than or equal to Current Cal Day/Sys date
    Is that the code doing
    If not please correct the code accordingly
    Thanks

  • Customer Exit code written at transaction SE38

    I am new to writing ABAP code. I talk to someone on here earlier and they gave me some code that is indented below to determine the last day of the week as a date. I am trying to use this code in a form that is called from a user exit. However, I do not understand what the code is doing. I added some break points and found out the the variables CurDate TYPE SCAL-DATE, and
    CurWeek TYPE SCAL-WEEK never populate with a date or a value. So my first question is why don't these variables populate with a value? My second question is how do I write the final desired value (LastDayOfTheWeek) back to the customer exit variable? My third question is to explain TYPE-POOLS: RSR, RRS0 and how they relate to i_t_var_range, e_t_range, and l_s_range. Are these standard variables used in customer exits or are these custom to the environment that I am working at? I know this is alot to ask, but I have no other place to get information. Thanks for all the help possible.
    -- Ryan
    *& Subroutine pool   ZBW_VAR_WEEKEND
    *& Created By: Ryan Casey
    *& Date: 07/19/2005
    *& Purpose: This function is used to determine the date of the last
    *&          day of the week (Sunday).
    *& Changes:
    PROGRAM  ZBW_VAR_WEEKEND.
    TYPE-POOLS:  RSR,
                 RRS0.
    Form GetWeekendDate  using     i_t_var_range type rrs0_t_var_range
                                   i_step type i
                         changing  e_t_range type rsr_t_rangesid.
                              DATA: l_s_range TYPE rsr_s_rangesid,
                                    CurDate TYPE SCAL-DATE,
                                    CurWeek TYPE SCAL-WEEK,
                                    LastDayOfTheWeek TYPE SCAL-DATE.
                              CALL FUNCTION 'DATE_GET_WEEK'
                              EXPORTING
                              DATE = CurDate
                              IMPORTING
                              WEEK = CurWeek
                              EXCEPTIONS
                              DATE_INVALID.
                              CALL FUNCTION 'WEEK_GET_FIRST_DAY'
                              EXPORTING
                              WEEK = CurWeek
                              IMPORTING
                              DATE = LastDayOfTheWeek
                              EXCEPTIONS
                              WEEK_INVALID.
                              ADD 6 TO LastDayOfTheWeek.
    *&l_s_range-low    = LastDayOfTheWeek.
    *&l_s_range-sign   = 'I'.
    *&l_s_range-opt    = 'EQ'.
    *&APPEND l_s_range to e_t_range.
    Endform.

    Hi Ryan,
    I thought it was related to BW since the message is posted in the BW forum and accordingly suggested a formula in the update rule, so you would not find it as a FM in R/3. The following code should do it.
    data : p_week type KWEEK,
           p_Date type SYDATUM.
    p_week = <incoming value in week of year>
    CALL FUNCTION 'WEEK_GET_FIRST_DAY'
      EXPORTING
        week               = p_week
    IMPORTING
       DATE               = p_date
    EXCEPTIONS
       WEEK_INVALID       = 1
       OTHERS             = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    To get the last day of the week.
    p_date = p_date + 6.
    You can find the available fm in the system from se37 transaction code.
    Cheers, Ashu

  • Customer Exit  (ABAP) Error

    Hi Experts,
    I developed a Customer Exit Variable (BEx)..ZVDAT
    In Variable definition i defined  'Processing Type-Customer Exit' and in CMOD i have written below code
    My requirment is to display records whose Expiry Date is Greater than and equal(>=)  to Current Sys Date (Current Date)
    The system is not displaying any error but when i execute query it is not displaying the desired
    Please correct any errors in the code below
    IF I_STEP = 1.
    CASE i_vnam.
    WHEN 'ZEDAT'.  "Policy  Expiry Date"
    CLEAR: l_s_range.
    l_s_range-low  = sy-datum.
    l_s_range-opt = 'GE'.
    l_s_range-sign = 'I'.
    APPEND l_s_range TO e_t_range.
    Endcase.
    Endif.

    Hi,
       Use the below code and try your program. I think this is the one you should use at i_step = 2
       not i_step = 1
    CASE i_vnam.
    WHEN 'ZEDAT'. "Policy Expiry Date"
              IF I_STEP = 2. "after the popup
                LOOP AT I_T_VAR_RANGE INTO LOC_T_VAR_RANGE
                WHERE VNAM = 'Your Variable Name'. '
                  CLEAR L_S_RANGE.
                  L_S_RANGE-LOW = 'Policy Start Date'    'Variable Start Date Value entered by User
                  L_S_RANGE-HIGH = Sy-Datum. "high value = input
                  L_S_RANGE-SIGN = 'I'.
                  L_S_RANGE-OPT = 'GE'.
                  APPEND L_S_RANGE TO E_T_RANGE.
                  EXIT.
                ENDLOOP.
              ENDIF.
    Regards,
    Raj

  • Help needed in writting Customer exit - ABAP Code

    Hi Friends,
    I have a scenario in one of the query and need to write a customer exit for the same. Here is the scenario:
    I am using one input variable XXX to get input from user which feeds value to one of the charateristic  lets say "CHAR1" in query. I have one more characteristic "CHAR2" which has to get the value from the same variable XXX. This is not allowed in BI7.0 as the variable is Hierarchy Node type. It gives error that "Variable XXX is used for two different characteristics."
    So i need to create one more vaiable YYY which will get the value from XXX and then YYY will feed value to CHAR2.  I would appreciate if some one could tell me step by step how to write customer exit and give me the piece of ABAP code i need to write in my case.
    Your help will be appreciated in terms of points.
    Thanks,
    manmit

    Hi Arun,
    1. What should CHAR2 take - Hierarchy node variable or something else ?
    --> CHAR2 is a simple charateristic
    2. In your scenario - why have CHAR1 and CHAR2 ? why not have the user enter values against CHAR2 ??
    --> We dont want user to enter two input as the input values for both Chars are same.
    3. Did you try using a replacement path variable with the CHAR2 variable taking values from Variable on CHAR1 ?
    --> In BI7.0 replacement path variable only take values from Query results. So not able to do the same.
    Thanks

  • Formula Variable with customer Exit (ABAP Code)

    Hi Experts,
    Please advise me wether i am going in the right way to achieve my requirment else please advise me any alternate approach and update me with the abap code for my customer exit as i am not familiar with ABAP.
    My Requirment:
    Data :
    Emp_ID----Start_Date(DATS)---End_Date(DATS)
    I had a user entry (intreval) VARIABLE created on Start_Date
    User will enter the date intreval he want to analyze...
    Ex: 01.01.2008 to 01.02.2008
    Now i want to use the No of Days between user entered date intreval in my calculaction of a keyfigure
    In the above example it is 31 days
    So i created a Formula Variable of Customer Exit now i need a code that will
    pass the user entered dates to
    FM: FIMA_DAYS_AND_MONTHS_AND_YEARSImport parameters Value
    I_DATE_FROM 01.01.2008
    I_DATE_TO 01.02.2008
    I_FLG_SEPARATE ' '
    Export parameters Value
    E_DAYS 31
    E_MONTHS 1
    E_YEARS 1
    and need to pass the E_DAYS (31) to the result of formula
    User Entry Variable (Intreval) : ZST_VAR
    Formula Variable (Customer Exit) : ZND_EXIT
    Code
    WHEN 'ZND_EXIT'.
        DATA: low_date2 TYPE d,
        high_date2 TYPE d,
        num_days TYPE N,
        new_low_date2 TYPE d.
        IF i_step = 2.
          LOOP AT i_t_var_range INTO ls_varrange WHERE vnam = 'ZST_VAR'.
            CLEAR l_s_range.
            l_s_range-sign = 'I'.
            l_s_range-opt = 'EQ'.
            ls_varrange-low = low_date2.
            ls_varrange-high = high_date2.
    CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
      EXPORTING
        I_DATE_FROM          = low_date2
        I_DATE_TO            = high_date2
        I_FLG_SEPARATE       = ' '
      IMPORTING
        E_DAYS               = NUM_DAYS
      l_s_range = NUM_DAYS.
      APPEND l_s_range TO e_t_range.
      EXIT.
      ENDLOOP.
      endif.

    Hello,
    Before the WHEN statement it shoud have a CASE statement. In the user exit coding place your WHEN statement anywhere between CASE...ENDCASE statement.
    your code should look like
    DATA: low_date2 TYPE d,
    high_date2 TYPE d,
    num_days TYPE N,
    new_low_date2 TYPE d.
    Case i_vnam.
    WHEN 'ZND_EXIT'.
    IF i_step = 2.
    LOOP AT i_t_var_range INTO ls_varrange WHERE vnam = 'ZST_VAR'.
    CLEAR l_s_range.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'BT'.
    low_date2 = ls_varrange-low.
    high_date2 = ls_varrange-high.
    CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
    EXPORTING
    I_DATE_FROM = low_date2
    I_DATE_TO = high_date2
    I_FLG_SEPARATE = ' '
    IMPORTING
    E_DAYS = NUM_DAYS
    l_s_range-low = NUM_DAYS.
    APPEND l_s_range TO e_t_range.
    EXIT.
    ENDLOOP.
    endcase.
    Thanks
    Chandran

  • Regarding Customer exit - ABAP Code

    Hi Friends,
    I have a scenario in one of the query and need to write a customer exit for the same. Here is the scenario:
    I am using one input variable XXX to get input from user which feeds value to one of the charateristic lets say "CHAR1" in query. I have one more characteristic "CHAR2" which has to get the value from the same variable XXX. This is not allowed in BI7.0 as the variable is Hierarchy Node type. It gives error that "Variable XXX is used for two different characteristics."
    So i need to create one more vaiable YYY which will get the value from XXX and then YYY will feed value to CHAR2. I would appreciate if some one could tell me step by step how to write customer exit and give me the piece of ABAP code i need to write in my case.
    Your help will be appreciated in terms of points.
    Thanks,

    Hi Manmit,
    The following link can guide you on how to write customer exits (this has example as well)
    [http://help.sap.com/saphelp_nw70/helpdata/EN/61/579b3c494d8e15e10000000a114084/frameset.htm]
    Hope this helps.
    Cheers,
    Sumit

  • Fun BEx i_step 2 Customer Exit / ABAP Question!

    Hello Gurus
    We run two queres, one has a restriction on ZCOMPCODE (which is an OpCo), the other on ZCOMPHIER (Which is an OpCo Hierarchy).
    We have too many cubes under our multiProvider so to aid performance we have an 'InfoProvider' Customer Exit Variable in our queries. This restricts the cubes to those relevant to the selected OpCo by indexing against a predefined table.
    The code works for ZCOMPCODE.
    ZLASTHIER has a one to one relationship with ZCOMPCODE so we want to enhance our 'InfoProvider' Exit Variable to incorporate restrictions on ZLASTHIER.
    Ie currently we have:
    LOOP AT i_t_var_range INTO ls_var_opco WHERE VNAM = 'ZVAR006'.
    (Where ZVAR006 is on ZCOMPCODE)
    I want to enhance this so that if VNAM = 'ZVAR007' (which is a variable based on ZCOMPHIER), it will convert it.
    I need to tag something along the following lines into my code:
    If VNAM 'ZVAR007' = 'H1'.
    ls_opco = '001'.
    ELSEIF 'ZVAR007' = 'H2'.
    ls_opco = '002'
    etc etc
    Im not very good at abap but im sure I can't be miles off!
    Any help appreciated!
    Tom

    Hi
    Basically the requirement is to get Company code corresponding to the Hierarchy in ZVAR007 and then restrict to the particular Infoprovider. Plz let me know if my understanding is correct.
    Here we go :
    LOOP AT i_t_var_range INTO loc_var_range WHERE VNAM = 'ZVAR007'. "reads Hier value
    If sy_subrc is not initial.
    Select comp_code  comp_hier from table
    into itab1 where comp_hier = loc_var_range-low. " selects company code from thetable which has comp code - hierarchy mapping.
    read itab into wa_itab. " not giving condition assuming there s only one record.
    "Add the same code as in the user exit for Comp Code, to select the Infoprovider based on the company code selected(wa_itab-comp_code).
    L_S_RANGE-SIGN = 'I'.
    L_S_RANGE-OPT = 'EQ'.
    APPEND L_S_RANGE TO E_T_RANGE.
    ENDLOOP.
    Plz let me know in case of issues.
    Regards,
    Aparna

  • Customer Exit - ABAP Class in WAD 7.0

    I am using the Customer Exit  (CUSTOMER_EXIT_TYPE  - ABAP_CLASS_NAME) in the WAD 7.0 to place some urls on the web application. I pass the url value as <a href=u201Dhttp://www.yahoo.comu201D>yahoo</a> in the ABAP class to the the template but when I execute the template it converrts to the following - &lt;a href=u201Dhttp://www.yahoo.comu201D>yahoo</a> in the source code.
    Does any one has experienced the same problem and know the solution.
    Thanks
    Amit

    Just to Clarify I am passing value as l_s_values-value = '<a href=u201Dhttp://www.yahoo.comu201D>yahoo</a>'
    and the IE is interpreting it as l_s_values-value = '&lt;a href=u201Dhttp://www.yahoo.comu201D>yahoo</a>'.

  • Text Variable With Customer Exit ABAP Code

    Hi Experts,
    Could you please help me with the Logic/Code that i need to use in Calculacting The TEXT Variable Using CUSTOMER EXIT
    I had a rolling report in which there are 14 Calculacted Keyfigures (Not Restricted KF),Which are
    M-1,M-2,M-3,M-4,M-5........M-14
    My requirment is to get the MMM.YYYY based on Sy Date as a title of the column
    In MAY2009
    M-1 represents (Current Month -1) APR2009
    M-2 represents (Current Month -2) MAR2009
    M-3 represents (Current Month -3) FEB2009
    M-4 represents (Current Month -4) JAN2009
    M-5 represents (Current Month -5) DEC2008
    M-6 represents (Current Month -6) NOV2008
    M-7 represents (Current Month -7) OCT2008
    M-13 represents (Current Month -13) APR2008
    M-14 represents (Current Month -14) MAR2008
    In JUNE2009
    M-1 represents (Current Month -1) MAY2009
    M-2 represents (Current Month -2) APR2009
    M-3 represents (Current Month -3) MAR2009
    M-4 represents (Current Month -4) FEB2009
    M-5 represents (Current Month -5) JAN2009
    M-6 represents (Current Month -6) DEC2008
    M-7 represents (Current Month -7) NOV2008
    M-13 represents (Current Month -13) MAY2008
    M-14 represents (Current Month -14) APR2008
    Currently the Description of CKF is named as M-1,M-2..M-14.My requirment is to develop Text Variables that displays the description as MMMYYYY

    Amrit I think u72720 wanted to know how to get MMYYYY in the column headings.
    this can be achieved using text variable easily.
    steps
    1. Right click and go to properties and click the button next to description box.
    2. Add any existing text var from the list
    3. now right click on this var in the desription box and select 'new variable'
    4. give var name description
       processing type ->replacement path
       replace with char-> fiscal period (or calmonth if that is what restricted in your column)
       select value as 'Key'
    finish creation and use this var in all the selection column headings (remove M-1, M-2 etc)
    you will get mmyyyy decriptions for every column depending on month of that column

  • Customer Exit-ABAP

    Hi Experts,
    The following code is return as a customer exit used in reports,Could you please tell me what exactly it is doing and also modify this code,So that it won't display zero values
       Please convert this machine language into human language
       WHEN 'ZYTD'.
        CLEAR l_s_range.
        wdate = ww_date.
        weekno = '01'.
        SELECT SINGLE * FROM  /bic/pycalday_w
             WHERE  /bic/ycalday_w  = wdate
             AND objvers = 'A'.
        thisweek = /bic/pycalday_w-/bic/ylwk_w.
        CONCATENATE thisweek(4) weekno INTO firstweek.
        l_s_range-low = firstweek.
        l_s_range-high = thisweek.
        l_s_range-sign = 'I'.
        l_s_range-opt = 'BT'.
        APPEND l_s_range TO e_t_range.
    Thanks

    Hi,
    Functionality- ZYTD --this variable gives the first week of the year to the current week of year.
    low- first week as 012006
    high -the current week as per "wdate" which can to enter by user...
    /bic/pycalday_w - master data table for calday_w infoobject where for current date ..you will find week.
    you can go ti se11 and enter the table name...you then see thw master data for this...
    now understand the code...
    WHEN 'ZYTD'. <b>''This is custtom exit variable create in query..</b>
    CLEAR l_s_range.
    wdate = ww_date. <b>''contains the date as 10.01.2006</b>
    weekno = '01'.
    SELECT SINGLE * FROM /bic/pycalday_w
    WHERE /bic/ycalday_w = wdate
    AND objvers = 'A'. <b>''now you are finding the current week as per wdate..' it will fetch you 02 (as 10.01.2006)</b>
    thisweek = /bic/pycalday_w-/bic/ylwk_w.
    <b>(thisweek=022006)</b>
    CONCATENATE thisweek(4) weekno INTO firstweek.
    <b>(thisweek(4) will give you year ie. 2006 and weekno is 01..whihc make '200601'</b>
    l_s_range-low = firstweek. <b>'200601'</b>
    l_s_range-high = thisweek. <b>'200602'</b>
    l_s_range-sign = 'I'.
    l_s_range-opt = 'BT'.
    APPEND l_s_range TO e_t_range.
    now where are you getting zero value...
    regards,
    San!
    Message was edited by: San!

  • Customer Exit Variable in SAP BI

    Hi to all,
    Please can any body tell me , What is Customer Exit Variable in SAP BI , how to use it , why we use it.
    please also sned any website link , or any PDF or DOC file that have example to explain Customer Exit Variable in SAP BI.
    I shall be thankfull to you for this.
    Regards
    PAVNEET RANA

    Hi,
    Customer Exit Variable in SAP BI : is used to calculata MTD,YTD, and some other calculations.
    You can define variables with Customer Exits and then write code in CMOD. See the Article/Blogs in the same
    https://wiki.sdn.sap.com/wiki/display/profile/Surendra+Reddy
    CHeck the Following Articles.
    Customer Exit Variables in BW/BI Reports
    Using Customer Exit Variables in BW or BI Reports Part - 1
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/business-intelligence/s-u/using%20customer%20exit%20variables%20in%20bw%20or%20bi%20reports%20part%20-%201.pdf
    How to use Customer Exit Variables in BW Reports: Part - 2
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/business-intelligence/g-i/how%20to%20use%20customer%20exit%20variables%20in%20bw%20reports%3a%20part%202.pdf
    Using Customer Exit Variables in BW/BI Reports Part - 3
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/10fc4382-afa6-2c10-1380-fa224fe4324f&overridelayout=true
    Using Customer Exit Variables in BW/BI Reports: Part - 4
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0fefc77-40e3-2c10-8da3-d4bfcb013387?quicklink=index&overridelayout=true 
    Calculating the Ageing of the Materials
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/business-intelligence/a-c/calculating%20the%20ageing%20of%20the%20materials.pdf
    Thanks
    Reddy

  • What is customer exits?

    Can someone explain customer exits?
    Can it be used more than once?

    A pre-planned enhancement to the standard SAP System.
    SAP anticipates potential customer requests not already implemented in the standard system by predefining them as empty modification modules. Customers fill these modules with their own logic according to their own requirements.
    SAP creates customer exits using the Transaction SMOD. From these customer exits, customers then use the Transaction CMOD to choose the enhancements they want to process, assign them to enhancement projects, edit the components, and activate the relevant projects.
    Using customer exits guarantees upwards compatibility. This is because calls to exits from the standard software and the validity of the call interface are retained, even in future release upgrades.

  • Customer Exit Variable not working in BO-Webi Report

    Hi All,
    I have created a universe based on Bex Query.
    Bex query consists of a customer exit variable on Calendar year/month where in it will populate current calendar year month by default while executing the query. It works fine while executing in SAP BI Bex Analyser.
    I have created a universe based on the query. For Calender year/Month i got L00, L01, LOV values in universe.
    Based on the universe I have created a Webi report. I did not specify calendar year/month as query filters. While directly executing the Webi report, I get the calendar year/month variable screen. But the value for it not populated based on customer Exit code written in BI.
    What has to be done to get the customer exit values in variable screen.
    Thanks for your understanding.
    -- Selva

    Since you have customer exit variable in your bex query, it will be like a global filter in your universe.
    Execute the webi report and check whether you are getting only current month data.
    --- Thanks

  • HOW TO CREATE A CUSTOMER EXIT VARIABLE

    <Moderator Message: use lower case letters next time, we don't want you to shout. --> see rules of engagement>
    hi,
          How to create a customer exit variable..!
    in a query designer i  have created the customer exit variable ,in the cmod i have created the project
    for the exit rsap0001 and kept the break-point....but when i executing the query via BEX-Analyzer
    where control not stoping in the break-point..
    can any one help me ..what is the approch i need to do.because i new to BI..
    Regards,
    shahina.....!
    Edited by: Siegfried Szameitat on Dec 17, 2008 10:37 AM

    Hi Shahina,
    1. Create formula variable var1 from to date using replacement path.
    2. Create another formula variable var2 for current date using customer exit or you can use standard
    formula variable for current date
    3. Create calculate key figure ckf using var1 & var2.
    ckf = var1 - var2.
    Thanks == points
    Regards
    Sudheer
    Edited by: SUDHEER on Dec 17, 2008 10:41 AM

Maybe you are looking for