Change PO Output, user exits

Hello Champions,
Will anyone share me, is there any user exit which triggers while changing Purchase Order Output Medium in ME22N transaction. How to know list of user exits which are applicable for ME22N transaction?. will anyone guide me.
Reward with Full points

Hi,
Here are the list of User Exits for ME22N
Enhancement
MEVME001                                WE default quantity calc. and over/ underdelivery tolerance
MM06E001                                User exits for EDI inbound and outbound purchasing documents
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 PO
MM06E008                                Monitoring of contr. target value in case of release orders
MM06E009                                Relevant texts for "Texts exist" indicator
MM06E010                                Field selection for vendor address
MMAL0001                                ALE source list distribution: Outbound processing
MMAL0002                                ALE source list distribution: Inbound processing
MMAL0003                                ALE purcasing info record distribution: Outbound processing
MMAL0004                                ALE purchasing info record distribution: Inbound processing
MMDA0001                                Default delivery addresses
MMFAB001                                User exit for generation of release order
MRFLB001                                Control Items for Contract Release Order
AMPL0001                                User subscreen for additional data on AMPL
MEQUERY1                                Enhancement to Document Overview ME21N/ME51N
LMEDR001                                Enhancements to print program
LMELA002                                Adopt batch no. from shipping notification when posting a GR
LMELA010                                Inbound shipping notification: Transfer item data from IDOC
LMEQR001                                User exit for source determination
LMEXF001                                Conditions in Purchasing Documents Without Invoice Receipt
LWSUS001                                Customer-Specific Source Determination in Retail
M06B0001                                Role determination for purchase requisition release
M06B0002                                Changes to comm. structure for purchase requisition release
M06B0003                                Number range and document number
MELAB001                                Gen. forecast delivery schedules: Transfer schedule implem.
MEFLD004                                Determine earliest delivery date f. check w. GR (only PO)
MEETA001                                Define schedule line type (backlog, immed. req., preview)
ME590001                                Grouping of requsitions for PO split in ME59
M06E0005                                Role determination for release of purchasing documents
M06E0004                                Changes to communication structure for release purch. doc.
M06B0005                                Changes to comm. structure for overall release of requisn.
M06B0004                                Number range and document number
Business Add-in
ME_PROCESS_COMP                         Processing of Component Default Data at Time of GR: Customer
ME_PO_SC_SRV                            BAdI: Service Tab Page for Subcontracting
ME_PO_PRICING_CUST                      Enhancements to Price Determination: Customer
ME_PO_PRICING                           Enhancements to Price Determination: Internal
ME_INFOREC_SEND                         Capture/Send Purchase Info Record Changes - Internal Use
ME_HOLD_PO                              Hold Enjoy Purchase Orders: Activation/Deactivation
ME_GUI_PO_CUST                          Customer's Own Screens in Enjoy Purchase Order
ME_FIELDSTATUS_STOCK                    FM Account Assignment Behavior for Stock PR/PO
ME_DP_CLEARING                          Clearing (Offsetting) of Down Payments and Payment Requests
ME_DEFINE_CALCTYPE                      Control of Pricing Type: Additional Fields
ME_COMMTMNT_REQ_RE_C                    Check of Commitment Relevance of Purchase Requisitions
ME_COMMTMNT_REQ_RELE                    Check of Commitment Relevance of Purchase Requisitions
ME_COMMTMNT_PO_REL_C                    Check for Commitment-Relevance of Purchase Orders
ME_PROCESS_PO                           Enhancements for Processing Enjoy Purchase Order: Intern.
MM_EDI_DESADV_IN                        Supplementation of Delivery Interface from Purchase Order
MM_DELIVERY_ADDR_SAP                    Determination of Delivery Address
ME_WRF_STD_DNG                          PO Controlling Reminder: Extension to Standard Reminder
ME_TRIGGER_ATP                          Triggers New ATP for Changes in EKKO, EKPO, EKPV
ME_TRF_RULE_CUST_OFF                    BADI for Deactivation of Field T161V-REVFE
ME_TAX_FROM_ADDRESS                     Tax jurisdiction code taken from address
ME_REQ_POSTED                           Purchase Requisition Posted
ME_REQ_OI_EXT                           Commitment Update in the Case of External Requisitions
ME_RELEASE_CREATE                       BAdI: Release Creation for Sched.Agrmts with Release Docu.
ME_PURCHDOC_POSTED                      Purchasing Document Posted
ME_PROCESS_REQ_CUST                     Enhancements for Processing Enjoy PReqs: Customer
ME_PROCESS_REQ                          Enhancements for Processing Enjoy PReqs: Internal
ME_PROCESS_PO_CUST                      Enhancements for Processing Enjoy Purchase Order: Customer
ME_COMMTMNT_PO_RELEV                    Check for Commitment-Relevance of Purchase Orders
ME_CCP_ACTIVE_CHECK                     BAdI to check whether CCP process is active
ME_BSART_DET                            Change document type for automatically generated POs
ME_BAPI_PR_CREATE_02
ME_BAPI_PR_CREATE_01
ME_BAPI_PO_CREATE_02
ME_BAPI_PO_CREATE_01
ME_BADI_DISPLAY_DOC                     BAdI for Internal Control of Transaction to be Invoked
ME_ACTV_CANCEL_PO                       BAdI for Activating the Cancel Function at Header Level
MEGUI_LAYOUT                            BAdI for Enjoy Purchasing GUI
SMOD_MRFLB001                           Control Items for Contract Release Order
EXTENSION_US_TAXES                      Extended Tax Calculation with Additional Data
ARC_MM_EKKO_WRITE                       BAdI: Enhancement of Scope of Archiving (MM_EKKO)
ARC_MM_EKKO_CHECK                       BAdI: Enhancement of Archivability Check (MM_EKKO)
ME_CCP_BESWK_AUTH_CH                    BAdI for authorization checks for procuring plant
ME_COMMITMENT_STO_CH                    BadI for checking if commitments for STOs are active
ME_COMMITMENT_RETURN                    Commitment for return item
ME_CIP_REF_CHAR                         Enables Reference Characteristics in Purchasing
ME_CIP_ALLOW_CHANGE                     Configuration in Purchasing: Changeability Control
ME_CIN_MM06EFKO                         Copy PO data for use by Country version India
ME_CIN_LEINRF2V                         BADI for LEINRF03 excise_invoice_details
ME_CIN_LEINRF2R                         BADI for CIN India - Delivery charges
ME_CHECK_SOURCES                        Additional Checks in Source Determination/Checking
ME_CHECK_OA                             Check BAdI for Contracts
ME_CHECK_ALL_ITEMS                      Run Through Items Again in the Event of Changes in EKKO
ME_CHANGE_OUTTAB                        Enrich ALV Output Table in Purchasing
ME_CHANGE_CHARACTER                     Customer-Specific Characteristics for Product Allocation
ME_CCP_DEL_DURATION                     Calc. of Delivery Duration in CCP Process (Not in Standard)
Edited by: Raj on May 12, 2008 10:05 PM

