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
-
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?
thanqDo 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 -
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
RajHi,
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 -
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.
-
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
InnovaHi,
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 lotHi 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
SathishGo 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,
ThiyagiHI 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,
JayaramHi,
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.
nEnECan 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
-
All of my playlists made on my Ipod touch 3rd gen keep disappearing when I sync it to itunes. Drivng me crazy. All software up to date on both itunes and Ipod. Help please. I tend to make my playlists right on my ipod. This did not happen for the las
-
ALEAUD in IDOC to File Scenario
Hi, I have a IDOC to file scenario in which im sending the PAYEXT IDOC from SAP to a bank as the IDOC-XML. ie the user will create a payment in the SAP system , this shoud trigger an IDOC to XI. XI puts the IDOC-XML sturcture into a FTP folder path f
-
Rational Numbers GUI; Problem Displaying Answer
I have to make a GUI that adds, subtracts, divides, and multiplies rational numbers. You input them as fractions. I think most of it is right, it does compile, but I don't know how to get my answer to display. I tried simple stuff like just adding it
-
Sending pics from phone to phone
Does anyone know if you can send a photo from one phone to anoher?
-
IPhoto 4.0.3 won't load after moving files in HD
I moved some photo files around in my iphoto library on my HD. Then I went to open iPhoto and the photos won't load. It opens and says "loading photos" and the little wheel-thing just spins around. The pictures are still on my HD but won't load in iP