Vous êtes sur la page 1sur 23

SD User exits

Purpose
This wiki page would discuss about various User exits relevant for SAP Sales and Distribution
module.

Introduction
A user exit is a place in a software program where a customer can arrange for their own tailormade program to be called. In R/3, some user exits use Include statements to include customer
program enhancements that are called from the program. Other user exits use tables that are
accessed through customization.
Warning
Documentation below is copied from SPRO activities documentation and SAP library:

SAP Help - User Exits in Sales Document

SAP Help - User Exits for Billing

SAP Help - Transferring new SD fields to Accounting

SAP Help - User Exits in Transportation

SAP Help - User Exits for Billing Plan

Relevant Information
CMOD

Customer Exits

Include Routines It is reserved for customers, for which you need a modification key

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

Enhancement Code

Description

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

For entering additional installation-specific modules for sales document


processing
MV45AOZZ which are called up by the screen and run under PBO (Process Before Output)
prior
to output of the screen.

For entering additional installation-specific modules for sales document


processing.
MV45AIZZ These are called up by the screen and run under PAI (Process After Input) after
data
input (for example, data validation).

MV45AFZZ For entering installation-specific FORM routines and for using user exits, which
and
may
MV45EFZ1 be required and can be used if necessary.
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

Enhancement code

Description

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

Enhancement Code

Description

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

Include

Description

The user exits in this include can be used to fill the condition tables for material
listing and material exclusion (KOMKG and KOMPG) and product selection
MV50AFZK
(KOMKD
and KOMPD) with own data.

In delivery creation process for sales orders there is the possibility to restrict the
delivery
creation to some order items. If these order items are member of a delivery group,
MV50AFZL but not
all items of this delivery group are includes in the restriction range of the order
item nubers,
you can specify in this routine what to do.

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

You can include your own modules in this program, to be processed in shipment
MV56AOZZ processing
screens during PBO.

MV56AIZZ You can include your own modules in this program, to be processed in shipment
processing

Include

Description

screens during PAI.

You can include your own FORM routines in this program. They can contain your
MV56AFZY own
adjustments for shipment processsing.

This program contains pre-defined FORM routines, in which you can carry out
MV56AFZZ your own
adjustments for transportation processing.
For additional information, see SAP Help link above.
User Exits for Price Determination

Routine

Module Pool or
Function Group

USEREXIT_PRICING_PREPARE_TKOMK

SAPLV60A

USEREXIT_PRICING_PREPARE_TKOMP

SAPLV60A

Include

Description

This user exit allows you to


copy additional fields for
pricing in the TKOMK
communication structure
(header fields), which have
not been provided in
RV60AFZZ the standard SAP system.
These fields can also be used
for pricing in the
billing document. This user
exit is described in detail in
the "New fields in
pricing" section.

RV60AFZZ This user exit allows you to


copy additional fields for
pricing in the TKOMP
communication structure

Routine

Module Pool or
Function Group

Include

Description

(item fields), which have not


been provided in the
standard SAP system. These
fields can also be used for
pricing. This user
exit is described in detail in
the "New fields in pricing"
section.

USEREXIT_FIELD_MODIFICATION

USEREXIT_FIELD_MODIFIC_KZWI

USEREXIT_FIELD_MODIFIC_KOPF

SAPMV61A

You can use this user exit to


adjust the display of
individual lines in the
condition
screen by changing the
MV61AFZA
display attributes of the screen
fields. This does not
include the display of
subtotals. This user exit is
also used in order processing.

SAPMV61A

You can change the display of


subtotals in the condition
screen by changing
MV61AFZB the display attributes of the
screen fields.
This user exit is also used in
order processing.

SAPMV61A

You can adjust the display of


subtotals in the condition
screen to your requirements
MV61AFZB by changing the display
attributes of the screen fields.
This user exit is also used in
order processing.

Routine

USEREXIT_FIELD_MODIFIC_LEER

USEREXIT_PRICING_CHECK

USEREXIT_PRICING_RULE

USEREXIT_CHANGE_PRICING_RULE

USEREXIT_XKOMV_BEWERTEN_INIT

Module Pool or
Function Group

Include

Description

SAPMV61A

You can adjust the display of


blank lines in the condition
screen to your requirements
MV61AFZB by changing the display
attributes of the screen fields.
This user exit is also used in
order processing.

SAPMV61

You can install additional


checks to the standard checks
MV61AFZA
of condition lines (e.g.
maximum/minimum value).

SAPLV61A

In the standard SAP system, it


