Userexit for va01

Hi Friends,
I have to code user exit for Tr VA01, i have got the exit name but my requirement is in sales order creation if user enters a material,  here i want to check whether it is a BOM, if it is a bom i want to make its items in display mode. can any one suggest where i want to write the code and how to make that item in grey.
its urgent
Regards,
DVNS.

check the following exits,
SDTRM001  Reschedule schedule lines without a new ATP check          
V45A0001  Determine alternative materials for product selection      
V45A0002  Predefine sold-to party in sales document                  
V45A0003  Collector for customer function modulpool MV45A            
V45A0004  Copy packing proposal                                      
V45E0001  Update the purchase order from the sales order             
V45E0002  Data transfer in procurement elements (PRreq., assembly)   
V45L0001  SD component supplier processing (customer enhancements)   
V45P0001  SD customer function for cross-company code sales          
V45S0001  Update sales document from configuration                   
V45S0003  MRP-relevance for incomplete configuration                 
V45S0004  Effectivity type in sales order                            
V45W0001  SD Service Management: Forward Contract Data to Item       
V46H0001  SD Customer functions for resource-related billing         
V60F0001  SD Billing plan (customer enhancement) diff. to billing plan
and lso the following user exits,
Check the programs MV45AFZZ,MV45ATZZ, MV45AOZZ,MV45AIZZ
reward if helpful,
thanks
krishna

