Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

User Exists | Lavlesh Agrawal

User Exits In Sales Document Processing


This IMG step describes additional installation-specific processing in sales document processing. In
particular, the required INCLUDES and user exits are described.

Involved program components


System modifications for sales document processing affect different areas. Depending on the
modification, you make the changes in the program components provided:

• MV45ATZZ

For entering metadata for sales document processing. User-specific metadata must start with "ZZ".

• MV45AOZZ

For entering additional installation-specific modules for sales document processing which are called
up by the screen and run under PBO (Process Before Output) prior to output of the screen. The
modules must start with "ZZ".

• MV45AIZZ

For entering additional installation-specific modules for sales document processing. These are called
up by the screen and run under PAI (Process After Input) after data input (for example, data
validation). The modules must start with "ZZ".

• MV45AFZZ and MV45EFZ1

For entering installation-specific FORM routines and for using user exits, which may be required and
can be used if necessary. These program components are called up by the modules in MV45AOZZ or
MV45AIZZ.

User exits in the program MV45AFZZ


The user exits which you can use for modifications in sales document processing are listed below.

• USEREXIT_DELETE_DOCUMENT

This user exit can be used for deleting data which was stored in a separate table during sales
document creation, for example, if the sales document is deleted.
For example, if an additional table is filled with the name of the person in charge (ERNAM) during
order entry, this data can also be deleted after the sales order has been deleted.
The user exit is called up at the end of the FORM routine BELEG_LOESCHEN shortly before the
routine BELEG_SICHERN.

• USEREXIT_FIELD_MODIFICATION

This user exit can be used to modify the attributes of the screen fields.
User Exists | Lavlesh Agrawal

To do this, the screen fields are allocated to so-called modification groups 1 - 4 and can be edited
together during a modification in ABAP. If a field has no field name, it cannot be allocated to a group.
The usage of the field groups (modification group 1-4) is as follows:

• Modification group 1: Automatic modification with transaction MFAW

• Modification group 2: It contains 'LOO' for step loop fields

• Modification group 3: For modifications which depend on check tables or on other fixed
information

• Modification group 4: is not used

The FORM routine is called up for every field of a screen. If you require changes to be made, you
must make them in this user exit.
This FORM routine is called up by the module FELDAUSWAHL.
See the Screen Painter manual for further information on structuring the interface.

• USEREXIT_MOVE_FIELD_TO_VBAK

Use this user exit to assign values to new fields at sales document header level. It is described in the
section "Transfer of the customer master fields into the sales document".
The user exit is called up at the end of the FORM routine VBAK_FUELLEN.

• USEREXIT_MOVE_FIELD_TO_VBAP

Use this user exit to assign values to new fields at sales document item level. It is described in the
section "Copy customer master fields into the sales document".
The user exit is called up at the end of the FORM routine VBAP_FUELLEN.

• USEREXIT_MOVE_FIELD_TO_VBEP

Use this user exit to assign values to new fields at the level of the sales document schedule lines.
The user exit is called up at the end of the FORM routine VBEP_FUELLEN.

• USEREXIT_MOVE_FIELD_TO_VBKD

Use this user exit to assign values to new fields for business data of the sales document. It is
described in the section "Copy customer master fields into sales document" .
The user exit is called up at the end of the FORM routine VBKD_FUELLEN.

• USEREXIT_NUMBER_RANGE

Use this user exit to define the number ranges for internal document number assignment depending
on the required fields. For example, if you want to define the number range depending on the sales
organization (VKORG) or on the selling company (VKBUR), use this user exit.
The user exit is called up in the FORM routine BELEG_SICHERN.

• USEREXIT_PRICING_PREPARE_TKOMK

Use this user exit if you want to include and assign a value to an additional header field in the
communication structure KOMK taken as a basis for pricing.

• USEREXIT_PRICING_PREPARE_TKOMP
User Exists | Lavlesh Agrawal

Use this user exit if you want to include or assign a value to an additional item field in the
communication structure KOMP taken as a basis for pricing.

• USEREXIT_READ_DOCUMENT

You use this user exit if further additional tables are to be read when importing TA01 or TA02.
The user exit is called up at the end of the FORM routine BELEG_LESEN.

