24832_E_20240105 pricing rules - copy control

第 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
返回FICO参考资料列表