Similar Messages

  • ME59N - Customize it to change POs?  User Exit?

    Hi all,
    We are using the automatic PO creation program (ME59N) to convert approved requisitions with a fixed source of supply to purchase orders.
    We have scenarios at our company where, after the PO is created and sent to the vendor, a change is to be made, which is usually a new line item that is required.  Our process dictates that every new request must go through a requisition and approval process before it can be converted into a PO or added onto an existing PO.  In this scenario, the user will create a new requisition or add a line item to an existing requisition, and upon approval, will manually drag the new requisition line into an existing PO (we do not want to issue multiple POs to the vendor, we would like to issue a change order instead when it makes sense to). 
    Since me59n runs a couple times a day, the user may sometimes not have time to manually drag the requisition into the existing PO, and when this happens, the system creates a brand new PO and sends it off to the vendor.  This is obviously confusing as the new line item really belongs on an existing PO that was issued to the vendor.
    We were wondering if it was possible, to update the me59n program, to check if the requisition should be included on an existing PO, rather than creating a new PO (we would have the user enter the existing PO# in the requisition in the requirement tracking number field).  If the program found a reference to a PO on the requisition line item, it would then find the relevant PO and add the requisition line as a new line item in the existing PO (i.e. change the PO), rather than create a fresh new PO.
    Obviously this is not standard in ME59n, as ME59n would create a new PO with the requisition.  Is this at all possible via a user exit or badi?  Has anyone came across this requirement and have a solution?  Or at least a recommendation on which user exit/badi that may be used to implement this? 
    Cheers,

    Hi Anupama,
    Try to write the code like this..
    loop at itab_covp.
        select single dlinr belnr from ad01dli INTO AD01DLI-dlinr AD01DLI-belnr
        where belnr =  itab_covp-belnr .
        if sy-subrc <> 0.     "if record doesn't exist
          DELETE t_covp.
        else.                     "If record exist
          SELECT single * from  AD01DLIEF into AD01DLIEF
           where DLINR =  AD01DLI-dlinr and belnr = itab_covp-belnr and dopen <> ''.
           if sy-subrc <> 0.  "if record doesn't exist
             DELETE t_covp.
           endif.
        endif.
    endloop.
      This will be the correct logic for your requirement.
    Thanks,
    Sreenivas Reddy Maddi

  • Valuation price change in PR - User Exit

    Hello all,
    In Purchase Requisition valuation tab there is the field BPUEB (PO Price EBAN-BPUEB) that is used to transfer the valuation price from the PR to the PO.
    The field's values are :
    0. Do not adopt
    1. As gross price
    2. As net price
    The default value is "Do not adopt".
    How can I change the default value to "As net price" ?
    I am looking for a user exit, because i need to do some condition check before i change this to "As net price".
    Pl suggest.
    Thanks

    Solved Myself.
    Solution:
    Exit : EXIT_SAPLMEREQ_005
    Include : ZXM02U05
    Code:
    FIELD-SYMBOLS: <IS_ACC> TYPE LINE OF MMPUR_ACCOUNTING_LIST.
    DATA : ACCOUNTING_LIST TYPE MMPUR_ACCOUNTING_LIST.
    DATA : RE_EXKN TYPE EXKN.
    DATA : L_AUART TYPE VBAK-AUART.
    DATA : L_PSTYV TYPE VBAP-PSTYV.
      CLEAR RE_EXKN.
      ACCOUNTING_LIST = IM_REQ_ITEM->IF_ACCT_CONTAINER_MM~GET_ITEMS( ).
      LOOP AT ACCOUNTING_LIST ASSIGNING <IS_ACC>.
        CALL METHOD <IS_ACC>-MODEL->GET_EXKN
        RECEIVING
        RE_EXKN = RE_EXKN.
      ENDLOOP.
      CLEAR : L_AUART, L_PSTYV.
      SELECT SINGLE AUART FROM VBAK INTO L_AUART
                             WHERE VBELN = RE_EXKN-VBELN.
      SELECT SINGLE PSTYV FROM VBAP INTO L_PSTYV
                             WHERE VBELN = RE_EXKN-VBELN
                               AND POSNR = RE_EXKN-VBELP.
      IF SY-TCODE = 'ME51N' AND L_AUART = 'ZMO' AND L_PSTYV = 'ZTAB'.
        LS_MEREQ_ITEM-BPUEB = '2'.  "AS NET PRICE - PO Price field
      ENDIF.
    Thanks,
    Senthil

  • Changes in the user exit for VL01N dont reflect..

    Hello all,
                 I need a user-exit for restricting display ( and ultimately the delivery )of line-items while creating outbound delivery doc , depending on whether a particular line item is approved or not. I am currently using the user-exit (function exit)-exit_saplv50p_001 -> enhancement V50PSTAT. but the changes made to the work area is_lips in the include dont reflect in the final delivery 'item data' table . Is there any other way I can delete the unapproved line item form the final item-data table? The tables that are used in the main VL01N transaction are FXLIPS,XLIPS,L_LIPS etc. Please help me out here.
    Regards,
    me.

    Hi
    In user exit EXIT_SAPLV50P_001, IS_LIPS is an inporting parameter and changes made to this structure wont affect in any way.
    You need to find an enhancement where the LIPS structure or table parameter is being exported by the function module. so that changes done to it will affect and values will be carried forward.
    Regards,
    Dwaraka.S

  • KE52 - Change profit centre - user exit

    Hello,
    I've searched high and low in transaction KE52 (change profit centre) for a user exit/badi/bte etc. and have found nothing. I need to validate that the 'Person Responsible' field is a valid SAP user. Please let me know if any of you have found a way of doing this - I'm not interested in z programs that find user exits etc.
    Thanks
    Richard

    Hi Richard,
    you could, instead of using a user-exit or BADI, use the field-exit of the domain VERAK (link to the data element) VERAPC.
    I have not found any user-exit or BADI too.
    Rgd
    Frédéric

  • Change VBAK in user exit

    Hi
    I append a new field in VBAK.
    In user exit userexit_save_document i need to chnage it. Please let me know any method (Update command is not working in creation mode).
    Thanks and Regards
    Aditya

    Go to the Program MV45AFZZ 
    use the form
    FORM USEREXIT_MOVE_FIELD_TO_VBAK.
    ENDFORM.
    or FORM USEREXIT_SAVE_DOCUMENT,
    FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
    use any of these forms to change the value of your newly added field in VBAK..

  • PO title change by using user exit

    Hello friends,
    I would like to change the Purchase order title depends on some conditions in one user exit .
    Could you please suggest me any user exit or tell me the procedure to do that change.
    Thanks in advance.
    Arvind.

    Hi,
    check the following exits
    M06B0005
    Changes to communication structure for overall release of purchase requisitions
    M06E0004
    Changes to communication structure for release of purchasing document
    M06E0005
    Role determination for release of purchasing documents
    ME590001
    Grouping of requisitions for PO split in transaction ME59
    MEETA001
    Determination of schedule line type (backlog, immediate requirement, forecast)
    MEFLD004
    Determination of earliest delivery date for checking at time of goods receipt (PO only)
    MELAB001
    Generation of forecast delivery schedule: realization via creation profile
    MEQUERY1
    Enhancement for document overview ME21N / ME51N
    MEVME001
    Calculation of default GR quantity and over/underdelivery tolerances
    MM06E001
    User exits for inbound EDI messages and outbound purchasing documents
    MM06E003
    Number range and document number
    MM06E004
    Control of import data screens in purchase orders
    MM06E005
    Customer fields in purchasing documents
    MEREQ001
    Customer's own data in purchase requisitions
    MM06E007
    Change document for requisitions when converting into POs
    MM06E008
    Monitoring of contract target value in case of release orders
    MM06E009
    Relevant texts for "Texts exist" indicator
    MM06E010
    Field selection for vendor address
    MM06E011
    Activation of requisition block
    MM06L001
    Exits for determination of ratings in vendor evaluation
    MMAL0001
    ALE source list distribution: outbound processing
    MMAL0002
    ALE source list distribution: inbound processing
    MMAL0003
    ALE purchasing info record distribution: outbound processing
    MMAL0004
    ALE purchasing info record distribution: inbound processing
    MMDA0001
    Default values for delivery addresses
    MMFAB001
    User exit for generation of releases
    MRFLB001
    Control items during release creation
    Regards,
    Padmam.

  • Billing output user exit

    Hi,
    My requirement is to have checking on material price during billing process.
    When billing document posted -> the output determination is set automatically. But when user try to print the billing doc, I want to have some checking on material pricing group and be able to show error message if pricing not maintained.
    Is there any user exit can be used ?
    Thanks,
    Melissa

    Hi Melissa,
    You need to get a routine written through VOFM and need to assign this routine in Billing Output Rocedure with the output Type in the requirements column.
    You need to identify the Material Pricing group which particular groups/ else identify the Pricing Condition type which is responsible for this Material Pricing group based discount/surcharge and look for the values from KONV table the PK-FK relationship between VBRK/VBRP table and KONV table id done through KNUMV field in the billing tables ,take that number and then go to KONV look for that particular Condition Type KSCHL Files and its value in KWERT/KBETR check if the vlaue is not null.
    Hope it helps.

  • MIRO user exit  at material document creation

    I need to find out where or how material documents are created.  Right now we have one material document per day per invoice so a single document can have many payments made against it (if they are made in the same day).  What I need to do is change it so that each payment has its own material document.  If you have 3 payments against invoice 001 in the same day then you have three material documents against that invoice instead of just one.
    I am assuming this is done, or can be changed, in a user exit.  If not is this a configuration issue?
    Regards,
    Davis

    Here is the list of User Exits and BADIs for MIRO.
    Enhancement/ Business Add-in            Description
    Enhancement
    LMR1M001                                User exits in Logistics Invoice Verification
    LMR1M002                                Account grouping for GR/IR account maintenance
    LMR1M003                                Number assignment in Logistics Invoice Verification
    LMR1M004                                Logistics Invoice Verification: item text for follow-on docs
    LMR1M005                                Logistics Inv. Verification: Release Parked Doc. for Posting
    LMR1M006                                Logistics Invoice Verification: Process XML Invoice
    MRMH0001                                Logistics Invoice Verification: ERS procedure
    MRMH0002                                Logistics Invoice Verification: EDI inbound
    MRMH0003                                Logistics Invoice Verification: Revaluation/RAP
    MRMN0001                                Message output and creation: Logistics Invoice Verification
    Business Add-in
    INVOICE_UPDATE                          Business Add-In: Logistics Invoice Verification

  • How to find a correct User-Exit

    Hi All
          I need to make changes in the user exit and there are many user-exits in the standard program here my question is how to find the correct user-exit which suits our requirement.
    Thanks
    srini

    run this program by giving ur t code...and click the exit it will go to SMOD there u read the documentation of that exit..if ur requirement satisfies try to use that one..
    REPORT  ZUSEREXIT.
    *report zuserexit no standard page heading.
    tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
    tables : tstct.
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : devclass like tadir-devclass.
    parameters : tcode like tstc-tcode obligatory.
    select single * from tstc where tcode eq tcode.
    if sy-subrc eq 0.
    select single * from tadir where pgmid = 'R3TR'
                      and object = 'PROG'
                      and obj_name = tstc-pgmna.
    move : tadir-devclass to devclass.
    if sy-subrc ne 0.
       select single * from trdir where name = tstc-pgmna.
       if trdir-subc eq 'F'.
         select single * from tfdir where pname = tstc-pgmna.
         select single * from enlfdir where funcname = tfdir-funcname.
         select single * from tadir where pgmid = 'R3TR'
                            and object = 'FUGR'
                            and obj_name eq enlfdir-area.
         move : tadir-devclass to devclass.
       endif.
    endif.
    select * from tadir into table jtab
                   where pgmid = 'R3TR'
                     and object = 'SMOD'
                     and devclass = devclass.
    select single * from tstct where sprsl eq sy-langu and
                                      tcode eq tcode.
    format color col_positive intensified off.
    write:/(19) 'Transaction Code - ',
          20(20) tcode,
          45(50) tstct-ttext.
    skip.
    if not jtab[] is initial.
       write:/(95) sy-uline.
       format color col_heading intensified on.
       write:/1 sy-vline,
              2 'Exit Name',
             21 sy-vline ,
             22 'Description',
             95 sy-vline.
       write:/(95) sy-uline.
       loop at jtab.
         select single * from modsapt
                where sprsl = sy-langu and
                       name = jtab-obj_name.
         format color col_normal intensified off.
         write:/1 sy-vline,
                2 jtab-obj_name hotspot on,
               21 sy-vline ,
               22 modsapt-modtext,
               95 sy-vline.
       endloop.
       write:/(95) sy-uline.
       describe table jtab.
       skip.
       format color col_total intensified on.
       write:/ 'No of Exits:' , sy-tfill.
    else.
       format color col_negative intensified on.
          write:/(95) 'No User Exit exists'.
    endif.
    else.
    format color col_negative intensified on.
    write:/(95) 'Transaction Code Does Not Exist'.
    endif.
    at line-selection.
    get cursor field field1.
    check field1(4) eq 'JTAB'.
    set parameter id 'MON' field sy-lisel+1(10).
    call transaction 'SMOD' and skip first   screen.

  • Stoping process of saving purchase order(ME21/ME21N) in the user exit.

    Hi,
    I am using user exit "EXIT_SAPMM06E_016" of purchase order. While creating PO and after user enters 1st line item or more items and presses save button, then this user exit will be called.
    Now my requirement is I have to check "item delivery date" , if it is more than 300 days from creation date then I have to show popup for warning the user for the same and if user want to make the changes then this user exit should stops the process of saving the PO and returns and allows to change the PO.
    Please help me in this.
    how I can stop the saving process.
    Thanks,
    Deepak

    Hi Deepak,
    You can do it in IM_ITEM method
    DATA: ls_mepoitem TYPE mepoitem.
    ls_mepoitem = im_item->get_data( ).
    if you check ls_mepoitem-quantity field it will give your required value....pls Go through the documentation below for the method
    Documentation for the method
    Processing of Item Data
    Functionality
    The PROCESS_ITEM method enables you to change the item data and check it
    for correctness.
    Parameters
    The following parameters are available:
    o IM_ITEM - Document item
    The interface reference is of the category
    IF_PURCHASE_ORDER_ITEM_MM. You can use all methods defined there.
    Note
    Please note the general hints on Error Handling.
    If you wish to mark the document item as invalid, use the
    INVALIDATE() method of the IF_PURCHASE_ORDER_ITEM_MM interface.
    Regards
    Byju

  • User Exit on the save of Billing document (VF01)

    Hello All,
    I have a requirement where in during the creation of a billing document of a particular type i need to put in a block to prevent the creation of a accounting document and call a workflow to remove the block in the Invoice.
    My requirement is that I require a user exit which is triggered on the save of the invoice document so that a call to the workflow can be done where in the runtime information of the document would be available in the workflow for further processing .
    Helpful answers would be rewarded.
    Thanks in Advance,
    Sowmya.

    Hi,
    USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)
    The internal number range used in the standard system is specified in the billing type table and can be changed in this user exit. This user exit is only called when the billing documents is created.
    USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMKCV (header fields).
    USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMPCV (item fields).
    USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)
    Depending on the number range, table TVFKD is used to set the billing date (country-specific requirments in Italy).
    USEREXIT_NUMBER_RANGE is automatically deactivated when this user exit is being applied.
    USEREXIT_FILL_VBRK_VBRP (Module pool SAPLV60A, program RV60AFZC)
    This user exit is only called when the billing document is created. It is used to provide the header and the item of the new billing document with deviating or additional data.
    USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB)
    Printing the item line of a billing document can be supplemented or changed.
    USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)
    Printing the header line of a billing document can be supplemented or changed.
       Refer the help
    http://help.sap.com/saphelp_46c/helpdata/en/1c/f62c7dd435d1118b3f0060b03ca329/frameset.htm
    Regards
    Kiran Sure

  • Which option to choose:idoc user exit or copy standard idoc?

    Hi gurus,
    We are using idoc technolody to implement the interface between R3 and 3rd party system.
    Most of idocs are inbound processing, and it seems standard idoc can't meet our all requirements.
    So we are considering the option:i choose doc user exit or create new idoc by copying standard idoc.
    Which way do you like better?What are the advantages and disadvantages of them?
    Any help will be appreciated.
    BTW, our customer will upgrade their R3 4.7 system to ECC6.0 after this project the next year.

    Hi,
    By making changes in the User-Exits, if you can achieve what you are looking for then I would recommend to use user-exits. SAP programs are not bug free and SAP keeps on updating them by releasing hundreds of notes every day. If customer is upgrading to new version in near future then using standard programs are the best option.
    Cheers,

  • How to implement User Exit in APO?

    Hello All,
    I am not sure how to use user exits. I was wondering if anyone can help me understand how to implement any user exit? Is there any T.Code where you do that? or ABAP coding is required? Also how different is BAdi from User exits?
    Any advice is welcome.
    Thanks,
    Sanju

    Hi Sanju,
        Check this link.
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    BADI or user exit, I don't think it is a choice between the two. Both serve the same purpose, add some custom logic to the standard logic. It depends on your requirement, the point when the user exit or BADI is called, information that is available to you in that user exit/BADI and information that you can change in that user exit/BADI. There is no difference in implementing the User Exit in APO or R/3.
    Regards,
    Siva.

  • User Exit to Block Invoicing

    Hello,
    A sales order needs to be created & its invoicing needs to be blocked if the user(creating a sales order) exceeds a certain  value (net) in the sales order. Does anyone has an idea of what user exit we need to code for this.
    Regards,
    Alam.

    User Exits For Billing
    USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)
    The internal number range used in the standard system is specified in the billing type table and can be changed in this user exit. This user exit is only called when the billing documents is created.
    USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMKCV (header fields).
    USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)
    In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMPCV (item fields).
    USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)
    Depending on the number range, table TVFKD is used to set the billing date (country-specific requirments in Italy). USEREXIT_NUMBER_RANGE is automatically deactivated when this user exit is being applied.
    USEREXIT_FILL_VBRK_VBRP (Module pool SAPLV60A, program RV60AFZC)
    This user exit is only called when the billing document is created. It is used to provide the header and the item of the new billing document with deviating or additional data.
    USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB)
    Printing the item line of a billing document can be supplemented or changed.
    USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)
    Printing the header line of a billing document can be supplemented or changed.
    User exits in program RV60AFZD
    Short descriptions of the user exits are contained in the program:
    USEREXIT_RELI_XVBPAK_AVBPAK
    USEREXIT_NEWROLE_XVBPAK_AVBPAK
    USEREXIT_NEWROLE_XVBPAP_AVBPAK
    The following user exits are available in report SAPLV60B for transfer to accounting (function group V60B):
    EXIT_SAPLV60B_001: Change the header data in the structure acchd
    You can use this exit to influence the header information of the accounting document. For example, you can change the business transaction, "created on" date and time, the name of the person who created it or the transaction with which the document was created.
    EXIT_SAPLV60B_002: Change the customer line ACCIT
    You can use this exit to change the customer line in the accounting document. This exit is processed once the ACCIT structure is filled in with data from document header VBRK.
    EXIT_SAPLV60B_003: Change the customer line in costing
    The customer line is filled in differently for costing. You can use exit 003 to influence the ACCIT structure.
    EXIT_SAPLV60B_004: Change a GL account item ACCIT You can add information to a GL account item (such as quantity specifications) with this exit.
    EXIT_SAPLV60B_005: User exit for accruals
    Once all relevant data for accruals was entered in the GL account item, you can add to this data with this exit.
    EXIT_SAPLV60B_006: Change the control line ACCIT
    You can use exit 006 to add information to the control line.
    EXIT_SAPLV60B_007: Change the installment plan
    You can use exit 007 to add information to the installment plan
    parameters in the GL account item.
    EXIT_SAPLV60B_008: Change the transfer structure ACCCR, ACCIT and ACCHD
    After the accounting document is filled in with data, you can use exit 008 to change the document once again.
    EXIT_SAPLV60B_010: Item table for customer lines
    You can use exit 10 to influence the contents of customer lines before they are created.
    EXIT_SAPLV60B_0011: Change the parameter for cash account determination or reconciliation account determination
    You can use this exit to change inbound parameters in order to influence account determination.
    regards
    vinod

Maybe you are looking for