• USEREXIT_SAVE_DOCUMENT

Use this user exit to fill user-specific statistics update tables.


The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.
Note
If a standard field is changed, the field r185d-dataloss is set to X. The system queries this indicator at
the beginning of the safety routine. This is why this indicator must also be set during the maintenance
of user-specific tables that are also to be saved.

• USEREXIT_SAVE_DOCUMENT_PREPARE

Use this user exit to make certain changes or checks immediately before saving a document. It is the
last possibility for changing or checking a document before posting.
The user exit is carried out at the beginning of the FORM routine BELEG_SICHERN.

User exits in the program MV45AFZA

• USEREXIT_MOVE_FIELD_TO_KOMKD

Use this user exit to include or assign values to additional header fields in the communication
structure KOMKD taken as a basis for the material determination. This is described in detail in the
section "New fields for material determination" .

• USEREXIT_MOVE_FIELD_TO_KOMPD

Use this user exit to include or assign values to additional item fields in the communication structure
KOMPD taken as a basis for the material determination. This is described in detail in the
section "New fields for material determination ".

• USEREXIT_MOVE_FIELD_TO_KOMKG

Use this user exit to include or assign values to additional fields in the communication structure
KOMKG taken as a basis for material determination and material listing. This is described in detail in
the section "New fields for listing/exclusion".

• USEREXIT_MOVE_FIELD_TO_KOMPG

Use this user exit to include or assign values to additional fields in the communication structure
KOMPG taken as a basis for material determination and material listung. This is described in detail in
the section "New fields for listing/exclusion".

• USEREXIT_REFRESH_DOCUMENT

With this user exit, you can reset certain customer-specific fields as soon as processing of a sales
document is finished and before the following document is edited.
For example, if the credit limit of the sold-to party is read during document processing, in each case it
must be reset again before processing the next document so that the credit limit is not used for the
sold-to party of the following document.
User Exists | Lavlesh Agrawal

The user exit is executed when a document is saved if you leave the processing of a document with
F3 or F15.
The user exit is called up at the end of the FORM routine BELEG_INITIALISIEREN.

User-Exits in program MV45AFZB

• USEREXIT_CHECK_XVBAP_FOR_DELET

In this user exit, you can enter additional data for deletion of an item. If the criteria are met, the item is
not deleted (unlike in the standard system).

• USEREXIT_CHECK_XVBEP_FOR_DELET

In this user exit, you can enter additional data for deletion of a schedule line. If the criteria are met, the
schedule line is not deleted (unlike in the standard system).

• USEREXIT_CHECK_VBAK

This user exit can be used to carry out additional checks (e.g. for completion) in the document
header. The system could, for example, check whether certain shipping conditions are allowed for a
particular customer group.

• USEREXIT_CHECK_VBAP

This user exit can be used to carry out additional checks (e.g. for completion) at item level.

• USEREXIT_CHECK_VBKD

The user exit can be used to carry out additional checks (e.g. for completion) on the business data in
the order.

• USEREXIT_CHECK_VBEP

This user exit can be use to carry out additional checks (e.g. for completion) on the schedule line.
During BOM explosion, for example, you may want certain fields to be copied from the main item to
the sub-items (as for billing block in the standard system).

• USEREXIT_CHECK_VBSN

You can use this user exit to carry out additional checks (e.g. for completion) on the serial number.

• USEREXIT_CHECK_XVBSN_FOR_DELET In this user exit, you can enter additional criteria


for deletion of the serial number. If the criteria are met, the serial number is not deleted (unlike
in the standard system).

• USEREXIT_FILL_VBAP_FROM_HVBAP

You can use this user exit to fill additional fields in the sub-item with data from the main item.

• USEREXIT_MOVE_FIELD_TO_TVCOM_H

You can use this user exit to influence text determination for header texts. For example, you can
include new fields for text determination or fill fields that already exist with a new value.

• USEREXIT_MOVE_FIELD_TO_TVCOM_I
User Exists | Lavlesh Agrawal

You can use this user exit to influence text determination for item texts. For example, you can include
new fields for text determination or fill fields that already exist with a new value.

