Enhancement
V60F0001 SD Billing plan (customer enhancement) diff. to billing plan
V46H0001 SD Customer functions for resource-related billing
V45W0001 SD Service Management: Forward Contract Data to Item
V45S0004 Effectivity type in sales order
V45S0003 MRP-relevance for incomplete configuration
V45S0001 Update sales document from configuration
V45P0001 SD customer function for cross-company code sales
V45L0001 SD component supplier processing (customer enhancements)
V45E0002 Data transfer in procurement elements (PRreq., assembly)
V45E0001 Update the purchase order from the sales order
V45A0004 Copy packing proposal
V45A0003 Collector for customer function modulpool MV45A
V45A0002 Predefine sold-to party in sales document
V45A0001 Determine alternative materials for product selection
SDTRM001 Reschedule schedule lines without a new ATP check
SDAPO001 Activating Sourcing Subitem Quantity Propagation
Business Add-in
BADI_SD_SCH_GETWAGFZ Scheduling Agreement: Read WAGFZ from S073
BADI_SD_V46H0001 SD Customer functions for resource-related billing
include MV45AFZZ
USEREXIT_SAVE_DOCUMENT.
USEREXIT_SAVE_DOCUMENT_PREPARE.
User exit available
EXIT_SAPMV45A_910 | IS-OIL/TAS: Exit Change-Flag Output determination |
EXIT_SAPMV45A_911 | TAS – Customer exit after creation of calloff |
EXIT_SAPMV45A_920 | User Exit: TAS data Incompletion Log on Doc.-header-level |
EXIT_SAPMV45A_930 | Userexit to allow overdelivery in Quantity schedule |
EXIT_SAPMV45A_001 | User Exit for Determining the Billing Plan Type |
EXIT_SAPMV45A_002 | Preassignment of Sold-to Party in Sales Documents |
EXIT_SAPMV45A_003 | Rev.Rec.: Copy Requirements An Header Level |
EXIT_SAPMV45A_004 | Rev.Rec.: Field Modification Sales |
EXIT_SAPMV45A_005 | Copyy Packing Proposal Into Outobund Delivery Orders |
Screen exit
4309 | 4.0: Subscreen: Header – Additional data A |
4312 | 4.0: Subscreen: Header – Additional data B |
8309 | Sales Document Header User Exit Header |
8310 | Sales Document Header User Exit Header |
8459 | Sales doc. Item User exit item (Additional data A) |
8460 | Sales Document Item User Exit Item (Additional data B) |
PBO and PAI module of these screens are defined in user modifiable include, so correspoding code can written there.
Apart from above mentioned user-exit there many form exits define in program where you can put custom code. These form exits are well documented in in program SAPMV45A with sample code. To see these form exits open program SAPMV45A in SE80 and expand ‘subroutine’ node of tree. All form starting with USEREXIT can be used to write custom code. Some of the commonly used are
USEREXIT_AVAIL_CHECK_CREDIT
USEREXIT_CHECK_VBAK
USEREXIT_CHECK_VBAP
USEREXIT_CHECK_VBEP
USEREXIT_CHECK_VBKD
USEREXIT_CUST_MATERIAL_READ
USEREXIT_NEW_PRICING_VBAP
USEREXIT_NEW_PRICING_VBKD
USEREXIT_NUMBER_RANGE
USEREXIT_READ_DOCUMENT
USEREXIT_REFRESH_DOCUMENT
USEREXIT_SAVE_DOCUMENT
USEREXIT_SAVE_DOCUMENT_PREPARE
Most of the enhacement in VA01/VA02/VA03 are done using these form exits.
Adding additional input field to transaction:
Roughly using below step you can modify these transaction to include new input field.
- First include the new field in table VBAK or VBAP, depending on what level to want to add the input. VBAK is sales order header data and VBAP is sales order item data.
- Modify the screen exit to include you field.
- Implement PBO modules to enable disable fields based on transaction VA01, VA02 and VA03.
- Write code in PAI module or form-exit (depending on the requirement) to validate the input and give error message.
BAPI related with Sales Order processing
BAPI_SALESORDER_CHANGE | Change or delete sales order |
BAPI_SALESORDER_CREATEFROMDAT2 | Create Sales Order |
BAPI_SALESORDER_GETLIST | Returns list of all Orders for Customer |
BAPI_SALESORDER_GETSTATUS | Returns status with regard to availability, processing status (for example, delivery status) and prices. |
BAPI_SALESORDER_SIMULATE | Same as Create Sales Order BAPI, however Sales Order is not updated. Simulate the Sales Order creation. |
Note 93091 – Information about the BAPIs in Sales and Distribution
Note 550431 – FAQ: BAPI in sales – general questions
Tables related with sales order processing
VBAK Sales Document: Header Data
VBAP Sales Document: Item Data
VBEP Sales Document: Schedule Line Data
VBPA Sales Document: Partner
VBUK Sales Document: Header Status and Administrative Data
VBUP Sales Document: Header Status and Administrative Data
VBFA Sales Document Flow
VBKD Sales Document: Business Data
VBKFZ Cumulative Quantity Corrections
VBSN Change status relating to scheduling agreements
Available exits for VF01
SDVFX001 User exit header line in delivery to accounting
SDVFX002 User exit for A/R line in transfer to accounting
SDVFX003 User exit cash clearing in transfer to accounting
SDVFX004 User exit G/L line in transfer to accounting
SDVFX005 User exit reserves in transfer to accounting
SDVFX006 User exit tax line in transfer to accounting
SDVFX007 User exit: Billing plan during transfer to Accounting
SDVFX008 User exit: Processing of transfer structures SD-FI
SDVFX009 Billing doc. processing KIDONO (payment reference numbe
SDVFX010 User exit item table for the customer lines
SDVFX011 Userexit for the komkcv- and kompcv-structures
V05I0001 User exits for billing index
V05N0001 User Exits for Printing Billing Docs. using POR Procedu
V60A0001 Customer functions in the billing document
V60P0001 Data provision for additional fields for display in lis
V61A0001 Customer enhancement: Pricing
Sales Related Exits
Customer Exits
Enhancement Code |
Description |
---|---|
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 |
Include Routines
Include |
Description |
---|---|
MV45ATZZ |
For entering metadata for sales document processing |
MV45AOZZ |
For entering additional installation-specific modules for sales document processing |
MV45AIZZ |
For entering additional installation-specific modules for sales document processing. |
MV45AFZZ |
For entering installation-specific FORM routines and for using user exits, which may |
For more details see Help link above.
Billing Related Exits
Customer Exits
Enhancement code |
Description |
---|---|
SDVFX001 |
User exit header line in delivery to accounting |
SDVFX002 |
User exit for A/R line in transfer to accounting |
SDVFX003 |
User exit cash clearing in transfer to accounting |
SDVFX004 |
User exit G/L line in transfer to accounting |
SDVFX005 |
User exit reserves in transfer to accounting |
SDVFX006 |
User exit tax line in transfer to accounting |
SDVFX007 |
User exit: Billing plan during transfer to Accounting |
SDVFX008 |
User exit: Processing of transfer structures SD-FI |
SDVFX009 |
Billing doc. processing KIDONO (payment reference number) |
SDVFX010 |
User exit item table for the customer lines |
SDVFX011 |
Userexit for the komkcv- and kompcv-structures |
V05I0001 |
User exits for billing index |
V05N0001 |
User Exits for Printing Billing Docs. using POR Procedure |
V60A0001 |
Customer functions in the billing document |
V60P0001 |
Data provision for additional fields for display in lists |
V61A0001 |
Customer enhancement: Pricing |
Delivery related exits
Customer Exits
Enhancement Code |
Description |
---|---|
V50PSTAT |
Delivery: Item Status Calculation |
V50Q0001 |
Delivery Monitor: User Exits for Filling Display Fields |
V50R0001 |
Collective processing for delivery creation |
V50R0002 |
Collective processing for delivery creation |
V50R0004 |
Calculation of Stock for POs for Shipping Due Date List |
V50S0001 |
User Exits for Delivery Processing |
V53C0001 |
Rough workload calculation in time per item |
V53C0002 |
W&S: RWE enhancement - shipping material type/time slot |
V53W0001 |
User exits for creating picking waves |
VMDE0001 |
Shipping Interface: Error Handling - Inbound IDoc |
VMDE0002 |
Shipping Interface: Message PICKSD (Picking, Outbound) |
VMDE0003 |
Shipping Interface: Message SDPICK (Picking, Inbound) |
VMDE0004 |
Shipping Interface: Message SDPACK (Packing, Inbound) |
V02V0001 |
Sales area determination for stock transport order |
V02V0002 |
User exit for storage location determination |
V02V0003 |
User exit for gate + matl staging area determination (headr) |
V02V0004 |
User Exit for Staging Area Determination (Item) |
Include Routines
Include |
Description |
---|---|
MV50AFZ1 |
User Exits for Delivery Processing |
MV50AFZ2 |
User Exit for Batch Quantity Allocation |
MV50AFZ3 |
LIPS-KOQUI (Picking is subject to confirmation) determination |
MV50AFZK |
The user exits in this include can be used to fill the condition tables for material |
MV50AFZL |
In delivery creation process for sales orders there is the possibility to restrict the delivery |
MV50AFZP |
This user exit can be used to modify change mode of pricing screens in delivery processing. |
MV50AFZZ |
Users Exit for Batch Determination; LIPS-LGORT determination |
User Exits for Transportation
Include Routines
Include |
Description |
---|---|
MV56AOZZ |
You can include your own modules in this program, to be processed in shipment processing |
MV56AIZZ |
You can include your own modules in this program, to be processed in shipment processing |
MV56AFZY |
You can include your own FORM routines in this program. They can contain your own |
MV56AFZZ |
This program contains pre-defined FORM routines, in which you can carry out your own |
For additional information, see SAP Help link above.
User Exits for Price Determination
Routine |
Module Pool or |
Include |
Description |
---|---|---|---|
USEREXIT_PRICING_PREPARE_TKOMK |
SAPLV60A |
RV60AFZZ |
This user exit allows you to copy additional fields for pricing in the TKOMK |
USEREXIT_PRICING_PREPARE_TKOMP |
SAPLV60A |
RV60AFZZ |
This user exit allows you to copy additional fields for pricing in the TKOMP |
USEREXIT_FIELD_MODIFICATION |
SAPMV61A |
MV61AFZA |
You can use this user exit to adjust the display of individual lines in the condition |
USEREXIT_FIELD_MODIFIC_KZWI |
SAPMV61A |
MV61AFZB |
You can change the display of subtotals in the condition screen by changing |
USEREXIT_FIELD_MODIFIC_KOPF |
SAPMV61A |
MV61AFZB |
You can adjust the display of subtotals in the condition screen to your requirements |
USEREXIT_FIELD_MODIFIC_LEER |
SAPMV61A |
MV61AFZB |
You can adjust the display of blank lines in the condition screen to your requirements |
USEREXIT_PRICING_CHECK |
SAPMV61 |
MV61AFZA |
You can install additional checks to the standard checks of condition lines (e.g. |
USEREXIT_PRICING_RULE |
SAPLV61A |
RV61AFZA |
In the standard SAP system, it is predefined which condition categories and classes |
USEREXIT_CHANGE_PRICING_RULE |
SAPMV61A |
MV61AFZA |
You can use this user exit to change the pricing type that has been predefined in the |
USEREXIT_XKOMV_BEWERTEN_INIT |
SAPLV61A |
RV61AFZB |
This field is used in the formulas and therefore initialized before the loop for the pricing |
USEREXIT_XKOMV_BEWERTEN_END |
SAPLV61A |
RV61AFZB |
Within a loop for the price components during pricing, specific values can be transferred |
USEREXIT_XKOMV_ERGAENZEN |
SAPLV61A |
RV61AFZB |
In change mode, you can change the dynamic part of the condition record (KONVD) that |
USEREXIT_XKOMV_ERGAENZEN_MANU |
SAPLV61A |
RV61AFZB |
You can use this user exit to change the ready-for-input fields of the manually entered |
USEREXIT_XKOMV_FUELLEN |
SAPLV61A |
RV61AFZB |
This user exit is always called up during a redetermination of all or individual price |
USEREXIT_XKOMV_FUELLEN_O_KONP |
SAPLV61A |
RV61AFZB |
This user exit is always called up during a redetermination of all or individual price components. |
USEREXIT_PRICING_COPY |
SAPLV61A |
RV61AFZA |
You can change the KONV fields for copied price components. |
Note: as of Release 4.6A, the display of the condition screen (screen 6201) has been converted from a full screen to a subscreen. The full screen is included in the SAPMV61A module pool, the subscreen, however, in program SAPLV69A. Therefore, instead of MV61AFZA and MV61AFZB, the user exits in LV69AFZZ should be used. For reference, see OSS note 313569.
User Exits for Partner Determination
Partner determination contains the following user exits for your use
User Exit |
Description |
---|---|
EXIT_SAPLV09A_001 |
You can use this user exit to control whether an address that was entered manually |
EXIT_SAPLV09A_002 |
Call up this user exit if a customer has not been maintained in the current sales area. |
EXIT_SAPLV09A_003 |
Use this user exit to control the origin of partners in the partner determination procedure |
EXIT_SAPLV09A_004 |
Use this user exit to integrate your own check in a program, that runs before the partner |
For more detailed information, see the program documentation for each ofthe user exits.
User Exits For Credit Checks
If you want to carry out your own individual credit checks, that differ from those in the standard system, you must define them in the following user exits:
User Exit |
LVKMPTZZ |
---|---|
LVKMPFZ1 |
USER_CREDIT_CHECK1 |
LVKMPFZ2 |
USER_CREDIT_CHECK2 |
LVKMPFZ3 |
USER_CREDIT_CHECK3 |
User Exit for availability check
User exit |
Include |
Description |
---|---|---|
USEREXIT_AVAIL_CHECK_CREDIT |
MV45AFZF |
This user exit allows you to determine whether the system should or should not |
User Exit for Risk Management for Receivables
User exit |
Description |
---|---|
RVKMPUS2 |
Using this user exit, you can define new forms of payment guarantee. |
User Exits for Billing Plan
User exit |
Include |
Description |
---|---|---|
RV60FUS1 |
SAPLV60F |
Billing Plan: Distribute Difference
|
RV60FUS2 |
SAPLV60F |
Billing plan: Prepare pricing
|
RV60FUS3 |
SAPLV60F |
Bill. Plan: Deadline Proposal From Source
|
RV60FUS4 |
SAPLV60F |
field preparation field selection for screen |
RV60FUS5 |
|
This userexit can be used to split date lines TKOMK for Header fields |
RV60FUST |
|
User Part for Billing Plan - Data Definition |
Additional User Exits in Billing Document
User exit |
Include |
Description |
---|---|---|
USEREXIT_FILL_VBRK_VBRP |
RV60AFZC |
Fill in the fields in VBRK/VBRP tables |
USEREXIT_NUMBER_RANGE_INV_DATE |
RV60AFZC |
Determine the number range for internal document number |
User Exits For Product Allocation Processing*
User exit |
Include |
Description |
---|---|---|
SDQUX0001 |
|
Function module exit for enhanced check in SD product allocation |
User Exits For Availability Check
User exit |
Include |
Description |
---|---|---|
USEREXIT_PLANT_SELECTION |
RV03VFZZ |
The user exits named here are planned for projects that are to be carried out in agreement |
USEREXIT_ADD_FIELD_TO_HEADER |
FV45VFZZ |
|
USEREXIT_DELIVERY_GROUPS |
FV45VFZY |
|
USEREXIT_AVAILABILITY_IN |
RV03VFZZ |
This user exit is used to adjust the flow during plant transfer. A list of permitted plants, where |
User Exits For Component Supply Processing
User exit |
Include |
Description |
---|---|---|
USEREXIT_CHECK_VBLB-USR01 |
MV45AFZC |
These user exits are available for checking customer reserve fields from VBLB-USR01 to |
Function module V450001 is available as an SAP extension for the component supplier industry. It contains the following user exits:
EXIT_SAPLVED4_004 |
|
General - You can use this user exit to overwrite the standard method with which the system determines the recipient of messages (either at sales document level or in the customer master record). You can define a special recipient for an incoming document that has just been processed. |
---|---|---|
EXIT_SAPLV45L_001 |
|
For delivery schedules - The system checks an incoming delivery schedule against the current/old delivery schedule to determine if there are any differences. |
EXIT_SAPLV45L_002 |
|
For delivery schedules - With this user exit, you can change the VBLB structure (sales document: delivery schedule data), before the system copies delivery schedule data to the corresponding internal table. |
EXIT_SAPMV45L_001 |
|
Planned delivery schedules - This user exit allows you to process schedule lines generated automatically in a planning delivery schedule.. |
EXIT_SAPMV45L_002 |
|
Planned delivery schedules - This user exit allows you to modify the calendar used in a delivery schedule split. |
EXIT_SAPMV45A_005 |
|
For delivery orders (MAIS) - This user exit enables you to control how the system copies packing proposals into the outbound delivery order. |
EXIT_SAPLVED4_001 |
|
For delivery orders (MAIS) - These user exits allow you to change the workflow parameters for processing inbound EDI messages. |
EXIT_SAPLVED4_001 |
|
For the self-billing procedure - You can use these user exits for the standard self-billing procedure. |
EXIT_SAPLVED5_002 |
|
For the self-billing procedure -You can use these user exits for the self-billing procedure with invoice creation. |
User Exits For Resource-Related Billing
You can use the following user exits for resource-related billing before Release 4.5A:
- RV45HFZZ enhancement
-
- USEREXIT_INV_REQ_ITEM
-
- USEREXIT_INV_REQ_ITEM_PARTNER
You can use the following user exits for resource-related billing as of Release 4.5A:
- V46H0001 enhancement
- EXIT_SAPLV46H_001
-
- EXIT_SAPLV46H_002User 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. User Exits For General Billing Interface
- USEREXIT_AVBPAK_CPD (in Include RV60AFZB)
With this user exit for the general billing interface, deviating address data for different partner functions can be copied from the interface.
- USEREXIT_AVBPAK_ADD (in Include RV60AFZA)
With this user exit for the general billing interface, new partner functions can be copied from the interface.
- USEREXIT_XVBAPF_KEY (in Include RV60AFZA)
With this user exit for the general billing interface, a key field can be added in the aggregrated flow.
- USEREXIT_XVBAPF_KEY_CANC (in Include RV60AFZA)
Special user exit for the general billing interface with which a key field can be added in the aggregrated flow.
User Exits For Sales Support
In Sales Support, you can use the following SAP enhancements:
- MCV2001 - Expand LIS fields for sales activities/sales promotions. This enhancement contains the following user exit:
- EXIT_SAPLMCV2_001
- V43MLIS - Expand LIS fields for address lists. This enhancement contains the following user exit:
- EXIT_SAPLV43M_007
- V43K0001 - Enhancement for linking to calendar. This enhancement contains the following user exit:
- EXIT_SAPLV43K_001
- V43ADATA - Change sales activity data in dialog. This enhancement contains the following user exit:
- EXIT_SAPMV43A_007
User Exits For Lists
User Exits in Program RVKPR002 (Customer Expected Price)
RVKPRFZ1 |
This allows the list structure of individual fields to be filled on header and item levels. |
RVKPRFZ2 |
This allows the sort sequence for the first issue of the list to be defined. |
RVKPRFZ1 |
This allows you to deposit your own user codes. |
RVKPRFZ1 |
This allows you to create your own list headings. |
There are two additional user exits for listing sales documents, which influence the way in which the communication structure is filled. These user exits do not affect the structure of the list but the way in which the data is transferred and how the new additional fields are filled.
- CUSTOMER_FILL_1
- CUSTOMER_FILL_2
User Exits for Payment Cards
Include MV45AFZH contains the user exit AUTHORIZATION_VALUE_SPLIT.
You can use this user exit to initiate the system to create several authorizations in the sales order at the same time. This might be appropriate when different shipping points are assigned to the items and therefore several shipments will be created for a sales order.