is predefined which condition
categories and classes
can be copied or recalculated
RV61AFZA per pricing type. You can
change the predefined
standard
procedure for each pricing
type.

SAPMV61A

You can use this user exit to


change the pricing type that
MV61AFZA has been predefined in the
copying control table in
billing.

SAPLV61A

This field is used in the


formulas and therefore
RV61AFZB initialized before the loop for
the pricing
procedure starts.

Routine

Module Pool or
Function Group

Include

Description

SAPLV61A

Within a loop for the price


components during pricing,
specific values can be
RV61AFZB transferred
into the communication
structures in pricing to be
further processed.

SAPLV61A

In change mode, you can


change the dynamic part of
the condition record
RV61AFZB (KONVD) that
is always redetermined (i.e. it
is not stored in database table
KONV).

SAPLV61A

You can use this user exit to


change the ready-for-input
RV61AFZB fields of the manually entered
condition record in add mode
in the condition screen.

USEREXIT_XKOMV_FUELLEN

SAPLV61A

This user exit is always called


up during a redetermination of
all or individual price
components. You can change
the work fields of the
RV61AFZB
condition line. However, this
only
applies to conditions that have
been determined via a
condition record.

USEREXIT_XKOMV_FUELLEN_O_KONP

SAPLV61A

USEREXIT_XKOMV_BEWERTEN_END

USEREXIT_XKOMV_ERGAENZEN

USEREXIT_XKOMV_ERGAENZEN_MANU

RV61AFZB This user exit is always called


up during a redetermination of
all or individual price

Routine

Module Pool or
Function Group

Include

Description

components.
You can change the work
fields of the condition line.
However, this only applies to
conditions
that have been determined via
a condition record. This may
include subtotals, manually
entered
conditions or conditions that
have been calculated with a
formula.

USEREXIT_PRICING_COPY

SAPLV61A

You can change the KONV


RV61AFZA 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 sub screen. The full screen is included in the SAPMV61A module pool,
the sub screen, 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

You can use this user exit to control whether an address that was
entered manually
and has already been used in other documents (referenced), should be
EXIT_SAPLV09A_001
referenced
again if it changes or whether a new address should be created
(duplicated).

User Exit

EXIT_SAPLV09A_002

Description

Call up this user exit if a customer has not been maintained in the
current sales area.

Use this user exit to control the origin of partners in the partner
determination procedure
EXIT_SAPLV09A_003 (origin X, Y or Z). If X, Y, or Z has been entered in the Origin field,
this user exit is automatically
called up during partner determination.

EXIT_SAPLV09A_004

Use this user exit to integrate your own check in a program that runs
before the partner is saved in the document.

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

This user exit allows you to determine


whether the system should or should
not
USEREXIT_AVAIL_CHECK_CREDIT MV45AFZF carry out an availability check after a
blocked document has been released
or after
a new credit check.

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

Billing Plan: Distribute Difference

BILLING_SCHEDULE_DELTA
For milestone billing a percentage value is fully invoiced for
each billing deadline. In the case of deviations between
the original item value and any later changes, you can use the
user exit to determine whether the difference should
be stored in the final invoice or sent to the next deadline.

USEREXIT_MOVE_FIELD_TO_FPLT : This user exit allows


you to create your own fields in table FPLT.

USEREXIT_MOVE_FIELD_TO_FPLA : This user exit


allows you to create your own fields in table FPLA.

RV60FUS1 SAPLV60F

User exit

Include

Description

Billing plan: Prepare pricing

RV60FUS2 SAPLV60F

USEREXIT_PRICING_PREPARE_TKOMX
This user exit is used to copy or create an additional field in
the definitive communication structure for pricing.
The user exit is also often used to change the duration of a
billing plan deadline. You can do this by overwriting
the following fields:
o tkomp-anz_tage (Number of days in a deadline)
o tkomp-anz_monate (Number of months in a deadline)
o tkomp-anz_jahre(Number of years in a deadline)
o tkomp-anz_wochen (Number of weeks in a deadline)

RV60FUS3 SAPLV60F Bill. Plan: Deadline Proposal From Source

USEREXIT_DATE_PROPOSAL
In the standard release deadlines are set according to a
template in the billing plan. This grid entry list sets the
deadlines
for each day but you can adjust the template with the user exit
so that the grid entry list could, for example, follow a monthly
pattern instead.
Modification report for billing plan SDFPLA02
this report enables you to update the header data for a billing
plan with the result that new billing plan deadlines are
determined
and set in the billing plan.
In this way you can, for example, set the goods issue date as
the starting date for the billing plan.
Additions to billing plan with transaction SMOD