• User-Exits for product allocation:

The following user exits all apply to structure COBL, in which the data for account determination is
copied to item level.

• USEREXIT_MOVE_FIELD_TO_COBL

Option to include new fields in structure COBL.

• USEREXIT_COBL_RECEIVE_VBAK

Option to assign values from the document header to the new fields.

• USEREXIT_COBL_RECEIVE_VBAP

Option to supply values from the item to the new fields.

• USEREXIT_COBL_SEND_ITEM

A changed field can be copied from the structure into the item. You could use the user exit to display
a certain field in the account assignment block (see also MV45AFZB).

• USEREXIT_COBL_SEND_HEADER

A changed field can be copied from the structure to the header (see source text MV45AFZB)

• USEREXIT_SOURCE_DETERMINATION

You can use this user exit to determine which plant will be used for the delivery. In the standard
system, the delivering plant is copied from the customer master or the customer-material info record.
If you want to use a different rule, then you must enter it in this user exit.

• USEREXIT_MOVE_FIELD_TO_ME_REQ

With this user exit you can include additional fields for the following fields:

• EBAN (purchase requisition)

• EBKN (purchase requisition-account assignment)

• USEREXIT_GET_FIELD_FROM_SDCOM

Option to include new fields for the variant configuration. Fields that are included in structure SDCOM
can be processed and then returned to the order.

• USEREXIT_MOVE_WORKAREA_TO_SDWA

You can use this user exit to format additional work areas for the variant configuration. You will find
notes on the user exit in MV45AFZB.

• User-Exits for first data transfer:


User Exists | Lavlesh Agrawal

The following user exits can only be used for the first data transfer.
Note
Only use the user exits if the names/fields do NOT have the same name.

• USEREXIT_MOVE_FIELD_TO_VBAKKOM

Option to include additional fields in structure VBAKKOM (communiction fields for maintaining the
sales document header)

• USEREXIT_MOVE_FIELD_TO_VBAPKOM

Option to include additional fields in structure VBAPKOM (communication fields for maintaining a
sales item)

• USEREXIT_MOVE_FIELD_TO_VBEPKOM

Option to include additional fields in structure VBEPKOM (communication fields for maintaining a
sales document schedule line)

• USEREXIT_MOVE_FIELD_TO_VBSN

You can use this user exit to include fields in structure VBSN (scheduling agreement-related change
status).

• USEREXIT_MOVE_FIELD_TO_KOMKH

You can use this user exit to include new fields for batch determination (document header).

• USEREXIT_MOVE_FIELD_TO_KOMPH

You can use this user exit to include new fields for batch determination (document item).

• USEREXIT_CUST_MATERIAL_READ

You can use this user exit to set another customer number in the customer material info record (e.g.
with a customer hierarchy)

• USEREXIT_NEW_PRICING_VBAP

Option for entry of preconditions for carrying out pricing again (e.g. changes made to a certain item
field could be used as the precondition for pricing to be carried out again). Further information in
MV45AFZB.

• USEREXIT_NEW_PRICING_VBKD

Option for entry of preconditions for carrying out pricing again (e.g. changes to the customer group or
price group could be set as the preconditions for the system to carry out pricing again). Further
information in MV45AFZB.

• User-Exits in Program MV45AFZD

• USEREXIT_CONFIG_DATE_EXPLOSION

The BOM is exploded in the order with the entry date. You can use this user exit to determine which
data should be used to explode the BOM (explosion with required delivery date, for example).
User Exists | Lavlesh Agrawal

User exits in the program FV45EFZ1

• USEREXIT_CHANGE_SALES_ORDER

In the standard SAP R/3 System, the quantity and confirmed date of the sales document schedule
line is changed automatically if a purchase requisition is allocated, and it or the sales document is
changed (for example, quantity, date).
If you want to change this configuration in the standard system, you can define certain requirements
in order to protect your sales orders from being changed automatically. Use this user exit for this
purpose. Decide at this point whether the schedule lines are to be changed.

User-Exits in Program RV45PFZA

• USEREXIT_SET_STATUS_VBUK