Similar Messages

  • Badi/userexit for va01,when save button is clicked

    hi friends,
    i want badi/userexit which triggers when save button is clicked in va01 tcode.
    Thanks,
    Gaurav

    Hello,
    You can debug the standard code ( /h before pressing save button) searching for user-exits or badis.
    Set breakpoints in statements. For example if you are looking for call customer-fuction, click on:
    Breakpoint --> Breakpoint at --> Breakpoint at Statement
    and then here write: CALL CUSTOMER-FUNCTION
    Then pressing F8 it will go directly to the next breakpoint (user exit for this transaction).
    I hope it will help you.

  • VA01 userexit for PO duplication check

    Hi Experts,
    I have an urgent requirement regarding PO duplication check and I need to know if there is a userexit for VA01 where I can perform PO duplication check. This PO duplication check will consists of fields VBAK-KUNNR, VBAK-BSTKD and VBAK-BNAME.
    Points will be awarded. Thanks in advance.
    Regards,
    Leo

    hi,
    check the include MV45AFZZ...It has number of userexits....put a breakpoint and check..
    Regards,
    Nagaraj

  • ERROR MESSAGE for VA01

    hi all,
         i wanna add a userexit for VA01 in program MV45AFZZ to check if reference field in Accounting Tab is initial before i save this sales order.
         when i add the belowing code in Form USEREXIT_SAVE_DOCUMENT,and press save buttom twice.
    CONSTANTS: c_bukrs_vf TYPE vbak-bukrs_vf VALUE 'PK04',
                 c_auart TYPE vbak-auart VALUE 'ZOR',
                 c_ucomm TYPE sy-ucomm VALUE 'T\04',
                 c_text TYPE char40 VALUE 'Please enter Policy reference',
                 c_type TYPE c VALUE 'E'.
      IF vbak-bukrs_vf EQ c_bukrs_vf
       AND vbak-auart EQ c_auart.
        IF vbak-xblnr IS INITIAL.
          FCODE = FCODE_GLEICHE_SEITE.
          MESSAGE c_text TYPE c_type.
        ENDIF.
      ENDIF.
        there's a error message that 'item 00010 doesn't exist.',then i exit this transaction.
        if i put these code in Form USEREXIT_SAVE_DOCUMENT_PREPARE, it works fine.Could anyone give me any suggestion for the reason?Thanks in advance.
    Thanks and Regards.
    Desmond.Yang
    Edited by: desmondyoung on May 25, 2009 4:08 AM

    Hi Yang
    generally USEREXIT_SAVE_DOCUMENT_PREPARE is used when some validations are required before saving any sales order, here we are not updated any tables.
    While USEREXIT_SAVE_DOCUMENT is used for saving sales order in some tables other then standard or some manipulations required before saving data to tables.
    In  your case you are just validating the sales order not manipulating data, hence go for USEREXIT_SAVE_DOCUMENT_PREPARE.
    try and revert

  • Urgent: SCREEN EXITS FOR VA01

    Hi all,
    Please tell me what r the screen exits available for VA01 transaction.
    points will be rewarded,
    Thanks in advance,
    SIRI

    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
    Transaction Code - VA02                     Change Sales Order
    Exit Name           Description
    SDTRM001            Reschedule schedule lines without a new ATP check
    V45A0001            Determine alternative materials for product selection
    V45A0002            Predefine sold-to party in sales document
    V45A0003            Collector for customer function modulpool MV45A
    V45A0004            Copy packing proposal
    V45E0001            Update the purchase order from the sales order
    V45E0002            Data transfer in procurement elements (PRreq., assembly)
    V45L0001            SD component supplier processing (customer enhancements)
    V45P0001            SD customer function for cross-company code sales
    V45S0001            Update sales document from configuration
    V45S0003            MRP-relevance for incomplete configuration
    V45S0004            Effectivity type in sales order
    V45W0001            SD Service Management: Forward Contract Data to Item
    V46H0001            SD Customer functions for resource-related billing
    V60F0001            SD Billing plan (customer enhancement) diff. to billing plan
    No of Exits:         15
    Rewards if useful.........
    Minal

  • Userexit  for partner function changed

    What is the userexit for partner function changes in VA01 or VA02.

    Hi,
    Please check this:
    EXIT_SAPLEINM_002
    Thanks and best Regards,
    Suresh

  • User Exit for VA01 and VA02: Duplicate PO check

    Hi,
    I am writing a userexit for PO check in VA01 & VA02 trx.The PO number should be unique.If we enters the existing PO number it should go to Incompletion log.I am calling check_po_number form in userexit_save_document in mv45afzz. it is not working....
    what is wrong in my code?
    Thanks in advance,
    fractal.
    FORM CHECK_PO_NUMBER.
    DATA : begin of ivbkd occurs 0,
             vbeln like vbkd-vbeln,
            end of ivbkd.
    Select DISTINCT vbeln into table ivbkd from vbkd
              where bstkd = vbak-bstnk.
    Select * from vbak up to 1 rows
             for all entries in ivbkd
              where vbeln = ivbkd-vbeln and
                    kunnr = vbak-kunnr.
    endselect.
    if sy-subrc = 0.
         perform set_so_incompletion_log using 'PONM'.
    else.
       perform reset_so_incompletion_log using 'PONM'.
    endif.
    ENDFORM.
    FORM set_so_incompletion_log using value(logid) type c.
    case logid.
    when 'PONM'.
         read table xvbuv with key
         vbeln = xvbak-vbeln
         tdid = 'Z026'.
         if sy-subrc <> 0.
          XVBUV-MANDT = SY-MANDT.
          XVBUV-VBELN = XVBAK-VBELN.
          XVBUV-POSNR = '000000'.
          XVBUV-ETENR = '0000'.
          XVBUV-PARVW =  ''.
          XVBUV-TDID  =  'Z026'.
          XVBUV-TBNAM =  'FTEXT'.
          XVBUV-FDNAM =  'LTEXT'.
          XVBUV-FEHGR =  '50'.
          XVBUV-STATG =  '02'.
          XVBUV-UPDKZ =  ''.
          XVBUV-FCODE =  'KTEX_SUB'.
          XVBUV-MSGKZ =   ''.
          XVBUV-SORTF =  '9999'.
          XVBUV-LFDNR =  '0000'.
          APPEND XVBUV.
         endif.
    ENDFORM.
    FORM reset_so_incompletion_log using value(logid) type c.
      case logid.
        WHEN 'PONM'.
           delete xvbuv
           where vbeln = vbak-vbeln
           and   tdid  = 'Z026'.
         WHEN OTHERS.
    endcase.
    ENDFORM.

    Hi Fractel,
    One of the classic mistakes we make when we use the <i>'for all entries in itab'</i> option is that we don't check if there are any entries in the itab or not. As a result of an empty itab, your select will always be true, because it is going to select everything and so the issue.
    Add a sy-subrc check in your code after select from vbkd. If sy-subrc <> 0, you don't have to go any further and if sy-subrc = 0, it means the PO is already used. Why are you even going to VBAK table?
    Remember, you are working with VBAK that is in your work area, and when you do a select from VBAK, you are overwriting your workarea, if the selection is successful. That will be dangerous. Don't do the VBAK select. You don't need that.
    If the VBKD select is successful, then you have a duplicate PO and if not, you don't have a duplicate PO. Isn't that the case?
    Srinivas
    Message was edited by: Srinivas Adavi

  • Doing user exit for va01

    Hi,
      I got a problem in the user-exit of VA01. when we  are copying data from request with quotation then the items all are copied and in edit mode.
    but in the item list we have to get item category in display mode how to make display mode of the table control. i know the logic to make table control field to display in general. but i dont in userexit how to call screen and all can any one know of the userexit for the screen and i have to configure this user-exit in spro "opy control routine".

    You would have to test, but I think you can do it with user exit MV45AFZZ.
    In the form USEREXIT_FIELD_MODIFICATION, you could add something like...
    if sy-tcode = 'VA01'  and      " order create
       vbak-vgtyp = 'B'.           " quotation preceding
      if screen-name = 'VBAP-PSTYV'.
        screen-input = 0.
      endif.
    endif.
    You might also want to check <b>if not vbak-vgbel is initial</b>.  I believe this is the reference document.

  • User Exit for VA01 and VA02 transaction codes

    Hi,
    I am writing a userexit for PO number checking for VA01 and VA02 transaction codes.The PO number should be unique in the table (vbkd-bstkd).Duplicate PO number entries can be checked with Sold-to Party.If anybody written something like this....please advice me...
    Thanks in advance.
    fractal

    Hi Fractel,
    Why are you looking for a user exit to do this duplicate PO check?
    This can be achieved through configuration of your sales order document type and message control. Follow the path below for configuration of the document type.
    Implementation Guide for R/3 Customizing (IMG)
    -->Sales and Distribution
       -->Sales
          -->Sales Documents
             -->Sales Document Header
                -->Define Sales Document Types
    Once you execute this node, you will see all the available document types. Select the one you are interested in and click the details icon. In the subsequent screen, under "General Control" section, there is a field "Check purch.order no". Pick the value 'A' from the drop-down list.
    Once you do this, system will check for duplicate PO numbers whenever you are creating or changing the sales order with that document type. If duplicate, it issues a message.

  • User exit for va01/va02 for std program

    Hi ,
    how are u all....
    here is my problem...
    i created a customized screen for va01.
    this screen gets called after user saves the order.
    in this screen i provided 4 options .
    1. accept the order
    2 change the order
    3.reject the order
    4 release unconfirmed.
    i am calling this screen in user exit userexit_refresh_document.
    before this am capturing the order number .
    once user clicks on first radion button i.e on accept.
    then i am passing the order number and removing the block using BAPI_salesorder_change.
    but here bapi is passing the error message as plese enter the order number ....
    my doubt is the userexit whr am calling the screen is correct ?
    can we do the same using BDC ..?
    if anybody working actions on user entry for va01 and va02..
    please let me know whr and how u r writing the code... sooon
    thx in advance...
    regards
    sanjay

    what are u doing ? , u cannt call BAPI in the same user exit.
    if user accepts the order --->then u have to unblock the order ?
    then u have to activate Credit Control User exits ->SPRO->SD->System Modifications>Credit Control User exits.
    regards
    Peram

  • Userexit For TCODE J1IJ depot excise invoice

    hi
    I want to know is there any userexit for depot excise invoice. That we can use to check weather excise entry date that is (J_1IRG23D-CPUDT) is equal to likp-WADAT_IST . Any info will be really helpful.
    Thank you

    Hi,
    Use this program SAPMJ1IJ in this program there are 4 includes.
    First try with  MJ1IJF01
    So check with your abaper which exit is working in this include.you can do it by setting break-point.
    Also check other includes MJ1IJTOP  MJ1IJO01  MJ1IJI01
    Thank you,

  • User Exit /BADI for VA01 in 5.0

    Hi,
    I want a BADI or EXIT where I can get the sales order no for the for the sales order which is created
    after saving the data in VA01.
    I have checked the INCLUDE MV45AFZZ. But in none of the exit it gives sales order no.
    And there are no BADI's available in this vesrion (In ECC 6.0 this BADI is there /SAPSLL/CTRL_SD0A_R3)
    I am using server version 5.0.
    regards
    vivek

    Hi,
    Find the user exits for VA01.
    SDAPO001            Activating Sourcing Subitem Quantity Propagation
    SDTRM001            Reschedule schedule lines without a new ATP check
    V45A0001            Determine alternative materials for product selection
    V45A0002            Predefine sold-to party in sales document
    V45A0003            Collector for customer function modulpool MV45A
    V45A0004            Copy packing proposal
    V45E0001            Update the purchase order from the sales order
    V45E0002            Data transfer in procurement elements (PRreq., assembly)
    V45L0001            SD component supplier processing (customer enhancements)
    V45P0001            SD customer function for cross-company code sales
    V45S0001            Update sales document from configuration
    V45S0003            MRP-relevance for incomplete configuration
    V45S0004            Effectivity type in sales order
    V45W0001            SD Service Management: Forward Contract Data to Item
    V46H0001            SD Customer functions for resource-related billing
    V60F0001            SD Billing plan (customer enhancement) diff. to billing plan
    Regards,
    Rajesh Kumar

  • I am facing problem while working for userexit for vendor master and Editor

    Hi,
    I am working one userexit for vendor master. My objective is after MK01 transaction, I want to attach MM01 transaction using userexit SAPMF02K on IDES version.
    1) Function module is EXIT_SAPMF02K_001 and Include is ZXF05U01.
      while duble click on Include is ZXF05U01, I am getting below error.
      (Program names ZX...are reserved for includes of exit function groups).
    2) Second userexit is Menu exit.
        I want to create a sub menu in ABAP Editor under Utilities->Customer Exit.
       If double click on Customer exit then MM01 should be called.
       So I got one userexit SEU00001  and Function module under that EXIT_SAPLEDITOR_001  and incluse is ZXSEUU21
       If I double click on ZXSEUU21 then same error getting displayed
       (Program names ZX...are reserved for includes of exit function groups).
    Can any one help me to resolve this.
    Waiting for quick response.
    Best Regards,
    BDP

    Hi Bansidhar.,
    If you have created the include with same name and implemented youe logic , then it should stop in your include when you have put breakpointin it.
    Please try to find the case in  which you user exit is called .
    It is not necessary that you include will be executed in all cases , please try to use data which is suitable for your case.

  • Transaction Variant for VA01

    Hi All,
    I am able to create transaction variant for transaction code MM01, XD01 and XK01 successfully. But i am unable to create transaction variant for VA01.
    And also some times i am getting error message "SAP Object SCV1(short text of variant) cannot be assigned to package ZXXX". Can you pls let me know why i am getting this error and why i am unable to create transaction variant for VA01 successfully.
    Thanks,
    Raju

    Hi,
    There is no difference in creation of the transaction variant for VA01/02. But the way it works is different. It works at order type level instead of t-code level. You have to create the variant in SHD0 and assign the same in order type customization.
    Alternatively you can populate the field TVAK-VARIANT with the transaction variant name in MV45AFZZ subroutine USEREXIT_MOVE_FIELDS_TO_VBAK/USEREXIT_FIELD-MODIFY. With out this it wont work. Just try to change the TVAK-VARIANT value in debug mode and see if it works fine. Surpricingly it works fine if you individually execute the variant.
    The error you mentioned might be because you might have given one of the screen variant name not starting with Z or Y.
    Thanks,
    Vinod.

  • Menu exit for VA01/02/03

    How to find the menu exit for VA01/02/03 transactions?
    Thanks
    Tharani

    hi do like this....use this program and execurte it give the tcode and execute it will give the exits list click on the exit and it will takes to the exit and choose test it gives whether it is a manu exit or function exit..
    REPORT z_find_userexit NO STANDARD PAGE HEADING.
    *&  Enter the transaction code that you want to search through in order
    *&  to find which Standard SAP User Exits exists.
    *& Tables
    TABLES : tstc,     "SAP Transaction Codes
             tadir,    "Directory of Repository Objects
             modsapt,  "SAP Enhancements - Short Texts
             modact,   "Modifications
             trdir,    "System table TRDIR
             tfdir,    "Function Module
             enlfdir,  "Additional Attributes for Function Modules
             tstct.    "Transaction Code Texts
    *& Variables
    DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
    DATA : field1(30).
    DATA : v_devclass LIKE tadir-devclass.
    *& Selection Screen Parameters
    SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK a01.
    *& Start of main program
    START-OF-SELECTION.
    Validate Transaction Code
      SELECT SINGLE * FROM tstc
        WHERE tcode EQ p_tcode.
    Find Repository Objects for transaction code
      IF sy-subrc EQ 0.
        SELECT SINGLE * FROM tadir
           WHERE pgmid    = 'R3TR'
             AND object   = 'PROG'
             AND obj_name = tstc-pgmna.
        MOVE : tadir-devclass TO v_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 = enlfdir-area.
            MOVE : tadir-devclass TO v_devclass.
          ENDIF.
        ENDIF.
    Find SAP Modifactions
        SELECT * FROM tadir
          INTO TABLE jtab
          WHERE pgmid    = 'R3TR'
            AND object   = 'SMOD'
            AND devclass = v_devclass.
        SELECT SINGLE * FROM tstct
          WHERE sprsl EQ sy-langu
            AND tcode EQ p_tcode.
        FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
        WRITE:/(19) 'Transaction Code - ',
        20(20) p_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.
    Take the user to SMOD for the Exit that was selected.
    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.
    regards,
    venkat.

Maybe you are looking for