User exit SDVAX001


In the standard release the billing plan type is determined from
the item category of the sales document and set in the billing
plan.
You can also use the user exit to determine the billing plan

User exit

Include

Description

type dependent on data from the order header, order item, etc.

User exit V60F0001


this user exit is for changing the deviating billing date (FPLTAFDAT).

RV60FUS4 SAPLV60F field preparation field selection for screen

RV60FUS5

This user exit 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

Fill in the fields in


VBRK/VBRP tables

USEREXIT_FILL_VBRK_VBRP

RV60AFZC

USEREXIT_NUMBER_RANGE_INV_DATE

RV60AFZC Determine the number range for


internal document number
RV61AFZB User exits for printing

User Exits For Product Allocation Processing*


User exit

SDQUX0001

Include

Description

Function module exit for enhanced check in SD product allocation

User Exits for Availability Check


User exit

USEREXIT_PLANT_SELECTION

Include

Description

The user exits named here are


planned for projects that are to be
carried out in agreement
with SAP development as they may
RV03VFZZ only be used in consultation with
SAP. SAP provides no
guarantee if they are used without
our advice in program is an
exception to this rule

USEREXIT_ADD_FIELD_TO_HEADER
FV45VFZZ
USEREXIT_ADD_FIELD_TO_LINE

USEREXIT_DELIVERY_GROUPS
USEREXIT_MVERF_INIT
USEREXIT_QUOTA_KEY_VALUE

FV45VFZY

USEREXIT_AVAILABILITY_IN
USEREXIT_AVAILABILITY_OUT
USEREXIT_DARA_REFRESH
USEREXIT_PLANT_SELECTION

This user exit is used to adjust the


flow during plant transfer. A list of
permitted plants, where
this material is created, is
determined and checked in the
standard R/3 delivery. A dialog box
RV03VFZZ appears where you can select the
plants. The user exits allow you to
modify the plant table
so that plant selection takes place in
advance for every flagged selection
and a dialog box
becomes unnecessary.

User Exits for Component Supply Processing

User exit

Include

USEREXIT_CHECK_VBLBUSR01
USEREXIT_CHECK_VBLBUSR02
USEREXIT_CHECK_VBLBUSR03
USEREXIT_CHECK_VBLBUSR04
USEREXIT_CHECK_VBLBUSR05

Description

These user exits are available for checking


customer reserve fields from VBLB-USR01
to
MV45AFZC VBLB-USR05. The reserve fields are used in
the component supplier industry. The system
calls them in the screen flow logic for header
data in forecast and JIT delivery schedules

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.

For delivery orders (MAIS) - This user exit enables you to control
EXIT_SAPMV45A_005 how the system copies packing proposals into the outbound delivery
order.

EXIT_SAPLVED4_001
EXIT_SAPLVED4_002
EXIT_SAPLVED4_003
EXIT_SAPLVED4_005
EXIT_SAPLVED4_006

For delivery orders (MAIS) - These user exits allow you to change
the workflow parameters for processing inbound EDI messages.

EXIT_SAPLVED4_001
EXIT_SAPLVED4_005
EXIT_SAPLVED4_006

For the self-billing procedure - You can use these user exits for the
standard self-billing procedure.

EXIT_SAPLVED5_002
EXIT_SAPLVED5_003
EXIT_SAPLVED5_004

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
o USEREXIT_INV_REQ_ITEM
o 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
o EXIT_SAPLV46H_002 User Exits For Billing

USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)

The internal number range used in the standard system is specified in the billing type table and
can be changed in this user exit. This user exit is only called when the billing documents is
created.

USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program


RV60AFZZ)

In this user exit additional fields for account determination that are not provided in the standard
system are copied into communication structure KOMKCV (header fields).

USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)

In this user exit additional fields for account determination that are not provided in the standard
system are copied into communication structure KOMPCV (item fields).

USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program


RV60AFZC)

Depending on the number range, table TVFKD is used to set the billing date (country-specific
requirements 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, Program 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:


o USEREXIT_RELI_XVBPAK_AVBPAK
o USEREXIT_NEWROLE_XVBPAK_AVBPAK
o 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 aggregated
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
aggregated 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:
o EXIT_SAPLMCV2_001

V43MLIS - Expand LIS fields for address lists. This enhancement contains the following
user exit:
o EXIT_SAPLV43M_007

V43K0001 - Enhancement for linking to calendar. This enhancement contains the


following user exit:
o EXIT_SAPLV43K_001

V43ADATA - Change sales activity data in dialog. This enhancement contains the
following user exit:
o 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.