Custom fields in ME21n ,step by step procedure/weblog ?

I need to add a custom field zz1 to ME21N transaction at header level and make it available for input in the screen. Is there any step by step proceurec/approach which is generic for adding this functionality to any standard transaction?
Rgds,
Ajay

Hi,
  Try this..
  In ZXM06TOP
  DATA: gl_ekko_ci LIKE ekko_ci.
  In the FM EXIT_SAPMM06E_006
  ekko_ci  = i_ci_ekko.
  In the FM EXIT_SAPMM06E_007
  *transfer values in own structures
  move-corresponding i_ekko to gl_ekko_ci.
  In the FM EXIT_SAPMM06E_008
  E_CI_EKkO = gl_ekko_ci.
  if gl_ekko_ci-ZZ ne ekko_ci-ZZ.
      e_ci_ekko-ZZ = ekko_ci-ZZ.
      e_ci_update = 'X'.
  ENDIF.
Please let me know if it works..
Thanks
Naren

Similar Messages

  • Custom fields in me21n

    Dear Gurus  ,
    I have added some custom fields in me21n in header & item level through badi . some fields are in standard table (CI_EKPODB )
    and other are in Ztable . Every thing is working fine .
    Problam is that when i am making a new purchase order through me21n by Copying another purchase order . Custom fields are not copying .
    Example: i have a po no : 101 .
    two custom field  zabc = 123 .
                                 zdef = 345 .
    when i am making a new po by adopt(Through Document overview on) this po 101 these custom fields are not coping  .
    is there any Customizing , exit  , Enhaancement  . That can Resolve this issue ?
    Thanks in advance .
    Hemant Gulati(A1).

    Hi
    In BADI 'ME_PROCESS_PO_CUST', try with method PROCESS_ITEM to populate them with the right filters. Check if in MEPOITEM for fields REFBS and REFPS is the PO that you are copying.
    I hope this helps you
    Regards
    Eduardo

  • Add customized fields in ME21N item overview.

    Hi experts,
    Can we insert our own customized fields into ME21N item overview section.
    Pls advise.
    Thanks and regards,
    Simonksh.

    hi,
    Yes, you can do it with the help of ABAP consultant...
    Pls check whether you are providing all links to the tables for that customised field...For this all coding is required to be done...
    Also check:
    MM06E005 - Customer fields in purchasing documents
    Its an intensive work...
    Hope it helps..
    Regards
    Priyanka.P

  • Custom Fields in ME21N transaction

    Hi all,
    I have added custom fields on the transaction ME21N using the screen exit in enhancement MM06E005.
    Now i need to do validations on these fields even if the user does not come to the screen. So i am using the BADI ME_PROCESS_PO_CUST for the validations.
    But this BADI gets triggered only when there is a change in a standard SAP field. If i change the value of the Custom field then the BADI does not get triggered.
    So the problem is that once i issue an error message for the custom field in the BADI .. and then change the value in the custom field, the BADI does not get called and hence the error message stays as it is...
    Any solutions for this?
    thanks,
    Ashiq Ali Ratnani

    even when we create a custom screen, the user-exits which are getting called from other screens should also get called from custom one. If this is not happeing, then you need to check in configurations where you have created this screen, that whether you have done assignment of screen at right place, not at the header level but at tab level.

  • Maping custom field for Freignt to ECC Pricing Procedure

    Hi,
    We have a custom field in SRM to store FREIGHT which is to be mapped to a condition type in ECC pricing procedure.
    Can anyone help in giving a solution to the same?
    Regards,

    Hi Brian,
    Thanks for your help.  I have resolved this, and the information that you provided was helpfutul.
    I had to create a function module in ECC, modeled after the SAP provided sample FM SAMPLE_INTERFACE_DE_BALE.   In addition to this, I had to configure entries in the standard SAP tables TBE24 and TBE34 (event DE_BALE), so that my new function module  would be  called. 
    Duane.

  • Triggering BAdI on change of customer field in ME21N

    Hello,
    How can I tell transaction ME21N that relevant field values have been changed?
    I'm using BAdI ME_PROCESS_PO_CUST to change several field values in ME21N and ME22N. The BAdI (method PROCESS_ITEM) is called whenever a field changes, which is good.
    However, the BAdI is NOT called when a customer field changes.
    Of course, I can create a PAI module to catch changes in the customer fields, but how can I notify ME21N that the BAdI has to be called?
    Thanks in advance
    Roland

    Hi!
    Apparently this does not work. However, I implemented BAdI ME_GUI_PO_CUST to create a new customer subscreen and this one works.
    Unfortunately the "old" user exit and the "new" BAdI don't work together very well...
    best regards
    Roland

  • Displaying Custom field in shopping cart header

    Hi all, I know how to add a field to header and item levels of the shopping cart.
    - In the note 672960 it says 'Note that the header fields cannot be displayed for the shopping cart. If you define fields on the header, they can only be filled in BADIs.'
    However,
    We are able to fill in the name of the shopping cart on the third step, which is also a part of header information. Is there a possibility to add a custom field(the user must be able to fill it) and display it in that screen???

    Hi
    <u>To add custom fields to the shopping cart, please try this process -></u>
    <b>Please refer to these links for details -></b>
    Re: SC header CUF ?
    Re: MAP USer SRM defined fields in backend for PO
    Re: HI SRM experts...
    Custom fields to a Bid Invitation
    Addition of custom fields in Contract and mapping it with the fields in SRM
    urgent help request - How to add custom fields to  header BID.
    Re: Add custom fields to Contract Transaction in SRM 4.0
    Custom Fields
    custom fields in Carry out sourcing screen..
    Custom Fields Not Display In Basic Data In SRM 5.5 Server..
    SC : Extended  Search on Header Customer field
    Re: customer field in 3rd step of shopping cart
    Adding fields in shopping cart
    Custom Field in the header of Shopping Cart
    <b>Please refer to these SAP OSS notes -></b>
    <u>Note 458591 - User-defined fields: Preparation and use
    Note 672960 - User-defined fields 2
    Note 822424 - CUF. Customer fields cannot be changed in the bid
    Note 809630 - Customer field in bid invitation and bid - How does it work?
    Note 809628 - Table like customer fields from bid invitation in bid
    Note 798731 - Bid: Bid Inv. Customer fields not visible
    Note 762984 - SRM40-SUS: Implementation of customer enhancement fields</u>
    <b>Please go through the documentation of following 3 Business Add-Ins using SE18 transaction.</b>
    BBP_BUPA_GET_CUF Customer Fields for Vendor Master Data
    BBP_CUF_BADI-Customer Fields. Call-up of User-Defined Screen
    BBP_CUF_BADI_2-Customer Fields. Use of Standard Table Control
    Hope this definitely help.
    Regards
    - Atul

  • Custom field is needed in the Shopping cart Additional Specifications

    Hi Folks,
    A Custom field is needed in the Shopping cart Additional Specifications just below 'Notes for Approval'. Any suggestions on this.
    Thanks,
    Ghanesh

    Hi
    <b>Please go through the following links, which will definitely help -></b>
    Re: Displaying Custom field in shopping cart header
    Re: customer field in 3rd step of shopping cart
    Re: Custom Screen in Shopping cart
    Re: Custom Field in the header of Shopping Cart
    Custom field in shopping cart Item Overview - items in Shopping Cart tab
    SC : Extended  Search on Header Customer field
    Regards
    - Atul

  • Steps for extraction of Custom Fields from the SRM 5.0 to the SAP BI system

    Hi Experts,
    I am new to the SAP BI. I was asked to publish all the custom fields from table (BBP_PDISC) of the SRM system to the BI System.
    Please provide some guidiance (or) provide me with step-by-step procedure for doing the same.
    There are around 14 fields in this table and i need to move them to the BI system and later inlcude them in reports.
    Let me know if this information is sufficient.
    Thanks in advance.
    SAPBWI

    We are working on the Shopping cart DSO

  • Steps for replicating GR custom field values from EBP to SAP R/3

    Dear SRM Gurus,
    We wre using SRM 5.0 extended classic scenario..
    We are having 3 custom fields for GR in SRM, we want to replicate these values to 3 other standard fields in SAP R/3..
    Can you pls tell us the Procedure, Steps and standard objects that has to be changed for replicating the GR field values from SRM to SAP R/3(4.6C).
    Thanks in advance,
    Chandra Sekhar.

    Hi
    <b>Please go through the following links -></b>
    Re: Confirmation screen field to be mapped to backend field
    Re: Creating Confirmations in SRM - What is the preferred method
    Re: GRN IDOC Transfer to ERP  - MBGMCR01 ( 2 IDOCS created)
    Re: Problem to send idoc for a Good Receipt created
    GR IDOC Number
    Re: Idoc error in Goods confirmation - urgent
    Re: Delete goods confirmation in SRM3.0
    Re: SRM / MM integratuion: goods receipt
    IDOC MBGMCR01: CO Ctd-pedido exceeded by 1 UN:
    <b>Some useful SAP OSS Notes to refer -></b>
    Note 521488 - FAQ: MB_CREATE_GOODS_MOVEMENT
    Note 521427 - FAQ: IDocs for goods movements
    Note 521488 - FAQ: MB_CREATE_GOODS_MOVEMENT
    Hope this will definitely help.
    Regards
    - Atul

  • What are the steps to send sales order custom field from CRM to ECC

    Hi Xperts,
      We have created a custom field in sales order [ VBAK] and successfully replicate its value from ECC to CRM. But while doing the enhancement to replicate the field value from CRM to ECC [ When the SO is created in CRM ] we are not able to do so.
    We used a FM in CRM0_300, but while replicating the SO from CRM to R/3 it is not getting called.
    Please help us by providing the steps to do the full enhancement to replicate the custom field of SO from CRM to ECC.
    Thanks in Advance.

    Hi Anjaneyulu,
    We are faced with a similar situation as you.
    Here is our scenario with the steps that we performed so far:
    1.  We have added a few custom fields in CRM 7.0 (Ehp1) using AET.
         The BDoc BUS_TRANS_MSG has been automatically extended with these custom fields.
    2.  On ECC side also, same custom fields have been added to VBAK and VBAP, using APPEND STRUCTURE. Fields were added to ADDITIONAL DATA TAB B in VA01 / VA02 transactions.
    3. Extended BAPI structures BAPISDITM and BAPISDITMX in both CRM and R/3 Side.
    4. As mentioned in the note 1053817, we have implemented BADI CRM_DATAEXCHG_BADI -> Method CRM_DATAEXCH_AFTER_BAPI_FILL in CRM (mapped fields from BDOC to BAPI structures)
    5. In the above note, for R/3 BAPI to R/3 API they have given to implement user exit USEREXIT_MOVE_FIELD_TO_VBAP which we found in MV45AFZZ. But in this we are unable to find BAPI Structure to map.
    Our issue is, when a sales order is created in CRM, it is getting replicated on ECC. But, only standard fields are getting replicated. The custom fields that we have added are remaining empty on ECC side.
    In CRM --> txn SMW01, we can see that the BDOC is populated with custom fields also.
    Could you let us know if your issue is solved completely. Are you able to see the value of custom field, in ECC? Did you use AET to add fields in CRM.
    Could you please give us the steps that you have done.

  • Kindly let me the Know Step by Step Procedure of Table Exits. & Field Exits

    Dear Members,
       Kindly let me the Know Step by Step Procedure of Table Exits. & Field Exits.
    it would be better if u explain by Example....
    Hoping for your Response...
    Thanks & Warm Regards,
    Nitin Chandrawanshi

    Some examples:
    1.     Extending Business Content - EXIT_SAPLRSAP_001
    data: l_s_icctrcst like icctrcst,                                          
             l_s_icctract like icctract,                                          
             l_s_icctrsta like icctrsta,                                          
             l_tabix      like sy-tabix.                                                                               
    case i_isource.                                                                               
    when '0CO_OM_CCA_1'.                                                     
           loop at c_t_data into l_s_icctrcst.                                    
             l_tabix = sy-tabix.                                                  
             select single * from z0001 where kokrs = l_s_icctrcst-kokrs          
                                        and   kostl = l_s_icctrcst-kostl.         
             if sy-subrc = 0.                                                     
               l_s_icctrcst-zfield1 = z0001-zfield1.                              
               l_s_icctrcst-zfield2 = z0001-zfield2.                              
               modify c_t_data from l_s_icctrcst index l_tabix.                   
             endif.                                                               
           endloop.                                                                               
    when '0CO_OM_CCA_2'.                                                     
         when '0CO_OM_CCA_3'.                                                     
         when others.                                                             
           exit.                                                                               
    endcase.                                                                 
    2.     User Exit after Data loading
    (a)     Delete old request
    REPORT Z_RSSM_START_SECOND_PROCESS_1 .
    TABLES: RSREQDONE,   " Request-Data
            RSSELDONE,   " Selection for current Request
            RSICCONT.    " Request posted to which InfoCube
    DATA: L_T_SELDONE LIKE RSSELDONE OCCURS 0 WITH HEADER LINE.
    DATA: L_T_ICUBE LIKE RSICCONT OCCURS 0 WITH HEADER LINE.
    DATA: L_LOGSYS LIKE RSSELDONE-LOGSYS.
    DATA: L_SOURCE LIKE RSSELDONE-SOURCE.
    DATA: L_SELDATE LIKE RSSELDONE-SELDATE.
    DATA: L_SELTIME LIKE RSSELDONE-SELTIME.
    DATA: BEGIN OF L_T_RNR_DEL OCCURS 0,
            ICUBE LIKE RSICCONT-ICUBE,
            RNR   LIKE RSSELDONE-RNR,
          END OF L_T_RNR_DEL.
    PARAMETER I_RNR LIKE RSREQDONE-RNR.
    SELECT SINGLE * FROM RSSELDONE WHERE
           RNR = I_RNR.
    IF SY-SUBRC <> 0. "new rquest does not exist, wrong rnr !!!
      EXIT.
    ENDIF.
    SELECT * FROM RSICCONT INTO TABLE L_T_ICUBE WHERE
           RNR = I_RNR.
    IF SY-SUBRC <> 0.     "New request is not posted to any IC
      EXIT.               "nothing will be deleted
    ENDIF.
    L_SOURCE  = RSSELDONE-SOURCE.
    L_LOGSYS  = RSSELDONE-LOGSYS.
    L_SELDATE = RSSELDONE-SELDATE.
    L_SELTIME = RSSELDONE-SELTIME.
    SELECT * FROM RSSELDONE INTO TABLE L_T_SELDONE WHERE
           SOURCE  = L_SOURCE AND
           LOGSYS  = L_LOGSYS.
    DELETE L_T_SELDONE WHERE
           RNR = I_RNR.            "new request will be deleted
    DELETE L_T_SELDONE WHERE     "delete younger requests
             SELDATE > L_SELDATE OR
           ( SELTIME > L_SELTIME AND
             SELDATE = L_SELDATE ).
    *Sort
    SORT L_T_SELDONE BY SELDATE DESCENDING SELTIME DESCENDING.
    REFRESH L_T_RNR_DEL.
    LOOP AT L_T_SELDONE.   " Requests to be deleted
      LOOP AT L_T_ICUBE.   " Request existing in InfoCubes
        SELECT SINGLE * FROM RSICCONT WHERE
               ICUBE = L_T_ICUBE-ICUBE AND
               RNR   = L_T_SELDONE-RNR.            "check if posted to IC's
        IF SY-SUBRC = 0.
          L_T_RNR_DEL-ICUBE = L_T_ICUBE-ICUBE.
          L_T_RNR_DEL-RNR   = L_T_SELDONE-RNR.
          APPEND L_T_RNR_DEL.
        ENDIF.
      ENDLOOP.
      IF NOT L_T_RNR_DEL[] IS INITIAL. " something found for rnr
        EXIT.
      ENDIF.
    ENDLOOP.
    LOOP AT L_T_RNR_DEL.
      CALL FUNCTION 'RSSM_DELETE_REQUEST'
           EXPORTING
                REQUEST                    = L_T_RNR_DEL-RNR
                INFOCUBE                   = L_T_RNR_DEL-ICUBE
           EXCEPTIONS
                REQUEST_NOT_IN_CUBE        = 1
                INFOCUBE_NOT_FOUND         = 2
                REQUEST_ALREADY_AGGREGATED = 3
                REQUEST_ALREADY_COMDENSED  = 4
                OTHERS                     = 5.
      IF SY-SUBRC <> 0.
    open for error-handling
      ENDIF.
    ENDLOOP.
    if it helpful reward point are appreciated

  • What is Field Exit--Step By Step procedure..

    Hi,
    What is Field Exit.
    And How to validate a field on any screen using field exit.
    what is the Procedure.
    Please give me Step by Step Procedure.
    Points will be given for straight answers..
    Regards,
    Kiran

    Please find below the step by step procedure for field exit :-
    There are eight steps to creating a field exit:
    Step 1: Determine Data Element
    Step 2: Go To Field Exit Transaction
    Step 3: Create Field Exit
    Step 4: Create Function Module
    Step 5: Code Function Module
    Step 6: Activate Function Module
    Step 7: Assign Program/Screen
    Step 8: Activate Field Exit
    Step 1: Determine Data Element
    Before you can begin adding the functionality for a field exit, you must know the corresponding data element.
    An easy way to determine the data element associated to a particular screen field is to:
    Go the appropriate screen.
    Position the cursor in the appropriate field.
    Press ‘F1’ for field-level help.
    Click on the ‘Technical info’ pushbutton (or press ‘F9’) on the help dialog box.
    On this Technical Information dialog box, the data element will be specified if the field is 'painted' from the ABAP/4 Dictionary.
    Step 2: Go To Field Exit Transaction
    The transaction to create field exits is CMOD.
    You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.
    From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.
    After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.
    NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.
    Step 3: Create Field Exit
    From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.
    After choosing this menu path, a dialog box will prompt you for the appropriate data element .
    Enter the data element name and click the ‘Continue’ pushbutton.
    Now, you will be able to create the function module associated to the data element’s field exit.
    Step 4: Create Function Module
    You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the ‘Continue’ pushbutton.
    In the ‘Function module’ field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:
    FIELD_EXIT_<data element>
    You can add an identifier (an underscore followed by a single character ).
    The first function module for a data element’s field exit must be created without an identifier.
    To create the function module, click on the ‘Create’ pushbutton, choose menu path Function module -> Create, or press ‘F5’.
    After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing ‘Enter’, you will be able to go ahead and create the function module.
    Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.
    Step 5: Code Function Module
    From the function module’s attributes screen, click on the ‘Source code’ pushbutton or choose the Goto -> Function module menu path to the code of the function module.
    Here you will add your desired functionality for the field exit.
    Remember that field exit’s function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.
    You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.
    Step 6: Activate Function Module
    After coding the function module, you must remember to activate it.
    Use the Function module -> Activate menu path to activate the function module.
    At this point, you can return to the field exit transaction.
    You should be able to 'green arrow' back to this transaction.
    When you return to the field exit transaction, you will see an entry for the newly created field exit.
    At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.
    Also, the field exit will not be triggered yet because it is inactive.
    Step 7: Assign Program/Screen
    This step is only needed if you want to make a field exit local.
    To make a field exit local, select the field exit and click on the ‘Assign prog./screen’ pushbutton.
    In the dialog box , indicate the appropriate program name and screen number.
    This information indicates that the field exit is local to the specified screen in the specified program.
    In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the ‘Fld. Exit’ field.
    If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.
    If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.
    Step 8: Activate Field Exit
    The field exit must be active for it to be triggered by the system.
    Activate the field exit by choosing the Field exit -> Activate menu path.
    After assigning the field exit to a change request, its status will change to ‘Active’ and it will be triggered automatically on the appropriate screen(s).
    NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers
    Regards
    Kiran

  • Pls send step by step procedure to create generated idoc type in ECC 6.0

    Hi
    pls send me the step by step procedure In ECC 6.0 Version
    1) To create generated idoc type
    2) To extended idoc type
    3) How we can add structure to custom segments
    thanks in advance

    hi,
    check these likns...
    ALE/ IDOC
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.sappoint.com/abap/ale.pdf
    http://www.sappoint.com/abap/ale2.pdf
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://www.sappoint.com/abap.html
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.allsaplinks.com/idoc_sample.html
    ALE/ IDOC/ XML
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://www.thespot4sap.com/Articles/SAP_XML_Business_Integration.asp
    http://help.sap.com/saphelp_srm30/helpdata/en/72/0fe1385bed2815e10000000a114084/content.htm
    IDOC Convertion
    /people/kevin.wilson2/blog/2005/12/07/changing-fields-in-an-idoc-segment
    regds,
    paras

  • Can anyone explain me step by step procedure for creating badi?

    hi all,,
    Can anyone explain me about badi with step by step procedure with an example like trsn code mm01, xd01 etc.
    And what is the significance of badi?
    regs
    hari

    Hi
    Business Add-Ins
    Business Add-Ins are a new SAP enhancement technique based on ABAP Objects. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.
    As with customer exits (SMOD/CMOD [Page 40]), two different views are available:
    • In the definition view, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object.
    • In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available.
    In contrast to customer exits, Business Add-Ins no longer assume a two-system infrastructure (SAP and customers), but instead allow for multiple levels of software development (by SAP, partners, and customers, and as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure.
    SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
    The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time.
    In addition, Business Add-Ins can be defined according to filter values. This allows you to control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example). All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard.
    A single Business Add-In contains all of the interfaces necessary to implement a specific task. In Release 4.6A, program and menu enhancements can be made with Business Add-Ins. The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects
    DEFINING THE BADI
    1) execute Tcode SE18.
    2) Specify a definition Name : ZBADI_SPFLI
    3) Press create
    4) Choose the attribute tab. Specify short desc for badi.. and specify the type :
    multiple use.
    5) Choose the interface tab
    6) Specify interface name: ZIF_EX_BADI_SPFLI and save.
    7) Dbl clk on interface name to start class builder . specify a method name (name,
    level, desc).
    Method level desc
    Linese;ection instance methos some desc
    8) place the cursor on the method name desc its parameters to define the interface.
    Parameter type refe field desc
    I_carrid import spfli-carrid some
    I_connid import spefi-connid some
    9) save , check and activate…adapter class proposed by system is
    ZCL_IM_IM_LINESEL is genereated.
    IMPLEMENTATION OF BADI DEFINITION
    1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.
    2) Specify aname for implementation ZIM_LINESEL
    3) Specify short desc.
    4) Choose interface tab. System proposes a name fo the implementation class.
    ZCL_IM_IMLINESEL which is already generarted.
    5) Specify short desc for method
    6) Dbl clk on method to insert code..(check the code in “AAA”).
    7) Save , check and activate the code.
    Some useful URL
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    Now write a sample program to use this badi method..
    Look for “BBB” sample program.
    “AAA”
    data : wa_flights type sflight,
    it_flights type table of sflight.
    format color col_heading.
    write:/ 'Flight info of:', i_carrid, i_connid.
    format color col_normal.
    select * from sflight
    into corresponding fields of table it_flights
    where carrid = i_carrid
    and connid = i_connid.
    loop at it_flights into wa_flights.
    write:/ wa_flights-fldate,
    wa_flights-planetype,
    wa_flights-price currency wa_flights-currency,
    wa_flights-seatsmax,
    wa_flights-seatsocc.
    endloop.
    “BBB”
    *& Report ZBADI_TEST *
    REPORT ZBADI_TEST .
    tables: spfli.
    data: wa_spfli type spfli,
    it_spfli type table of spfli with key carrid connid.
    *Initialise the object of the interface.
    data: exit_ref type ref to ZCL_IM_IM_LINESEL,
    exit_ref1 type ref to ZIF_EX_BADISPFLI1.
    selection-screen begin of block b1.
    select-options: s_carr for spfli-carrid.
    selection-screen end of block b1.
    start-of-selection.
    select * from spfli into corresponding fields of table it_spfli
    where carrid in s_carr.
    end-of-selection.
    loop at it_spfli into wa_spfli.
    write:/ wa_spfli-carrid,
    wa_spfli-connid,
    wa_spfli-cityfrom,
    wa_spfli-deptime,
    wa_spfli-arrtime.
    hide: wa_spfli-carrid, wa_spfli-connid.
    endloop.
    at line-selection.
    check not wa_spfli-carrid is initial.
    create object exit_ref.
    exit_ref1 = exit_ref.
    call method exit_ref1->lineselection
    EXPORTING
    i_carrid = wa_spfli-carrid
    i_connid = wa_spfli-connid.
    clear wa_spfli.
    u can find BADI's in different ways...
    1>First go to any transaction->iN THE menu bar SYSTEM->STATUS->Get the program name ->double click->u will go to the program attached to the tcode.Now search term will be CALL CL_EXITHANDLER.Now u will get list of BADI'S available..
    2>Goto SE24->Give class name as CL_EXITHANDLER->Display->double click on get_instance mathod->Now u will go inside the method->Now put break point on the cl_exithandler.Now go to any transaction code and pass dat..U will see that it will be stopped on the break point which u set on the cl_exithandler...In the exit name u can find list of badi's attached to the tcode..
    There are multiple ways of searching for BADI.
    • Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
    • Finding BADI Using SQL Trace (TCODE-ST05).
    • Finding BADI Using Repository Information System (TCODE- SE84).
    1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the program name. Once inside the program search for ‘CL_EXITHANDLER=>GET_INSTANCE’.
    Make sure the radio button “In main program” is checked. A list of all the programs with call to the BADI’s will be listed.
    The export parameter ‘EXIT_NAME’ for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter ‘INSTANCE’ will have the interface assigned to it. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.
    2. Start transaction ST05 (Performance Analysis).
    Set flag field "Buffer trace"
    Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
    Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
    Push the button "Deactivate Trace".
    Push the button "Display Trace".
    The popup screen "Set Restrictions for Displaying Trace" appears.
    Now, filter the trace on Objects:
    • V_EXT_IMP
    • V_EXT_ACT
    Push button "Multiple selections" button behind field Objects
    Fill: V_EXT_IMP and V_EXT_ACT
    All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
    So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
    3. Go to “Maintain Transaction” (TCODE- SE93).
    Enter the Transaction VD02 for which you want to find BADI.
    Click on the Display push buttons.
    Get the Package Name. (Package VS in this case)
    Go to TCode: SE84->Enhancements->Business Add-inns->Definition
    Enter the Package Name and Execute.
    Here you get a list of all the Enhancement BADI’s for the given package MB.
    The simplese way for finding BADI is
    1. chooes Tcode Program & package for that Tcode.
    2. Go to Tcode se18
    3. Press F4
    4. search by package or by program.
    http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
    and
    http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
    Badihttp://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
    http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
    sample code for Purchase requisition
    BAdI Name: ZPUR_RFQ (Implementation name) Purchase Requisitions
    Definition Name: ME_REQ_POSTED
    Interface Name : IF_EX_ME_REQ_POSTED
    Implementing Class: ZCL_IM_PUR_REQ
    Method :            POSTED
    METHOD if_ex_me_req_posted~posted .
      DATA : v_mtart TYPE mtart.
      DATA l_s_eban TYPE ueban.
      LOOP AT im_eban INTO l_s_eban.
        IF l_s_eban-estkz NE 'B'.
          CLEAR v_mtart.
          SELECT SINGLE  mtart INTO v_mtart FROM mara WHERE matnr = l_s_eban-matnr.
          IF v_mtart EQ 'ZERS' OR v_mtart EQ 'FHMI' OR v_mtart EQ 'UNBW'.
            MESSAGE e000(zm_msg) WITH 'You are not allowed' 'to create PR for stock items'.
          ENDIF.
        ENDIF.
        IF  l_s_eban-knttp NE 'F' OR l_s_eban-pstyp NE '9'.
          IF l_s_eban-knttp NE 'A'.
            IF ( l_s_eban-pstyp NE '9' AND l_s_eban-pstyp NE 'D' )  AND l_s_eban-matnr EQ
    space.
              MESSAGE e000(zm_msg) WITH 'You cannot create' 'a PR without material number'.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDMETHOD.
    <b>Reward points for useful Answers</b>
    Regards
    Anji

Maybe you are looking for