In this user exit you can you can store a specification for the reserve fields in VBUK (header status).
Reserve field UVK01 could, for example, be used for an additional order status (as for rejections
status, etc.).
The following workareas are available for this user exit:

• VBUK (header status)

• FXVBUP (item status)

• FXVBUV (Incompletion)

• USEREXIT_SET_STATUS_VBUP

In this user exit you can you can store a specification for the reserve fields for VBUP (item status).
The following workareas are available for this user exit:

• FXVBAP (Item data)

• FXVBAPF (Dynamic part of order item flow)

• FXVBUV (Incompletion)

• USEREXIT_STATUS_VBUK_INVOICE

You can use this user exit to influence billing status at header level.

User exits in the screens


Additional header data is on screen SAPMV45A 0309, additional item data on screen SAPMV45A
0459. These screens contain the Include screens SAPMV45A 8309 or SAPMV45A 8459 as user
exits.

Fields which are also to be included in the sales document for a specific installation should be
included on the Include screens for maintaining. If an application-specific check module is needed for
the fields, this can be included in the Include MV45AIZZ. The module is called up in the processing
logic of the Include screens.

For field transports, you do not have to make changes or adjustments.


User Exists | Lavlesh Agrawal

Example

A new field, VBAK-ZZKUN, should be included in table VBAK.

If the check is defined via the Dictionary (fixed values or check table) the field must be included with
the fullscreen editor in the Include screen SAPMV45A 8309. In this case, no change has to be made
to the processing logic.

User Exits in Program MV45AFZ4

• USEREXIT_MOVE_FIELD_TO_KOMK

You can use this user exit to add or edit additional header fields in the communication structure -
KOMK- for free goods determination. For more information, see the New Fields for Free Goods
Determination IMG activity.

• USEREXIT_MOVE_FIELD_TO_KOMP

You can use this user exit to add or edit additional item fields in the communication structure KOMP
for free goods determination. For more information see the New Fields for Free Goods
Determination IMG activity.

User Exits in the SAPFV45PF0E and SAPFV45PF0C Programs

• EXIT_SAPFV45P_001

You can use this user exit to decide whether intercompany billing data is used in the profitability
segment for cross-company code sales, or whether the data comes from external billing (external
customer, sales data from the selling company code.

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)


User Exists | Lavlesh Agrawal

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

• User exits for program SAPLV60B (Interface to accounting):

• EXIT_SAPLV60B_001: Change the header data in the structure acchd

• EXIT_SAPLV60B_002: Change the customer line (accit and accccr)

• EXIT_SAPLV60B_003: Change the customer line in costing

• EXIT_SAPLV60B_004: Change a GL account item (accit and acccr)

• EXIT_SAPLV60B_005: User exit for accruals

• EXIT_SAPLV60B_006: Change the control line (accit and acccr)

• EXIT_SAPLV60B_007: Change the installment plan

• EXIT_SAPLV60B_008: Change the transfer structure acccr, accit and acchd

• EXIT_SAPLV60B_0011: Change the parameter for cash account determination or


reconciliation account determination
User Exists | Lavlesh Agrawal

User Exits For Availability Check


The user exits named here are planned for projects that are to be carried out in agreement with SAP
development as they may only be used in consultation with SAP. SAP provides no guarantee if they
are used without our advice!

USEREXIT_PLANT_SELECTION in program RV03VFZZ is an exception to this rule (see below).

User exits in program FV45VFZZ

• USEREXIT_ADD_FIELD_TO_HEADER

• USEREXIT_ADD_FIELD_TO_LINE

User exits in program FV45VFZY


• USEREXIT_DELIVERY_GROUPS

• USEREXIT_MVERF_INIT

• USEREXIT_QUOTA_KEY_VALUE

User exits in program RV03VFZZ

• 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 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 Price Determination


• USEREXIT_PRICING_PREPARE_TKOMK (module pool SAPLV60A, program RV60AFZZ)

This user exit allows you to copy additional fields for pricing in the TKOMK communication structure
(header fields), which have not been provided in 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.
User Exists | Lavlesh Agrawal

• USEREXIT_PRICING_PREPARE_TKOMP (module pool SAPLV60A, program RV60AFZZ)

