Showing results for 
Search instead for 
Did you mean: 

pricing issue

Former Member
0 Kudos

Hi SD Gurus,

I have a complex scenario in pricing and need you inputs please.

Suppose, I have 3 items in the sales order mat1, mat2, mat3.

I have material groups numbers for all mat2 and mat3 and Based on the material group numbers of the mat2 and mat3 like which is highest it should consider that mat group number and accordingly we have to write the condition table and determine the pricing for mat1.

Please through some ideas.



Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos


can u tell me what are material group numbers?



Former Member
0 Kudos

I mean material group 1, 2 3 and other fields provided in the sales view of the material master data.

Former Member
0 Kudos


You need to include those fields(material group 1, 2 3 and other fields provided in the sales view of the material master ) in an access sequence and maintain the sequence in such a way that the condition records are chosen based on the priority required by your business.

<b>Reward if this helps.</b>


Former Member
0 Kudos


The material group1 MVKE-MVGR1 is not there in the field catalog.

Even in KOMP, KOMG, KOMK structures so that I can add as a new field to field catalog.

How to add this field to field catalog as it is not in table KOMP.

Please Help,



Former Member
0 Kudos



In Pricing in SD the fields on the basis of which pricing is done are derived from the FIELD CATALOG which is a structure KOMG .This structure is used to transfer transaction data to the pricing procedure in SD and is also known as communication structure.This structure KOMG consists of two tables KOMK for Header related fields and KOMP for item related fields. The fields which are not in either of the two tables KOMK and KOMP cannot be used in pricing .Sometimes a need arises when the pricing is to be based on some other criteria which is not present in the form of fields in either of the two tables. This problem can be solved by using USEREXITS which are provided for pricing in SD. Pricing takes place both when the SALES ORDER ( Transaction VA01) is created as well as when INVOICING ( Transaction VF01) is done.Hence SAP provides 2 userexits ,one for sales order processing which is



Depending upon which table (KOMK or KOMP) the new fields were inserted we use either of the above two userexits.These userexits are found in include MV45AFZZ of the standard SAP sales order creation program SAPMV45A.

In the case of userexit which will be called when invoicing is done ,these

are provided in the include RY60AFZZ which is in the standard SAP program SAPMV45A. The name of the userexits are same. i.e



These userexits are used for passing the data from the communication structure to the pricing procedure, for this we have to fill the newely created field in the communication structure KOMG for this we fill the code in the above userexit using the MOVE statement after the data that has to be passed is taken from the database table by using the SELECT statement. The actual structure which is visible in these userexits and which is to be filled for that particular field is TKOMP or TKOMK.

Before the coding for these userexits is done ,it is necessary to create a new field in either of the two tables KOMK or KOMP .For this purpose includes are provided in each of them .

To create the field in header data(KOMK) the include provided is KOMKAZ

and to create the field in item data(KOMP) the include provided is KOMPAZ.

One possible example for the need of creating new fields can be e.g. Frieght to be based upon transportation zone ,for this no field is available in field catalog and hence it can be created in KOMK and then above userexits can be used to fill the transportation data to it.

Visit the following help link for list of user exits for sales documents:


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.


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.

Step by step procedure:

For adding field into Field catalogue:

I shall give an example. But you should first identify the field for Profit Center (Design ID) and then do as follows:

For example if you want to use field PSTYV ('Sales document item category') that is included in structure KOMP ('Pricing Communication Item') as a key for a condition table.

When you create a condition table (Transaction V/03), however, the system does not propose the field in the field catalog.


For technical reasons, field PSTYV was included in structure KOMP, however, not in structure KOMG ('Allowed Fields for Condition Structures').

To solve the problem, proceed as follows:

1. Call up the ABAP Dictionary (Transaction SE11) and create data type ZZPSTYV. Choose PSTYV as a domain.As a short text, you can use, for example, 'ZZ - sales document item category' and as a field label, you can use the field labels of PSTYV.Save, check and activate your entries.

2. Call up structure KOMPAZ in the ABAP Dictionary (Transaction SE11) in the change mode and make the following entry:

Component Component type


Save, check and activate the change you made.

3. Note:Because of the change in structure KOMPAZ, field ZZPSTYV is now known in structures KOMG and KOMP because structure KOMPAZ is included in both structures.

4. Call up Transaction SPRO. Navigate to 'Sales and Distribution -> Basic Functions -> Pricing -> Pricing Control' and execute 'Define Condition Tables'. Choose 'Conditions: Allowed fields' and include ZZPSTYV as a new entry.

5. Note:Now you can use field ZZPSTYV as a key field when you create a condition table Axxx.

6. Supply the new field you defined by including the following source code line in USEREXIT_PRICING_PREPARE_TKOMP:


In order processing you find the user exit in Include MV45AFZZ, and in billing document processing you find it in Include RV60AFZZ.

Consider that you can also use this note as a help if you want to use other customer-specific fields as key fields in a condition table.For header fields, use structure


For more information, see Transaction SPRO via the path 'Sales and Distribution -> System Modifications -> Create New Fields (Using Condition

Technique) -> New Fields for Pricing' and Note 21040.

For creating a condition Table:

1) There are almost all the regularly used Conditon Table predefined in the system from 001 to 500.

See what best you can use the Standard Tables to avoid further errors.

2) In case you should define the new condtion Table,

a) Goto TCode: V/03

b) Give a Table any number from 501-999

Press execute and reach to next screen.

c) Check up whether the field you are looking is already added in Field catalogue.

d) Double click on the fields you want to make a by one. Note that the sequence here is important in higher hierarchical to lower..

Eample : Sales Org, DC, Division, Customer and then Material etc..,

e) After selecting, click on the Techincal View buttin (redone) and reach to next screen.

7) Check which key should be in header and which key should be footer. Use check and uncheck functionalities there..

😎 Once you are through with all the above steps on generate button.

Check the Table is generated or not.

You can check it at V/04 or V/05 or in SE11.

<b>Please reward if this is helpful.</b>


Answers (1)

Answers (1)

Active Contributor
0 Kudos

Hi Sarath,

You can do this.

Have a condition table having material group as one of the fields (As it is already updated on how to include this in field catalog, i m not touching that)

Have a condition type having this c.table

Now maintain condition records for all material groups.

In the condition type, in pricing procedure, include a Alternate Calculation Type routine. Code the routine as follows.

When the value is decided for that condition type, it has to check the material groups of all the materials in the sales order and it has to take the material group of highest priority(you have to code the priority in the routine, say

IF MATERIAL GROUP4 is not there

Material Group3, else

Material group 1 and so on.


Then you can pass the material group into the structures for reading the condition tables. By this way, you can enable your reqmt.

But a practical problem here is as follows.

The material at item level will have let us say Mat Gp1 in Additional data at item level

But while fetching the condition value, it could have used Mat Gp3, which is unexplainable.

Hope you get the point. If you are ok with this, you can go ahead with ur solution.

Rwd points it this helps to solve your problem.

Former Member
0 Kudos

you can try with vofm pricing