User Exits, VOFM

Hi Friends,
Can you please provide your insight about the most efficient way to learn VOFM and user exits. I mean to reach sufficient level on SD side in a limited time frame.
Would you please kindly send me useful tutorials with specific cases and exercises? My email is [email protected]
Rewards promised if helpful! Thank you.

no reply.close.

Similar Messages

  • User Exits and VOFMs

    I am looking for a document that suggests coding practices and rules that should be followed in User Exits and VOFMs in SAP R/3. Like value the variable XKWERT with the desired value in Pricing Condition Formula VOFMs, or never read an SAP defined internal table into the header line. Things like that. Does any one know of such a document?

    Hi, this may help you.
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a function module. The code for the function module is written by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.
    The naming standard of function modules for functionmodule exits is:
    EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as:
    CALL CUSTOMER.-FUNCTION <3 digit suffix>
    To find a Exit.
    Goto Transaction -- Find The Package
    SMOD >f4>Use the Package here to Find the Exits In the Package.
    Else if you Want to search by Application Area wise ,
    There is one more tab to find the Exits in the Respective Application Area.
    Implementing the Exit-- CMOD Create ProjectsAssgn your Component .
    Now Run ur Transaction to Check if it Triggers.
    Thats it..
    Suppose you need to find out all the user exits related to a tcode.
    1. Execute the Tcode.
    2. Open the SAP program.
    3. Get the Development Class.
    4. Execute Tcode SE84.
    5. Open the Node 'Envir. -> Exit Techniques -> 'Customer Exits -> Enhancements'
    6. Enter the Development class and execute.
    Check out this thread..
    The specified item was not found.
    1. Type the transaction : system->status-> <PROG. NAME>
    2 open SE37 , type EXIT<PROG NAME> and press F4 to get the list of function exits available.
    3. Open CMOD utilities->SAP enhancements
    EDIT->All selections
    4.type the function module name obtained in step 2, in fields 'component name' in 'additional selections' block. and execute.
    5. The displayed list contains the enhancements names for the transaction You were looking for.
    6. Create a project in CMOD and the code in default include->activate.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    which gives the list of exits for a tcode
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm
    For information on Exits, check these links
    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.planetsap.com/userexit_main_page.htm
    User-Exits
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/ab038.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.sap-basis-abap.com/sapab013.htm
    http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283
    These links will help you to learn more on user exits.
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.allsaplinks.com/user_exit.html
    www.sap-img.com/abap/what-is-user-exits.htm
    Also please check these threads for more details about user exits.
    Re: Screen exit
    user exit and customer exit
    user exit
    1. Document on UserExits in FI/CO
    http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
    2. Finding User Exits...
    http://sap.ionelburlacu.ro/abap/sap2/Other_Useful_Tips.html#Finding_User_Exits
    3. List of all User Exits...
    http://www.planetsap.com/userexit_main_page.htm
    VOFM is the transaction where you can maintain Requirement routines, which are assigned through cusomization.
    To create a routine you need access key & routine no. starts with "9".for ex. 901,902 etc.
    one important thing to note that even if you have some syntax errors inside your routine, it will get activated without errors. So, you need to do Main Program check before activation.
    Refer to SAP Note no : 327220,381348,156230.
    goto VOFM tcode for wrting the Routines
    from menu Requirements-> pricing
    You can create the pricing related routines here
    Use the Number from 900 only
    take the acess key and try to copy the existing routine and change the code to your requirement  and keep a break point and see
    Activate it before execution
    Reward If Helpfull.
    Regards Madhu.

  • Why SAP has provided the VOFM routines even though we do have User-Exits?

    Hi Experts,
    Pls. let me clarify about,
    1) What is the difference between VOFM routines and User-Exits?
    2) Why SAP has provided the VOFM routines, even though we are having User-Exits, BADIs?
    3) Is VOFM is meant for only SD module or we also use VOFM in other modules too, like MM, PP?
    thanq

    Do be careful about asking questions that sound like interview questions...
    > 1) What is the difference between VOFM routines and User-Exits?
    VOFM are type of user exit.
    >
    > 2) Why SAP has provided the VOFM routines, even though we are having User-Exits, BADIs?
    >
    Historical.  They were created before BADIs and CMOD user exits were invented.  The other "old" user exits in SD are the user exit forms.
    > 3) Is VOFM is meant for only SD module or we also use VOFM in other modules too, like MM, PP?
    >
    Only SD.
    > thanq
    You're welcome.

  • What is the Difference 'VOFM' and 'User-Exit' ?

    What is the Difference 'VOFM' and 'User-Exit' ?

    If you need to implement any of these User exits, you first create a project for the user exit, then assign the user exit(s) to your project. Then you write the coding for the user exit, and finally activate the project.
    For general information about user exits, in the R/3 Library, go to Basis components and look at the Enhancements section. In addition there is detailed information about each user exit that you can access when you assign it to your project (see below).
    Activities
    Start by creating your project.
    1. Enter a name for your project.
    2. Select Modification -> Create.
    3. Enter a short text for your project and select save.
    Next assign the user exit to your project.
    4. Select Components.
    5. Enter the name(s) of the user exits you want to implement.
    6. Select SAP documentation, if you want detailed information on this user exit.
    7. Select save.
    8. Select back.
    Next make your coding modifications.
    9. Select enhancement components.
    10. Select change.
    11. Select the user exit you want to write code for.
    12. Select the include zxpbco01.
    The system will then prompt you to create this include, and you can continue to write your coding in it.
    Next activate your project.
    13. Return to the initial screen and select activate project.
    Routines
    Routines are short sub-programs that carry out various checks during document processing. In the SD module, you can create and process routines for copying requirements, data transfer, requirements and formulas using transaction VOFM. Besides the routines delivered to you with the system, you can create your own individual routines.
    Transaction VOFM allows you to follow a standardized procedure for creating routines. The name ranges are predefined for routines delivered to you with the system and for routines created by the customer. This name convention guarantees that your own routines are not overwritten during a Release upgrade.
    Copying requirements and data transfer
    The routines for coying requirements and data transfer are defined for the document types sales orders, deliveries, billing documents, sales activities, as well as for texts. You specify copying requirements and the data transfers when defining the document flow for each document type. You enter the routines for texts in the access sequences for texts.
    o Copying requirements determine which data is copied during the copying of documents. A copying requirement could define, for example, that the same customer must appear in the document header when you copy an inquiry to a quotation.
    o Routines for data transfer make a detailed control of the copying of fields possible. A data transfer could define, for example, that particular item fields can only be copied in combination with other particular fields and can only be copied into contracts or credit and debit memos.
    Requirements and formulas
    Routines for requirements and formulas are used for functions using the condition technique. You enter these routines in the pricing procedure or the condition types. Requirements are also used for statistics.
    o A requirement in pricing can determine that an access is dependent on a particular precondition. It can carry out a check of the document currency, for example, and, depending on whether it is a foreign or the local currency, allow or deny the access.
    o Formulas are used in pricing to define various factors for pricing. Formulas are defined for scale base value, condition base value, condition amount, group key, and rounding rules. The formula for a rounding rule could define, for example, that all calculated amounts are rounded to two places behind the decimal point during a price change of the condition record. The formula for a condition base value could define, that the header discount is distributed among the order items according to volume an not value of the item, as is the case in the standard SAP R/3 System.
    Creating routines
    There are two methods to create a routine
    1. Creating by overwriting
    When using this method, a note appears as a commentary in the routine to be newly created.
    2. Creating
    When creating a new routine, an ABAP with internal number assignment is created.
    You always have to activate a new routine before using it. Each routine for requirements and formulas, copying requirements and data transfers is stored in a separate program. For each new routine an entry is added in table TFRM and TFRMT. For each routine, a long text can be stored as a text module.
    Most routines must be changed in client 000. Transaction VOFM can be transported as XPRAs, which means that after the import all routines can be activated.
    Name ranges for routines
    The standard routines are to be within the number range 001-599 (for 2 digit formula numbers, 01-49)
    The user routines are to be within the number range 600-999 (for 2 digit formula numbers, 50-99).

  • Creating line item for a sales order in user exit

    Hi
    I have to create a line item through user exit "userexit_save_document_prepare" when saving the sales order.I am doing this by appending a row to the internal table XVBAP in the user exit.
    The row is getting appended to the internal table but the line item is not getting created in the sales order .I dont getting any error also.
    Can anyone tell me what could be the reason for this and is there any other means by which i can create a line item through the user exit.

    You have to set the creation flag UPDKZ to 'I'.
    to correctly use the user exit refer to OSS note 0381348 Using user exit, customer exit, VOFM in SD.
    pls reward if helpful
    Roberto

  • MM Princing  Update User Exit

    Hello Friends,
      I am in need  of a great help from you all in the pricing conditions.  The user wants the below requirement
    the PO has 2 items ..for eg
    000010   Material1               10car                   10 SGD
    000020   Material2               10 car                   5  SGD
    Now the user wants 3  SGD  to   be distributed to the 2 items.
    User dont want to create any new conditions but to add the value in the net value.
    User dont want to create header conditions also. How to do this without creating new conditions
    The end result should be
    000010   Material1               10car                   10 SGD  +  2 SGD
    000020   Material2               10 car                   5  SGD  + 1  SGD
    The 3 dollar would be hard coded in  any available User Exit.
    Can anyone of you explain how this can be achieved and which Include to be used for this purpose.
    I have a rough Idea MM06E005 can be used but how to update the net value with the extra 3 SGD value.
    Thanks in advance for all Gurus
    Regards
    Raj

    Hi,
    One suggestion. Define your condition in M/06 as a group condition and define your own VOFM subroutine where you define de basis of condition.
    Note 166952 - Rounding when distributing header conditions will help you to understand better and avoid problems of rounding.
    I hope this help you.
    Regards

  • User exit for VF01

    Hi,
    I would like to give hard stop while saving a proforma invoice if there is no pricing. I have set the condition type as mandatory in the pricing procedure, but still it allows to save the proforma invoice with a warning message. This in turn gives the user to print the proforma invoice and sent to customers.
    So I would like to give a hard stop, which should not allow saving of the proforma invoice if there is no pricing record for a particular condition type.
    Can anyone tell me what user exit I need to use to give a hard stop?
    Thanks in advance.

    I think you should be able to control it using requirements at the output procedure or copy control or both levels. Check in config or check with config specialist about that possibility. VOFM is the relavant transaction.

  • VF01 User Exit for VBRK-XBLNR

    In my client i have requirement as I want to display number ranges for VBELN and XBLNR . But VBELN purpsoe we used RV60AFZZ program and FORM USEREXIT_NUMBER_RANGE USING US_RANGE_INTERN. This is calling in Function module RV_INVOICE_DOCUMENT_ADD  inside this we used perform userexit_number_range using da_numki.
    But for XBLNR purpose i did not get the exit please suggest me how to resolve this . Please suggest me exit for this.

    Hi
    You can handle it with VOFM subroutines in copy rules (tcodes VTFA and VTFL) in data VBRK/VBRP. For this you can copy the VOFM that you are using and add the coding:
      vbrk-xblnr = 'string'.
    See Note 327220 - VOFM function and its objects for a further information.
    If you only want to transfer it to FI, see Note 301077 - User exits for the interface to accounting
    Regards
    Eduardo
    Edited by: E_Hinojosa on Mar 25, 2011 3:36 PM

  • Help on User Exits with example needed

    Hello Experts,
    Need help/material on:
    1)Understanding Advanced Customization (VOFM, User Exits)
    2)Calculating Freight Charges
    3)Integrating Credit and Payment Cards
    4)Interfacing with Other Modules (MRP, AR)
    5)Using Batch Delivery Processing
    Regards
    Innova

    Hi,
    There are a number of techniques SAP have used over the years to implement user-exits.
    The most recent exits will be found in CMOD. Using CMOD (or SMOD), you can list all the enhancements available, that use this technique. As  usual in the SAP world, the later the version of SAP you are using, the more exits are available.
    Other exits do not use the enhancement technique. For example, in Sales Order Processing (SAPMV45A), SAP have provided empty forms, such as USEREXIT_SAVE_DOCUMENT_PREPARE that can be used to provide customer functionality. With one client, this was used to set the blocking indicator on a sales order, if a manual change had been made to pricing. The requiredscript is written in between form and end form.
    Another technique is the use of validation and substitution rules in the financial modules.
    The best way to find the user exits available is through the IMG. The relevant nodes will take you to where the customisation can be performed. Usually, the associated IMG note details the use of each exit, though there are gaps.
    Award points if helpful.
    Message edited by
    Mohan

  • Update Delivery qty via user exits

    Hello all,
    I need to replace the delivery qty that is copied from sales order with another qty during delivery creation (or) at the time of saving the delivery. I have tried replacing the field LIPS-LFIMG in various user exits. But none had updated the delivery qty(somehow SAP again replaces the new value with the original value). If you know how to update a delivery qty thru an user exit, please give me details.
    Thanks a lot

    Hi Bala;
       Have you tried this through the routines in transaction VOFM?  An example routine is in the VOFM menu path "Data Transfer -> Deliveries".  Check the code under routine 101, that may help you.
    Best Regards,
    John

  • User Exit regarding Sale Order

    Hi All,
    While creating a sale order, in the header details and in conditions tab. All the condition types are displayed. Customer requirment is i need to make some changes for some particular condition type in tht sale order like. Can any one pls tell me which user exit i can use for it? to be more clear they have condition type ZFRT for Freight charges. I need to make some calculation ther and display the freight price value ther in tht condition type when the sale order is created. Since its a standrad prog we can do it by user exit only. If anyone done such requirment can let me know which user exit can be used for this.
    Thanks
    Sathish

    Go to SE80 - choose program enter SAPMV45A - Double click on the program and go to include MV45AFZA - There are user exits related to price. Put break point and execute VA01. Change field content of XKOMV (i think) and see the result in sales order application.
    They are the user exits to modify the pricing conditions.
    If you want to do that in pricing routines - find out the routine or requirement or formula for the same and go to tcode VOFM - write your code. Contact SD pricing guy for the same.

  • Need a user exit to add custom partner function in sales order @ item level

    Hi,
    Need a user exit to add custom partner function in sales order at item level. Goto --> Item --> Partner.
    Thanks,
    Thiyagi

    HI Leo
      To add a condition price for a condition type, this has to be assigned in the <b>pricing procedure</b>. For each condition type in a pricing procedure, we will have <b>access sequences</b>. If we follow this approch, the price is automatically extracted basing on the access sequences when condition records are maintained. For this, no coding is required and everything can be done by configuration by Functional consultant.
       Naren is right to point out on the same.
      If you need to change the price for a particular condition which already exists, you can go by <b>pricing routines</b>. Go through transaction <b>VOFM</b> for the same. 
       I advice you to discuss with your functional consultant and understand the requirement and then go for modifying accordingly.
    Kind Regards
    Eswar

  • User exit for pricing to calculate net sales value and tax at billing level

    Hi,
    Can anyone give the solution for below thing.
    I have written the code for to calculate the net sale a value and tax value based on condition types YTN1 & YTN2 and with pricing procedure "ZXTNIC"  under   user exit "userexit_field_modification"  in include program LV69AFZZ
    Calculation as per below
    FD:
    The user exit will run on the values of the line item and the header of the pricing conditions
    The user exit will subtract the current net value from the value of the conditions YTN1 & YTN2, also the Tax value will be added to the value of the conditions YTN1 & YTN2.
    Need the Net value = 8,032 and not 8,882  " here 8832 value is before calculation
    This value will be calculated as follows = Current Net u2013 YTN1 u2013 YTN2 = 8,882 u2013 0,773 u2013 0,077 = 8,032
    Need the Tax value = 2,395 and not 1,545  " here 1545 value is before calculation.
    This value will be calculated as follows = Current Tax + YTN1 + YTN2 =     1,545 + 0,773 + 0, 077 = 2,395
    When i will execute the VF01 transaction there in initial screen values are not updating automatically.Once we will select item line and  then clicking on " item pricing condition" icon i.e., item level , then only the values are updating both in item level and header level.
    But when we will execute the VF02 and VF03 the values are updating automatically as per condition.
    So please suggest me is there any exit for this requirement.
    Regards,
    Jayaram

    Hi,
    You should implement your logic in VOFM Copying routine for billing document.
    Regards
    Prasenjit

  • User Exit to change the Ship-to party address at Sales Order headder level

    Hi,
    I have requirement like this......
    I need to change the  ship-to party address at Sales Order headder level. for that which user exit i need to  use and which structure i need to use to update the transaction.
    I used : userexit_save_document_prepare, in that i passed data to 'xvbpa' and 'xvbadr' structures. even though it is not update the transaction.
    Please let me know the answer.
    Thanks,
    Satish.

    Hi Satish,
    Step1. Create new Data Copy Routine using Tcode VOFM.
    Step2. *-----------------------------------Ship to Party from contract
       IF CVBPA-PARVW = 'WE' OR
          CVBPA-PARVW = 'SH'.
        REFRESH IT_STP.
        SELECT KTOKD
               A~KUNNR
               NAME1
               NAME2
               A~ADRNR
               FROM VBPA AS A INNER JOIN KNA1 AS B ON A~KUNNR = B~KUNNR
               INTO CORRESPONDING FIELDS OF TABLE IT_STP
               WHERE VBELN = CVBPA-VBELN . 
    Step3.
       CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
            EXPORTING
              ENDPOS_COL   = 80
              ENDPOS_ROW   = 10
              STARTPOS_COL = 10
              STARTPOS_ROW = 5
              TITLETEXT    = 'Your Title'
            IMPORTING
              CHOISE       = T_SELIDX<=====Index No of selection
            TABLES
              VALUETAB     = IT_STP
            EXCEPTIONS
              BREAK_OFF    = 1
              OTHERS       = 2.
    Step4.
           READ TABLE IT_STP INTO WA_STP INDEX T_SELIDX.
            IF SY-SUBRC = 0.
              CLEAR:CVBPA-KUNNR, CVBPA-ADRNR.
              MOVE WA_STP-KUNNR TO CVBPA-KUNNR.
              MOVE WA_STP-ADRNR TO CVBPA-ADRNR. <========Address ID (Change Here).  
           ENDIF.
    Regards,
    Amrendra
    Moderator Message - Please do not reply to old, dormant threads.
    Message was edited by: Suhas Saha

  • Copy header text from DO to billing via user-exit

    Dear Experts,
    We have a requirement to copy one text field in the DO header to Billing header text field. I've searched the forum before posting this one but none seems to fit my requirement. I am using RV60AFZC form USEREXIT_FILL_VBRK_VBRP for this. From VF01, I see the header text was populated but after saving, it is being cleared out. I suspect the copy control from sales order to billing header text is doing this, nothing is saved in the SO.
    Any idea how to do this by configuration or by user-exit/enhancement spot?
    Looking forward for your responses.
    Thanks in advance.
    nEnE

    Can you please check VOFM>Copying Requirements>Texts, Routine 1. The documentation states:
    "This requirement checks if the reference document header has a text entry.  If so, it is automatically transferred. This requirement is assigned in the detail of the access sequence for header text determination."
    You can copy this in a 9XX routine number and write your specific code there.
    Hope this helps!

Maybe you are looking for