Exit for ME51n - ABAP OO coding

Hi,
I am writing a BADI for ME51n - ME_REQ_POSTED.
In that i want to restrict the account assignment category either A or K. but i am not able to write a coding as i am not good enough in OO.
field name is KNTTP.
how to do it?
Thanks.

I've done the same thing but for PO creation(ME21N) through BADi ME_PURCHDOC_POSTED.
You may want to do same thing like below:
DATA:re_ekpo LIKE LINE OF im_ekpo.
  data:tabix type sy-index value '1'.
*BREAK-POINT.
  READ TABLE im_ekpo INTO re_ekpo INDEX tabix.
  tabix = tabix + 1.
"Check for account assignment cat only for "A" and "L".
  if re_ekpo-KNTTP = 'L' or re_ekpo-KNTTP = 'A'.
GET PARAMETER ID 'KNT' FIELD re_ekpo-KNTTP.
IF sy-subrc ne 0.
MESSAGE 'You are not aurthorized to use Account Assignment Category (Logit)L!!' TYPE 'E'.
ENDIF.
ENDIF.
Finally assign "KNT" in parameters tab from SU01 for those users who actually want to use Account Assignment Category A and L(In my case)
Cheers,
Amit.

Similar Messages

  • Screen Exit for ME51N and ME52N ??

    Hi all,
    I have to replace the standard Field "Requisitioner" in the CONTACT Tab with a Z table field with Search help and I have to make it mandatory, so that the user MUST enter the Requisitioner and its F4 help can be used from the Z Table field.
    For this i need to modify standard program's screen using screen exit.
    How can i meet the requirement?
    Any sugegstions are welcomed...Helpful answers will be rewarded for sure..
    Thanks in advance,
    Regards,
    Tejas

    Check the threads -
    User Exit or BADI   for ME21N or ME51N
    ME51N user exit
    Screen Exit for  ME51N
    Regards,
    Amit

  • Screen exit for ME51N in header

    Hi friends,
    Is there any screen exit for ME51N(Purchase requisition) in header level.I found MEREQ001 enhancement, but this is for item level.please help.
    regards,
    Thoufique.

    Hi Thoufique,
    try the following screen exits:
    EXIT_SAPLMEREQ_001 Export Data to Customer Subscreen for Re
    EXIT_SAPLMEREQ_002 Prepare Customer Subscreen for Requisiti
    EXIT_SAPLMEREQ_003 Import Data from Customer Subscreen for
    Also, for more help on your problem, refer to the following link:
    Re: re: screen exits
    Hope this will help you...

  • SAP Standard Exits for ME51n/52n/53n

    Hi Friends,
    Please tell me is there any SAP standard Exits for Purchase requisition Me51n/me52n/me53n..
    Thanks in Advance..........
    Ravi

    hi
    this are
    following enhancements that u can use
    M06B0004  Number range and document number
    M06B0005  Changes to comm. structure for overall release of requi
    M06E0004  Changes to communication structure for release purch. d
    M06E0005  Role determination for release of purchasing documents
    ME590001  Grouping of requsitions for PO split in ME59
    MEETA001  Define schedule line type (backlog, immed. req., previe
    MEFLD004  Determine earliest delivery date f. check w. GR (only P
    MELAB001  Gen. forecast delivery schedules: Transfer schedule imp
    MEQUERY1  Enhancement to Document Overview ME21N/ME51N
    MEVME001  WE default quantity calc. and over/ underdelivery toler
    MM06E001  User exits for EDI inbound and outbound purchasing docu
    MM06E003  Number range and document number
    MM06E004  Control import data screens in purchase order
    MM06E005  Customer fields in purchasing document
    MM06E007  Change document for requisitions upon conversion into P
    MM06E008  Monitoring of contr. target value in case of release or
    MM06E009  Relevant texts for "Texts exist" indicator
    MM06E010  Field selection for vendor address
    MM06E011  Activate PReq Block
    MMAL0001  ALE source list distribution: Outbound processing
    MMAL0002  ALE source list distribution: Inbound processing
    MMAL0003  ALE purcasing info record distribution: Outbound proces
    MMAL0004  ALE purchasing info record distribution: Inbound proces
    MMDA0001  Default delivery addresses
    MMFAB001  User exit for generation of release order
    welli mstill searching for that particular enhancement for ur requirment if i found i will let u know
    this the enhancement that u can use
    MEQUERY1  Enhancement to Document Overview ME21N/ME51N
    in this
    u can use the following componets
    EXIT_SAPLMEQUERY_001
    EXIT_SAPLMEQUERY_002
    also there is one more
    MM06E005 Customer fields in purchasing document
    Cheers
    Snehi
    Edited by: snehi chouhan on Jul 31, 2008 1:32 PM

  • Screen Exit for  ME51N

    HI ,
    EVERYBODY
    I AM DOING SCREEN EXIT FOR TCODE ME51N, ENHANCEMENT (MEREQ001) EXIT SAPLMEGUI , I HAVE ADDED TWO FIELDS
    VALIDITY START DATE AND VALIDITY END DATE.
    I HAVE CONFUSION ABOUT HOW TO EXPORT DATA ENTERED IN SUBSCREEN.
    PLS HELP ME ..........
    THANKS & REGARDS
    SANJEEV

    hi,
    EXIT_SAPLMEREQ_001 -
    Export Data to Customer Subscreen for Requisition (PBO)
    *sample code write in the corresponding include
    DATA: ls_mereq_item TYPE mereq_item.
    clear eban values if no PReq item
    IF im_req_item IS INITIAL.
      CLEAR: *eban,
             eban.
    ELSE.
    read item data from system
      ls_mereq_item = im_req_item->get_data( ).
    fill customer field with old values
      eban-zflag = ls_mereq_item-zflag.
       *eban-zflag = ls_mereq_item-zflag.
    ENDIF.
    Read and store activity type to chnge the field status
    of the subscreen
    IF NOT im_req_item IS INITIAL.
      gf_aktyp = im_req_item->GET_ACTIVITY( ).
    endif.
    EXIT_SAPLMEREQ_003 Import Data from Customer Subscreen for Requisition
    data:     ls_mereq_item type mereq_item.
    *get values if PReq item exists
    if not im_req_item is initial.
    *read item data from system
      ls_mereq_item = im_req_item->get_data( ).
    *if customer field changed
      if eban-zflag ne *eban-zflag.
    *fill field with new value
        ls_mereq_item-zflag = eban-zflag.
    *set new item data to system
        call method im_req_item->set_data( ls_mereq_item ).
    *tell the system that there has something changed on the customer tab
        EX_CHANGED = 'X'.
      endif.
    endif.
    cheers,
    sasi

  • SOS:     Exit for ME51n/ ME52n/ ME53n/

    hello erverybody,
    at First i would like to implement the exit mm06e007 but i have no idea how to do it!!
    have someone an example, coding or Tips,... ??
    Second Problem :
    how can I Overwrite the <u>Tapstrips name</u> using exit MEREQ001 ??
    please i need a help!!
    best regard
    dani.

    Exits are basically the hooks whcih SAP has provided to add your own code. There are two types of Exits:
    1. Customer exits: Implemented as Function Modules within z includes. Anybody can change it and no access key is required.
    2. User Exit: Implemented as subroutines within includes (any include except y or z includes). You need access for the specific include and then you can any subroutine (user exit) within that Include.
    BADIs are the enhanced version of user exits where the same logic is implemented via classes and object (OOP)
    Enchancement point is the latest once introduces with ECC6.0 . Not very sure about that but you can change it without any access key.
    Please go through the following link which will help you understand the exits in a much better way:
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec07a25db911d295ae0000e82de14a/content.htm
    http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm
    http://sap.niraj.tripod.com/id21.html
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.sap-img.com/ab038.htm
    User Exits.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    customer exits
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f1a7e790-0201-0010-0a8d-f08a4662562d
    Menu Exit.
    http://www.sappoint.com/abap/spmp.pdf
    http://www.sappoint.com/abap/userexit.pdf
    http://www.sapdevelopment.co.uk/enhance/mod_sapmenu.htm
    http://www.sapdevelopment.co.uk/enhance/enhancehome.htm
    USER EXIT
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    http://www.sap-img.com/ab038.htm
    http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://expertanswercenter.techtarget.com/eac/knowledgebaseAnswer/0,295199,sid63_gci982756,00.html
    Rewards if useful.........
    Minal

  • Need exit for ME51N G/L account number automatically populated

    Hi ,
    i have the issue with  Enhancement.
    <b>The requirement is   in the tcode ME51N or ME52N .</b>    They will enter maerial and Qty ,Plant, Purchase group.
       i need to get G/L account number with respect to Purchase group automatically.
       pls do the need ful  if u know the procedure...
    regards
    devi

    Transaction Code - ME51N                    Create Purchase Requisition
    Exit Name           Description
    MEREQ001            Customers' Own Data in Purchase Requisition
    No of Exits:          1
    Transaction Code - ME52N                    Change Purchase Requisition
    Exit Name           Description
    MEREQ001            Customers' Own Data in Purchase Requisition
    No of Exits:          1
    USER EXIT
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    http://www.sap-img.com/ab038.htm
    http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://expertanswercenter.techtarget.com/eac/knowledgebaseAnswer/0,295199,sid63_gci982756,00.html
    Exits are basically the hooks whcih SAP has provided to add your own code. There are two types of Exits:
    1. Customer exits: Implemented as Function Modules within z includes. Anybody can change it and no access key is required.
    2. User Exit: Implemented as subroutines within includes (any include except y or z includes). You need access for the specific include and then you can any subroutine (user exit) within that Include.
    BADIs are the enhanced version of user exits where the same logic is implemented via classes and object (OOP)
    Enchancement point is the latest once introduces with ECC6.0 . Not very sure about that but you can change it without any access key.
    Please go through the following link which will help you understand the exits in a much better way:
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec07a25db911d295ae0000e82de14a/content.htm
    http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm
    http://sap.niraj.tripod.com/id21.html
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.sap-img.com/ab038.htm
    User Exits.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    customer exits
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f1a7e790-0201-0010-0a8d-f08a4662562d
    Menu Exit.
    http://www.sappoint.com/abap/spmp.pdf
    http://www.sappoint.com/abap/userexit.pdf
    http://www.sapdevelopment.co.uk/enhance/mod_sapmenu.htm
    http://www.sapdevelopment.co.uk/enhance/enhanceh
    Rewards if useful.........
    Minal

  • User Exit for ME51N Transaction

    Hi folks,
         I have a requirement regarding ME51N Tocde. If the user enters the internal order number in ME51N, while creating Purchase Requisition, the corresponding cost center should be displayed in the cost center field by default. I have found one user exit which will be useful for this. I wrote the code and feteched the Cost Center value in the exit EXIT_SAPLMEREQ_005. But i dont field any paramet for sending the Cost center value here. Could any body suggest me how to proceed now...How can i display the cost center value, using this Exit....
                         Thanks in advance,
                          Shyam.

    Hi Shyam,
    You can find the user exit using the following method:
    1. Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
    2. In 'Display' mode, go to 'Methods' tab.
    3. Double click the method 'Get Instance' to display it source code.
    4. Set a breakpoint on 'CALL METHOD cl_exithandler=>get_class_name_by_interface'.
    5. Then run your transaction ML81N.
    6. The screen will stop at this method.
    7. Check the value of parameter 'EXIT_NAME'. It will show you the BADI for that transaction.
    Hope this solves your query.
    Regards,
    Saumya

  • Badi / Screen Exit for ME51N

    Hi Folks,
    My requirement is to add a standard field in the existing tab . Is there any BAdi / Screen Exit provided for tcode ME51n. I have checked the provided Exits and BAdi's but all of them are to add a new tab. But in my case I want to add a field in the existing tab.
    Kindly let me know the possibilities.
    Thanks in Advance.
    Somu

    Hi Soma,
    As i know it is not possible  . Better to add a new tab and add fields there.
    Regards,
    Madhu.

  • User exit for ME51n

    HI All,
    In ME51n/ME52n when the user clicks F4 help for Purchasing Group and selects one Pgroup then Material group is populated  automatically.I searched all the user exits and BADIs for ME but am not able to find how this is getting popualted.Can anyone plz let me know how this is happening?
    Thanks,
    Rakesh.

    Hi rakesh,
    Review OSS note 408017 for code samples
    use this program,
    REPORT YSMOD2
    SELECTION TEXTS : INPUT1 ----> Enter search term for Trxn.
                      INPUT2 ----> Enter type of exit
    REPORT YSMOD2 .
    TABLES: MODSAP, MODACT, TSTC.
    PARAMETERS: INPUT1 LIKE TSTC-TCODE DEFAULT ' ',
                INPUT2 LIKE MODSAP-TYP DEFAULT ' '.
    DATA: SEARCH1(6),
          SEARCH2(3),
          SEARCH3 LIKE MODSAP-MEMBER.
    DATA : FIRST_ROW VALUE 'Y'.
    CONCATENATE: '%' INPUT1 '%' INTO SEARCH1,
                 '%' INPUT2     INTO SEARCH2.
    SELECT * FROM TSTC WHERE TCODE LIKE SEARCH1.
      FIRST_ROW = 'Y'.
      CHECK TSTC-PGMNA NE SPACE.
      CONCATENATE '%' TSTC-PGMNA '%' INTO SEARCH3.
      SELECT * FROM MODSAP WHERE TYP LIKE SEARCH2
                           AND MEMBER LIKE SEARCH3.
        SELECT SINGLE * FROM MODACT WHERE MEMBER = MODSAP-NAME.
        IF FIRST_ROW EQ 'Y'.
          WRITE: /0 TSTC-TCODE, 6 TSTC-PGMNA, 16 MODSAP-NAME, 32 MODSAP-TYP,
                                           45 MODSAP-MEMBER, 70 MODACT-NAME.
          FIRST_ROW = 'N'.
        ELSE.
    WRITE: /16 MODSAP-NAME, 32 MODSAP-TYP, 45 MODSAP-MEMBER, 70 MODACT-NAME.
        ENDIF.
        CLEAR : MODSAP, MODACT.
      ENDSELECT.
      IF SY-SUBRC NE 0.
        WRITE : /0 TSTC-TCODE, 6 TSTC-PGMNA, 30 'No exits found'.
      ENDIF.
      CLEAR TSTC.
    ENDSELECT.
    END-OF-SELECTION.
      CLEAR: SEARCH1, SEARCH2, SEARCH3.
    thanks,
    nagendra

  • User Exit for ME51N to maintain Item Texts as mandatory

    Hi all,
    In ME51N T.code. I have a requirement wherein the texts has to be maintained mandatory under "TEXT" tab in "Item Detail". I couldn' find the relavant exit's or BADI's.
    Can anyone of you give your suggestions if you had come acroos something similar. Thanks!

    Hi,
    Try BADI  'ME_REQ_POSTED'.
    Regards ,
    Supriya

  • User Exit for Purchase Req. ME51N

    Hi,
    In ME51N, I would like to default some value for the field BPUEB.
    Is there any user exit for such purpose?
    Many thanks.
    Regards,
    Chris

    Hi  Chris,
    These are the available exits and badis.
    Enhancement/ Business Add-in            Description
    Enhancement
    MEREQ001                                Customers' Own Data in Purchase Requisition
    Business Add-in
    ME_COMMITMNT_PARKING                    BAdI for Redefining Commitment Interface When Parking
    ME_MEREQ_PARKING                        BAdI Purchase Requisition: "Hold"
    ME_REQ_HEADER_TEXT                      Copy Header Text: Enjoy Purchase Requisition
    o.of Exits:          1
    o.of BADis:          3
    Impliment the coding and put the break points.
    ********Rewards some points.
    Rgds,
    P.Naganjana Reddy

  • Purchase requisition , ME51N, user exit for change Release date

    Hello.
    Purchase Requisition ( transaction ME51N).
    I want to change the value of u201ERelease dateu201C using user-exit EXIT_SAPLMEREQ_005.
    CALL METHOD im_req_item->get_data
      RECEIVING
        re_data = get.
    set = get.
    set-frgdt = u2026..
      CALL METHOD im_req_item->set_data
        EXPORTING
          im_data = set.
    Next, in dynpro is visible the right value from EXIT_SAPLMEREQ_005, but when saving the system uses another value, not the value from user exit.
    Do you anybody have some experiences with this problem?
    Lumir

    Hi
    The USer Exit you can use for the ME51n Tcode is by using Badi's.The Badi you can use is ME_PROCESS_REQ_CUST BADI.
    Method to be used: PROCESS_ITEM
    This link gives you a brief idea.Hope it helps you.
    BADI for ME51N
    Thanking you.

  • Abap code of user EXIT for my first post on FISCPER_CALC_MONTH or year

    *ZSIGFISCPER Exercice cumulé jusqu'à la période selectionnée par utilisateur
    TABLES: TVARVC.
    DATA: L_S_RANGE TYPE RSR_S_RANGESID.
    DATA : LOC_VAR_RANGE LIKE RRRANGEEXIT,
    v_year like T009B-BDATJ,
    v_per3 like T009B-POPER,
    v_month(3) type c,
    v_initial(7) type c,
    v_date type d,
    w_progcod like tvarvc-low.
    BREAK-POINT.
    CASE I_VNAM.
      WHEN 'ZSIGFISCPER'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            v_year = LOC_VAR_RANGE-LOW(4).
            concatenate v_year '001' into v_initial.
            L_S_RANGE-LOW = v_initial.
            L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'BT'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGVFISCYEAR'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            L_S_RANGE-LOW = v_year.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    *Sélection de la période 1 par rapport à une période sélectionnée via la variable 'ZP_FIL_FISCPER'
      WHEN 'ZVUEPER1'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            concatenate v_year '001' into v_initial.
            L_S_RANGE-LOW = v_initial.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    *Sélection de la période 1 par rapport à une période sélectionnée via la variable 'ZSIGFISC'
      WHEN 'ZVUEPER2'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZSIGFISC'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            concatenate v_year '001' into v_initial.
            L_S_RANGE-LOW = v_initial.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    Variables pour la requête ZSIGRQ_ZSIGMCM1_01 (Suivi des investissements)
      WHEN 'ZSIGCDR2'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            CONCATENATE v_year '01' '01' INTO v_date.
            L_S_RANGE-LOW = v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGCDMS'. " Date de mise en service
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            CONCATENATE v_year '01' '01' INTO v_date.
            L_S_RANGE-LOW = v_date.
            CONCATENATE v_year '12' '31' into v_date.
            L_S_RANGE-HIGH = v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'BT'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGHIM'. " Hierarchie
        IF I_STEP = 1. "before the popup
          Clear v_year.
          SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIG_REF_0APPR_YEAR'.
          IF sy-subrc EQ 0.
            v_year = TVARVC-low.
          ENDIF.
          CLEAR w_progcod.
          SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIFVA_REF_0PROG_DEF_S'.
          IF sy-subrc EQ 0.
            w_progcod = TVARVC-low.
          ELSE.
            MESSAGE 'Variable ZSIFVA_REF_0PROG_DEF_S is missing in TVARVC' TYPE 'E'.
          ENDIF.
          CONCATENATE w_progcod v_year INTO L_S_RANGE-LOW.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            CLEAR w_progcod.
            SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIFVA_REF_0PROG_DEF_S'.
            IF sy-subrc EQ 0.
              w_progcod = TVARVC-low.
            ELSE.
              MESSAGE 'Variable ZSIFVA_REF_0PROG_DEF_S is missing in TVARVC' TYPE 'E'.
            ENDIF.
            CONCATENATE w_progcod v_year INTO L_S_RANGE-LOW.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGCAC'. " version
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_month.
            v_month = LOC_VAR_RANGE-LOW+4(3).
            IF v_month LE '003'.
              L_S_RANGE-LOW = 'PLA'.
              L_S_RANGE-SIGN = 'I'.
              L_S_RANGE-OPT = 'EQ'.
            ELSEIF v_month LE '008'.
              L_S_RANGE-LOW = 'AC1'.
              L_S_RANGE-SIGN = 'I'.
              L_S_RANGE-OPT = 'EQ'.
            ELSE.
              L_S_RANGE-LOW = 'AC2'.
              L_S_RANGE-SIGN = 'I'.
              L_S_RANGE-OPT = 'EQ'.
            ENDIF.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGDDP'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            v_per3 = LOC_VAR_RANGE-LOW+4(3).
            CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
              EXPORTING
                I_GJAHR              = v_year
      I_MONMIT             = 00
                I_PERIV              = 'K4'
                I_POPER              = v_per3
              IMPORTING
                E_DATE               = v_date
              EXCEPTIONS
                INPUT_FALSE          = 1
                T009_NOTFOUND        = 2
                T009B_NOTFOUND       = 3
                OTHERS               = 4
            IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
            L_S_RANGE-LOW = '20101231'."v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    Variable Z_DATE_REF_INF_FOUR pour caracteristique 0CALDAY
    Intervalle
      WHEN 'Z_DATE_REF_INF_FOUR'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'Z_DATE_REF_SUP_FOUR'.
            CLEAR L_S_RANGE.
            CLEAR v_date.
            v_date = LOC_VAR_RANGE-low.
           break-point.
            CALL FUNCTION 'SALP_CALC_DATE'
              EXPORTING
                IN_RECTYPE          = 'M'
                IN_NBR_DWXMQY       = '6'
                IN_DATE             = v_date
             IMPORTING
               OUT_DATE            = v_date
            EXCEPTIONS
              OTHER_ERROR         = 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.
            CALL FUNCTION 'SALP_CALC_DATE'
              EXPORTING
                IN_RECTYPE          = 'Y'
                IN_NBR_DWXMQY       = '-2'
                IN_DATE             = v_date
             IMPORTING
               OUT_DATE            = v_date
            EXCEPTIONS
              OTHER_ERROR         = 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.
            L_S_RANGE-LOW = v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    Variable Z_DATE_REF_INF_FOUR pour caracteristique 0CALDAY
    Intervalle
    Variables pour Production interne
    Intervalle
    Debut - FDUPEYROUX - 11/01/2010
      WHEN 'ZSIGPEROI'.
        IF I_STEP = 2. "after the popup
          CLEAR L_S_RANGE.
          CLEAR v_date.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          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.
      WHEN 'ZSIGPEROI_ENT'.
        IF I_STEP = 2. "after the popup
          CLEAR L_S_RANGE.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
          L_S_RANGE-LOW  = '1000001'.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'BT'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGPEROI_P1'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE, v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          IF LOC_VAR_RANGE-LOW+4(3) = '001'.
            LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
            LOC_VAR_RANGE-LOW+4(3) = '012'.
          ELSE.
            v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
            LOC_VAR_RANGE-LOW+4(3) = v_per3.
          ENDIF.
          L_S_RANGE-LOW  = LOC_VAR_RANGE-LOW.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGPEROI_PINF'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE, v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          IF LOC_VAR_RANGE-LOW+4(3) = '001'.
            LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
            LOC_VAR_RANGE-LOW+4(3) = '012'.
          ELSE.
            v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
            LOC_VAR_RANGE-LOW+4(3) = v_per3.
          ENDIF.
          L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
          L_S_RANGE-LOW  = '1000001'.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'BT'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGPERAN'.
        IF I_STEP = 2. "after the popup
          CLEAR L_S_RANGE.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
          L_S_RANGE-LOW  = '1000001'.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'BT'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGVDRPI'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE,v_date,v_year,v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          v_year = LOC_VAR_RANGE-HIGH(4).
          v_per3 = LOC_VAR_RANGE-HIGH+4(3).
          CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
            EXPORTING
              I_GJAHR        = v_year
              I_MONMIT       = 00
              I_PERIV        = 'K4'
              I_POPER        = v_per3
            IMPORTING
              E_DATE         = v_date
            EXCEPTIONS
              INPUT_FALSE    = 1
              T009_NOTFOUND  = 2
              T009B_NOTFOUND = 3
              OTHERS         = 4.
          L_S_RANGE-LOW  = v_date.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
    Variables pour Production interne
    Intervalle
    Variables pour Production interne
    Intervalle
    WHEN 'ZSIGVDRPIM1'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE,v_date,v_year,v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          IF LOC_VAR_RANGE-LOW+4(3) = '001'.
            LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
            LOC_VAR_RANGE-LOW+4(3) = '012'.
          ELSE.
            v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
            LOC_VAR_RANGE-LOW+4(3) = v_per3.
          ENDIF.
          v_year = LOC_VAR_RANGE-LOW(4).
          v_per3 = LOC_VAR_RANGE-LOW+4(3).
          CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
            EXPORTING
              I_GJAHR        = v_year
              I_MONMIT       = 00
              I_PERIV        = 'K4'
              I_POPER        = v_per3
            IMPORTING
              E_DATE         = v_date
            EXCEPTIONS
              INPUT_FALSE    = 1
              T009_NOTFOUND  = 2
              T009B_NOTFOUND = 3
              OTHERS         = 4.
          L_S_RANGE-LOW  = v_date.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
    Variables pour Production interne
    Intervalle
    Edited by: Yass79 on Jan 9, 2012 8:55 PM

    Hi ricx,
    hmm, Finally I got you...
    What you are asking is;
    Is it possible to have User exit for Custom Developed ABAP Programs?
    Am i right?
    If this is your question, i can say it is not needed as we can edit Zprograms whenever we need.
    If you have more doubts, revert back....
    Regards
    Karthik D

  • IS there is any another Area for writing ABAP Codes ( Variable Exit)

    Can we extractor & aggragate the Data from Lookup DSO . & show in Report of (ODS1) .
    Can we extract/Aggregate Data   at run time of Query .
    Please help me what are the Area/Tool  where we can write the ABAP Codes in displaying a report in  BEx Query

    Hi
    Point 1: U r saying DSO is BI 7 &ODS 3.X .But Actually we will use lookup while uploading
    Ex :    Data Flow  : ODS1     -           CUBE (Before Uploading data to Cube from ODS1 you need some data from ODS2.Then you will use lookup at teh ODS1-CUBE TRansformation level)
    Point 2 :  As per my understand when you can execute the query the OLAP Processor will pick the data display the in theoutput as per your stucrure.Means during Run Time of query
    1. Extracting Data from Cube
    2. Claculating based on the Query Structure deisgned ( Means Aggregarion of Data  etc.......) and displays the output.
    Point 3: Customer exit for BEx query will written in SE38/CMOD.
    Regards
    Ram.

Maybe you are looking for