第 1 页 / 共 10 页
SAP Note
24832 - Pricing rules (KNPRS)/TVCPA/TVCPF
Component: SD-BF-PR (Pricing), Version: 33, Released On: 20.12.2023
Symptom
Whether or not the system should redetermine conditions depends on the situation. For this,
a differentiated control is required, for example:
1. During the creation of orders or billing documents, some conditions are redetermined
even though you want to copy the conditions from the reference document.
2. However, in other transactions, you want to redetermine the conditions instead of
copying them.
3. The new 'New pricing document' function in the order document menu
redetermines all conditions, which means that it works with the pricing type 'B'.
However, you require a different pricing type instead of the pricing type 'B'.
Content overview:
A) Examples of pricing type usage
B) Different pricing types
1. 'A' (Copy price components and redetermine scales)
2. 'B' (Carry out new pricing)
3. 'C' (Copy manual pricing elements and redetermine the others)
4. 'D' (Copy pricing elements unchanged)
5. 'E' (Adopt price components and fix values)
6. 'F' (Copy pricing elements, turn value and fix)
7. 'G' (Copy pricing elements unchanged and redetermine taxes)
8. 'H' (Redetermine freight conditions)
9. 'I' (Redetermine rebate conditions)
10. 'J' (Redetermine confirmed purchase net price/value)
11. 'K' (Adopt price components and costs. Redetermine taxes)
12. 'M' (Copy pricing elements, turn value)
13. 'N' (Transfer pricing components unchanged, new cost)
14. 'O' (Redetermine variant conditions)
15. 'P' (Revaluation only)
16. 'Q' (Redetermine calculation conditions)
17. 'R' (Apply price parts and bonus conditions)
18. 'S' (Ship & Debit (IBU HiTec))
19. 'U' (Redetermine precious metal conditions)
C) Changing the default behavior
1. Introduction of new pricing types as variants of existing pricing types (examples 1 to
4)
2. Execution of new pricing in the dialog (example 5)
D) Additional information
A) Examples of pricing type usage
The following text provides some examples of the use of the pricing type (KNPRS)
implemented for this purpose:
Example 1:
You want to copy the condition type 'VPRS' (Cost) from the order to the billing document.
第 2 页 / 共 10 页
You are using the pricing type G. However, as a consequence, the value of the VPRS condition
in the billing document may differ from the value of the goods issue posting.
Example 2:
You want to copy the condition type 'PI01' (Price for intercompany billing) from the order
to the billing document. You are using the pricing type G.
Example 3:
The cost 'VPRS' is to be redetermined when a credit memo request is copied from a billing
document. This is required if you defined the credit memo item in such a way that no costs
are to be determined. Since the pricing conditions are no longer checked during copying, you
must proceed in this way to eliminate the VPRS condition.
Example 4:
Billing is to be performed using the pricing type G. However, condition types with condition
category S and T (standard cost or moving cost) are also to be redetermined in the billing
document. In the standard system, this pricing type copies those condition types from the
order.
Example 5:
When you choose the 'Edit -> New Pricing Document' function in the menu of the order
document, you require a different pricing type than pricing type B.
B) Different pricing types
The pricing type controls which condition types are redetermined and which are copied
unchanged. (However, the item is always revaluated; see also SAP Note 930870.) Below, you
will find a description of the pricing type characteristics that are used in the standard
system (for the enhancement options for customers, see SAP Note 26115).
Note that the specified standard pricing types sometimes do not exist in older releases,
or that the standard pricing type characteristic may be different in the individual
releases. Therefore, the given consulting note should not be considered to be exhaustive.
It merely serves to explain the principle of how a pricing type is structured and how its
characteristics can be influenced.
The exact characteristic of a pricing type in the release being used can be seen directly
in the source code of the form routine KONDITIONSVORSTEP in the main program SAPLV61A.
The list below provides a rough overview of the behavior of the various pricing types:
1. 'A' (Copy price components and redetermine scales):
No condition types are redetermined. Only the scale prices are adapted, due to a changed
basis.
2. 'B' (Carry out new pricing):
Completely new pricing (as if you created a new item), manual conditions are lost.
Restriction: Condition types that are not determined via the condition technique (for
example, the condition type 'VPRS' or condition types with KNTYP = 'G', which are determined
using formulas) are NOT redetermined even if they have not been changed manually.
3. 'C' (Copy manual pricing elements and redetermine the others):
Completely new pricing, manual ones are copied.
Caution: Here you have to make sure that all condition types that can potentially be changed
第 3 页 / 共 10 页
manually have T685A-KMANU = 'C' ('Manual entry has priority') in customizing. Otherwise, the
conditions may be displayed twice (automatic and manual) and both may be active.
4. 'D' (Copy pricing elements unchanged):
As in pricing type A but the prices are fixed (no scales are read). Condition basis and
condition value are redetermined.
5. 'E' (Adopt price components and fix values):
As in pricing type D but neither the condition basis nor the condition value are
redetermined.
6. 'F' (Copy pricing elements, turn value and fix):
Only used within the program.
7. 'G' (Copy pricing elements unchanged and redetermine taxes):
The following condition types are redetermined:
Condition class KOAID = 'D' (Taxes)
Condition class KOAID = 'C' (Rebate)
Condition class KOAID = 'E' (Extra Pay)
Condition class KOAID = 'G' (Tax Code)
Condition class KOAID = 'Q' (Totals record for fees (only IS-OIL))
Condition class KOAID = 'W' (Withholding tax)
Condition category KNTYP = 'I' (Intercompany billing conditions)
Condition category KNTYP = 'R' (Remuneration list conditions)
Condition category KNTYP = 'L' (Generally new when copying)
Condition category KNTYP = 'G' (Cost)
Condition category KNTYP = 'E' (Cash discount conditions)
Condition category KNTYP = 'f' (Free goods - inclusive)
Condition category KNTYP = 'b' (Transfer price for group valuation)
Condition category KNTYP = 'h' (Profit center cost)
Condition category KNTYP = 'n' (Profit center internal price (route))
All remaining condition types are dealt with like pricing type D. In particular, with
pricing type G, the system does not only redetermine the taxes but also the cost conditions
and the intercompany billing conditions.
8. 'H' (Redetermine freight conditions):
The following condition types are redetermined:
Condition category KNTYP = 'B' (Delivery costs)
Condition category KNTYP = 'F' (Freight conditions)
Condition category KNTYP = 'L' (Generally new when copying)
Condition category KNTYP = 'f' (Free goods - inclusive)
9. 'I' (Redetermine rebate conditions):
第 4 页 / 共 10 页
Rebate conditions and scales are redetermined.
10. 'J' (Redetermine confirmed purchase net price/value):
Condition types with the condition category KNTYP = 'd' (Confirmed purchase net price/value)
are redetermined.
11. 'K' (Adopt price components and costs. Redetermine taxes):
The following condition types are redetermined:
Condition class KOAID = 'D' (Taxes)
Condition class KOAID = 'C' (Rebate)
Condition class KOAID = 'E' (Extra Pay)
Condition class KOAID = 'G' (Tax Code)
Condition class KOAID = 'Q' (Totals record for fees (only IS-OIL))
Condition category KNTYP = 'R' (Remuneration list condition)
Condition category KNTYP = 'I' (Price for intercompany billing)
Condition category KNTYP = 'E' (Cash discount)
12. 'M' (Copy pricing elements, turn value):
No conditions are redetermined; the condition values are multiplied by -1 when copied.
13. 'N' (Transfer pricing components unchanged, new cost):
Condition types with condition category KNTYP = 'G' (Cost) are redetermined.
Please note that this pricing type has NO effect on the billing document since here the
goods issue value from the delivery is usually directly transferred to pricing.
Redetermination of the costs by subsequently reading the material valuation segment when
executing pricing type N would result in the goods issue value information being
irretrievably lost.
This standard behavior can be changed by a modification only. If required, please contact
your local consultant or SAP Remote Consulting.
14. 'O' (Redetermine variant conditions):
Condition types with condition category KNTYP = 'O' (Variants) are redetermined.
15. 'P' (Revaluation only):
The system does not redetermine any conditions; only the revaluation occurs.
16. 'Q' (Redetermine calculation conditions):
Condition types with condition category KNTYP = 'Q' (Costing) are redetermined.
17. 'R' (Apply price parts and bonus conditions):
The following condition types are redetermined:
Condition class KOAID = 'D' (Taxes)
Condition class KOAID = 'E' (Extra Pay)
Condition class KOAID = 'G' (Tax Code)
第 5 页 / 共 10 页
Condition class KOAID = 'Q' (Totals record for fees (only IS-OIL))
Condition category KNTYP = 'I' (Intercompany billing conditions)
Condition category KNTYP = 'R' (Remuneration list conditions)
Condition category KNTYP = 'L' (Generally new when copying)
Condition category KNTYP = 'G' (Cost)
Condition category KNTYP = 'E' (Cash discount conditions)
Condition category KNTYP = 'f' (Free goods - inclusive)
Condition category KNTYP = 'b' (Transfer price for group valuation)
Condition category KNTYP = 'h' (Profit center cost)
Condition category KNTYP = 'n' (Profit center internal price (route))
18. 'S' (Ship & Debit (IBU HiTec)):
The following condition types are redetermined:
Condition category KNTYP = 'i' (Ship & Debit 1 (IBU HiTec))
Condition category KNTYP = 'j' (Ship & Debit 2 (IBU HiTec))
19. 'U' (Redetermine precious metal conditions):
Condition types with condition category KNTYP = 'U' (Discount/surcharge for precious metals)
are redetermined.
C) Changing the default behavior
There are two ways to change the default behavior of the example cases introduced in section
A):
1. Set up a new pricing type (for example, 'X') and allocate the pricing type in the
document flow (copying control in the IMG, customizing depending on the source and
target document type via transactions VTAA, VTAF, VTLA, VTLF, and VTFF).
2. Change the pricing type used in the standard system.
For both purposes, the form routine USEREXIT_PRICING_RULE is used in the program RV61AFZA.
This routine is called after the setup of the internal table STEU, which defines the
behavior of pricing types.
Example 1:
Pricing type 'X' is to be set in such a way that the condition 'VPRS' (which has the
condition category 'G') is not redetermined during billing. Otherwise, it behaves as pricing
type 'G'.
Up to Release 4.0B, the FORM routine USEREXIT_PRICING_RULE can be implemented as follows:
FORM USEREXIT_PRICING_RULE.
STEU-KNPRS = 'X'.
STEU-KNTYP = 'LRIEfbhn..'. "KNTYP 'G' removed from string
IF KOMK-KNUMA IS INITIAL.
STEU-KOAID = 'CDEGQW....'.
ELSE.
STEU-KOAID = 'D.........'.
ENDIF.
STEU-MAUEB = ' '.
APPEND STEU.
第 6 页 / 共 10 页
ENDFORM.
To ensure that the pricing type 'X' behaves exactly like the pricing type 'G', the form
routine USEREXIT_PRICING_COPY in the program RV61AFZA should be used in releases before
4.0A. This is called when a document is created with reference to another document (the
variable MODE is the pricing type):
FORM USEREXIT_PRICING_COPY.
IF MODE CA 'X'.
IF KONV-KSTEU NA 'CEF'.
KONV-KSTEU = 'D'.
ENDIF.
ENDIF.
ENDFORM.
In this case, note that there is a special rule for the cost condition VPRS in the billing
document: If a goods issue has already been posted for the delivery note to be billed, the
value of the goods issue is copied to the condition VPRS. This is hard coded. You can
prevent this by setting the field TKOMP-WAVWR to null in the form
routine USEREXIT_PRICING_PREPARE_TKOMP in the program RV60AFZZ.
In higher releases, the pricing type 'K' is also available. This copies the VPRS of the
order to the billing document and does not redetermine it as long as there is no goods issue
posting (otherwise, the special logic described above applies).
Example 2:
The pricing type 'Y' is to be set so that it works like the pricing type 'G' but without
redetermining the intercompany billing conditions PI01 and PI02. They have condition
category 'I'.
Changes in program RV61AFZA:
FORM USEREXIT_PRICING_RULE.
STEU-KNPRS = 'Y'.
STEU-KNTYP = 'GLREfbhn..'. "KNTYP 'I' removed from string
IF KOMK-KNUMA IS INITIAL.
STEU-KOAID = 'CDEGQW....'.
ELSE.
STEU-KOAID = 'D.........'.
ENDIF.
APPEND STEU.
ENDFORM.
In order to ensure that the pricing type 'Y' acts just like the pricing type 'G', the form
routine USEREXIT_PRICING_COPY in the program RV61AFZA is to be used:
FORM USEREXIT_PRICING_COPY.
IF MODE CA 'Y'.
IF KONV-KSTEU NA 'CEF'.
KONV-KSTEU = 'D'.
ENDIF.
CLEAR: KONV-SAKN1.
ENDIF.
ENDFORM.
Example 3:
Pricing type 'Z' is to be set in the same way as pricing type 'D', but this time the costs
are to be redetermined. Up to Release 4.5B, the FORM routine USEREXIT_PRICING_RULE can be
implemented as follows (as of Release 4.6A, pricing type 'N' is available for this purpose):
第 7 页 / 共 10 页
FORM USEREXIT_PRICING_RULE.
STEU-KNPRS = 'Z'.
STEU-KNTYP = 'G.........'. "KNTYP 'G' added to string
STEU-KOAID = '..........'.
STEU-MAUEB = ' '.
APPEND STEU.
ENDFORM.
In order to ensure that the pricing type 'Z' acts just like the pricing type 'D', the form
routine USEREXIT_PRICING_COPY in the program RV61AFZA is to be used:
FORM USEREXIT_PRICING_COPY.
IF MODE CA 'Z'.
IF KONV-KSTEU NA 'CEF'.
KONV-KSTEU = 'D'.
ENDIF.
ENDIF.
ENDFORM.
Example 4:
The pricing type 'X' is to be set so that it functions like the pricing type 'G' but also
redetermines the condition categories 'S' and 'T'. To do this, the condition categories 'S'
and 'T' must be included in the variable STEU-KNTYP = 'GLRIEfbhn.'. However, this is not
possible, since only one place in the standard setting of the 10-character variable STEU-
KNTYP is empty. This means that, in this case, you must do without the redetermination of
conditions of another condition category such as conditions of the condition category 'f'
(Free goods - inclusive).
Changes in program RV61AFZA:
FORM USEREXIT_PRICING_RULE.
STEU-KNPRS = 'X'.
STEU-KNTYP = 'GLRIESTbhn'. "KNTYP 'f' removed from string, KNTYP 'S'
and KNTYP 'T' added to string
IF KOMK-KNUMA IS INITIAL.
STEU-KOAID = 'CDEGQW....'.
ELSE.
STEU-KOAID = 'D.........'.
ENDIF.
STEU-MAUEB = ' '.
APPEND STEU.
ENDFORM.
In order to ensure that the pricing type 'X' acts just like the pricing type 'G', the form
routine USEREXIT_PRICING_COPY in the program RV61AFZA is to be used:
FORM USEREXIT_PRICING_COPY.
IF MODE CA 'X'.
IF KONV-KSTEU NA 'CEF'.
KONV-KSTEU = 'D'.
ENDIF.
ENDIF.
ENDFORM.
Note: To solve customer-specific requirements that cannot be implemented using a standard
pricing type, you should define your own pricing types. However, in some cases, it might be
necessary to change existing pricing types. This is required if you want to influence the
reaction to certain field changes in the order (see SAP Note 26115 for this).
第 8 页 / 共 10 页
Example 5:
During the editing of an order document, a dialog box for the selection of the appropriate
pricing type appears when you choose the 'New Pricing' function on the item condition
screen.
However, if you choose 'Edit > New pricing document' (Ctrl+F6), no dialog box allowing the
selection of a pricing type of your choice appears. By default, this new pricing is executed
with the default pricing type 'B'. However, this preset pricing type 'B' can be overwritten
in the customizing of the relevant pricing procedure (transaction V/08) through the
maintenance of the desired pricing type for the pricing procedure in question.
D) Additional information
You can display the default behavior of the pricing types in the form routine
KONDITIONSVORSTEP (up to Release 3.1I in the include LV61AF0K, as of Release 4.0A in the
include LV61AA12). There, for each pricing type, a line exists in internal table STEU. The
fields have the following meaning:
KNPRS
This is the pricing type used.
KNTYP
This field contains a positive list of condition categories (up to 10 values can
be entered).
KOAID
This field contains a positive list of the condition classes (up to 10 values can
be entered).
MAUEB
This XFELD specifies whether manual changes should be copied.
STFKZ
This field contains a positive list of the scale indicators (up to 5 values can
be entered).
NOTYP
This field contains a negative list of the condition categories (up to 5 values
can be entered).
KDUPL
This field contains a positive list of the structure conditions (up to 3 values
can be entered).
NOKDUPL
This field contains a negative list of the structure conditions (up to 3 values
can be entered).
KFKIV
This field specifies whether intercompany billings should be redetermined ('.' or
'X' can be entered).
KVARC
This field specifies whether variant conditions should be redetermined ('.' or
'X' can be entered).
PRSQU
This field specifies whether the price source should be taken into account ('.'
or SPACE can be entered).
Note that most condition attributes (fields of the structure XKOMV) can also have the value
SPACE. To be able to use the used CA or NA statements as required for these cases in the IF
第 9 页 / 共 10 页
statements, too, you can fill the fields of the line STEU with a corresponding number of '.'
characters. These values are checked primarily in the form routine XKOMV_AUFBAUEN_PRUEFEN
(up to Release 3.1I in the include LV61AF0X, as of Release 4.0A in the include LV61AA65).
Other Terms
KNPRS, TVCPF, TVCPA
Reason and Prerequisites
Design of R/3 pricing
Solution
Note that this is a consultation note. Further inquiries about the function described
above are not processed by regular support, but by remote consulting and are subject to
separate remuneration.
This document refers to
SAP Note/KBA Component Title
992808 SD-BF-PR Pricing type 'T': Redetermine tax conditions only
547570 SD-BF-PR FAQ: VPRS (cost) in pricing
45326 SD-BF-PR No prices for customer-specific pricing type
410907 SD-SLS-GF-IF Allowed pricing types BAPISDLS-PRICING III
26115 SD-BF-PR Conditions not updated during field change
195094 SD-BIL-IV-IB Manual cross-company-code prices for intercompany billing
117347 SD-BF-PR Pricing type K modified for condition category L
114756 SD-BIL Customer hierarchy determination for pricing
102961 SD-BIL New pricing type for milestone billing plans
1009170 SD-BF-TX Date of services rendered in credit memo process
This document is referenced by
SAP Note/KBA Component Title
2280516 Price changes in PO after goods receipt and invoice receipt
2858558 SD-FIO-BIL Tax code from preliminary documents is not copied to billing documents
930870 SD-BF-PR Determination, valuation, and quantity adjustment of conditions
114756 SD-BIL Customer hierarchy determination for pricing
195094 SD-BIL-IV-IB Manual cross-company-code prices for intercompany billing
1409549 IS-A-DBM-ORD QPRS frequently asked questions
872449 SD-BF-TX Tax determination in Sales and Distribution
1009170 SD-BF-TX Date of services rendered in credit memo process
992808 SD-BF-PR Pricing type 'T': Redetermine tax conditions only
547570 SD-BF-PR FAQ: VPRS (cost) in pricing
410907 SD-SLS-GF-IF Allowed pricing types BAPISDLS-PRICING III
102961 SD-BIL New pricing type for milestone billing plans
| SAP Note/KBA | Component | Title |
|---|---|---|
| 992808 | SD-BF-PR | Pricing type 'T': Redetermine tax conditions only |
| 547570 | SD-BF-PR | FAQ: VPRS (cost) in pricing |
| 45326 | SD-BF-PR | No prices for customer-specific pricing type |
| 410907 | SD-SLS-GF-IF | Allowed pricing types BAPISDLS-PRICING III |
| 26115 | SD-BF-PR | Conditions not updated during field change |
| 195094 | SD-BIL-IV-IB | Manual cross-company-code prices for intercompany billing |
| 117347 | SD-BF-PR | Pricing type K modified for condition category L |
| 114756 | SD-BIL | Customer hierarchy determination for pricing |
| 102961 | SD-BIL | New pricing type for milestone billing plans |
| 1009170 | SD-BF-TX | Date of services rendered in credit memo process |
| SAP Note/KBA | Component | Title |
|---|---|---|
| 2280516 | Price changes in PO after goods receipt and invoice receipt | |
| 2858558 | SD-FIO-BIL | Tax code from preliminary documents is not copied to billing documents |
| 930870 | SD-BF-PR | Determination, valuation, and quantity adjustment of conditions |
| 114756 | SD-BIL | Customer hierarchy determination for pricing |
| 195094 | SD-BIL-IV-IB | Manual cross-company-code prices for intercompany billing |
| 1409549 | IS-A-DBM-ORD | QPRS frequently asked questions |
| 872449 | SD-BF-TX | Tax determination in Sales and Distribution |
| 1009170 | SD-BF-TX | Date of services rendered in credit memo process |
| 992808 | SD-BF-PR | Pricing type 'T': Redetermine tax conditions only |
| 547570 | SD-BF-PR | FAQ: VPRS (cost) in pricing |
| 410907 | SD-SLS-GF-IF | Allowed pricing types BAPISDLS-PRICING III |
| 102961 | SD-BIL | New pricing type for milestone billing plans |
第 10 页 / 共 10 页
117347 SD-BF-PR Pricing type K modified for condition category L
26115 SD-BF-PR Conditions not updated during field change
45326 SD-BF-PR No prices for customer-specific pricing type
| 117347 | SD-BF-PR | Pricing type K modified for condition category L |
| 26115 | SD-BF-PR | Conditions not updated during field change |
| 45326 | SD-BF-PR | No prices for customer-specific pricing type |