This user exit allows you to copy additional fields for pricing in the TKOMP communication structure
(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 (module pool SAPMV61A, program MV61AFZA)

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

• USEREXIT_FIELD_MODIFIC_KZWI (module pool SAPMV61A, program MV61AFZB)

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

• USEREXIT_FIELD_MODIFIC_KOPF (module pool SAPMV61A, program MV61AFZB)

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

• USEREXIT_FIELD_MODIFIC_LEER (module pool SAPMV61A, program MV61AFZB)

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

• USEREXIT_PRICING_CHECK (module pool SAPMV61, program MV61AFZA)

You can install additional checks to the standard checks of condition lines (e.g. maximum/minimum
value).

• USEREXIT_PRICING_RULE (module pool SAPLV61A, program RV61AFZA)

In the standard SAP system, it is predefined which condition categories and classes can be copied or
recalculated per pricing type. You can change the predefined standard procedure for each pricing
type.

• USEREXIT_CHANGE_PRICING_RULE (module pool SAPMV61A, program MV61AFZA)

You can use this user exit to change the pricing type that has been predefined in the copying control
table in billing.

• USEREXIT_XKOMV_BEWERTEN_INIT (module pool SAPLV61A, program RV61AFZB)

This field is used in the formulas and therefore initialized before the loop for the pricing procedure
starts.

• USEREXIT_XKOMV_BEWERTEN_END (module pool SAPLV61A, program RV61AFZB)


User Exists | Lavlesh Agrawal

Within a loop for the price components during pricing, specific values can be transferred into the
communication structures in pricing to be further processed.

• USEREXIT_XKOMV_ERGAENZEN (module pool SAPLV61A, program RV61AFZB)

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

• USEREXIT_XKOMV_ERGAENZEN_MANU (module pool SAPLV61A, program RV61AFZB)

You can use this user exit to change the ready-for-input fields of the manually entered condition
record in add mode in the condition screen.

• USEREXIT_XKOMV_FUELLEN (module pool SAPLV61A, program RV61AFZB)

This user exit is always called up during a redetermination of all or individual price 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.

• USEREXIT_XKOMV_FUELLEN_O_KONP (module pool SAPLV61A, program RV61AFZB)

This user exit is always called up during a redetermination of all or individual price 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 (module pool SAPLV61A, program RV61AFZA)

You can change the KONV fields for copied price components.

User Exits For Credit Checks And Risk Management


Credit Check
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:

• LVKMPTZZ

• LVKMPFZ1: USER_CREDIT_CHECK1

• LVKMPFZ2: USER_CREDIT_CHECK2

• LVKMPFZ3: USER_CREDIT_CHECK3

User exit for availability check


User exit USEREXIT_AVAIL_CHECK_CREDIT exists in Include MV45AFZF.
User Exists | Lavlesh Agrawal

This user exit allows you to determine whether the system should or should not carry out an
availability check after a blocked document has been released or after a new credit check.

Risk Management for Receivables

• RVKMPUS2
Using this user exit, you can define new forms of payment guarantee.

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

Activities
1. Create your enhancement. To do this, either create a new project or use an existing one.
Supplement the SAP source code. SAP supplies the necessary function modules including short text,
interface, and documentation.
2. Activate the project.
Only then the ABAP source code is run and the enhancements become effective.

Further Notes
In contrast to modifications, enhancements are basically release-insensitive since they are not
implemented in the SAP original but in a name range that is reserved for the customer.
User Exists | Lavlesh Agrawal

You can find the documentation on this enhancement via the "SAP documentation" pushbutton in the
enhancement transaction.

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

Activities
1. Create your enhancement. To do this, either create a new project or use an existing one.
Supplement the SAP source code. SAP supplies the necessary function modules including short text,
interface, and documentation.
2. Activate the project.
Only then the ABAP source code is run and the enhancements become effective.

Further Notes
In contrast to modifications, enhancements are basically release-insensitive since they are not
implemented in the SAP original but in a name range that is reserved for the customer.

You can find the documentation on this enhancement via the "SAP documentation" pushbutton in the
enhancement transaction.
User Exists | Lavlesh Agrawal

You might also like