Vous êtes sur la page 1sur 32

SD Questions About Pricing Condition

The Most Important Tips in Pricing For SAP SD Module to crack interviews...
Whenever we define our pricing procedures, we remain least interested in creatin
g our own Condition Types,Condition
Tables & Access Sequences. What we do is, we just define our own pricing proced
ures by using the existing condition types
(i.e: PR00, K004, K007, KA02, KF00 etc.) & then assign that Pricing Procedure w
ith " Sales Area, Document Pricing Procedure & Customer Pricing Procedure " .
After that we put the values against each Condition Types, mentioned in our Pric
ing Procedure by using the T-Code "VK11".
But we also need to know about the Condition Tables, Condition Types & Access S
equence Creation. So for that purpose we have to use the following T-Codes respe
ctively : "V/05", "V/06" & "V/07". Now it will become easy to create the same.
Also to inform that, using T-Codes is more smarter than following paths through
IMG screen.
Utsav Mukherjee - utsavmukherjee143@hotmail.
What is the difference of VK11 and VK31 (condition records)?
My condition type is PR00 and Access sequence is PR02. And in this access seque
nce table 304 is available.
Now when I was entering the PR00 in VK31 it shows error Table 304 is not defini
ng for the condition type PR02.
But when I was entering the PR00 at VK11 it is accepting it.
Difference between VK11 and VK31 - if you go through the menu path you will get
the vk 31 as condition record from the tamplets whereas vk11 as simple condition
record. In VK11 you can store condition record for more than one condition typ
e.
This means you can have same condition record for different condition types.
This feature is given to enhance the system's performane and not to create the d
uplcation of the work for each condition type.
Again system is not allowing to store the record in the vk31 for the condition t
ype pr00 and access sequence pr02.
This is because if you see this ac seq cointains two accessses 20 and 30 having
the same table no.
But you see there is the difference between the technical view of it for transfe
ring the data from document field and condition field,
so you can not maintain the data at VK31.
What is the difference between Header condition and Item condition? I know item
condition applies to each item in a sales document.
Header condition can only be applied to an entire document.
Difference between header and item condition - as YOU CORRECTLY SAID HEADER COND
ITION IS APPLICABLE FOR THE WHOLE DOCUMENT where as item is for item.
Ex-Say fright is dependent on the total weight of all the items in the documents
then header condition adds on weights of all items and
calculates the record accordingly.
You have two different types of the header conditions.
a) In one you can duplicate the same value throughout the document for each item
.Say discount 2% at header level which is also applicable to all the items
b)Second is the accumulation of the values of all the item at the header level,a
s earlier explained for the weight/fright.

These differenes are controlled through the indicator of group condition in the
cond.type configuration.
And so obviously header condition can not have the condition record and hence ac
cess sequence.
SAP SD Tips by : Vishwajit
Disallowing Condition Types - How I can accomplish the following:
Be able to DISALLOW Z0BP Condition type to be negative ( Invoice Block)
You can modify condition type from customising;
Sales and Distribution->Basic Functions->Pricing->Pricing Control->Define Condit
ion Types->Maintain Condition Types
Change condition type ZOBP's plus/minus indicator to "A" which means only positi
ve is allowed. *-- Arvind Rana
In pricing procedure there are column such as requirement, sub total altclty, al
tbv, accurals.
What are these and where we calculate all these values which we put.
1. Requirement: Denoted by nos and maintained in VOFM, this is a condition requi
red for a particular condition type to be executed.
Eg. PR00: req 2 ie item relevant for pricing
VPRS/EKO1: req 4 ie cost
Rebate BAO1 Req 24/Req 25 etc
2. Subtotal: this represents where a which table a value is stored, which can be
processed for further calculation.
Eg. for PR00, if this value is to be used for credt check of a customer, we mark
the subtotal as A.
3 Alternate Calculation type: this is also denoted by numbers and maintained in
VOFM. Eg. Suppose for 45 units , each unit is charged $100 per unit,
the order value comes out to be $4500, that is calculation is done as per unit
price, if the client wants calculation type to be based on volume or wieght,
alternate calculation type can be configured.
4. Alternate base value: Denoted by no. and maintained in VOFM.
Eg, if the pricing scale is maintained and pricing for 45 units comes under the
scale of $100 per unit.,
the base value is 45 units, but if the client wants a standard base value in som
e casesto be assumed inspite of maintaining the scale,
an alternate base value is confihured, that is the base value based on which th
e order value is to be calculated changes.
5. Accruals: Accruals are maintained for rebate agreements, it constitutes the t
otal accumulated value which customer has earned through rebate,
one the rebate for certain amount is settled the amount from the accruals get d
educted.

Difference between Condition Type


Please explain the difference between Ek01 ( Actual Cost) and EK02 Calculated Co
st.
These are the condition type that will display the results of the unit costing f
or certain type of sales document.
EK01 :
If you use this condition type, the result of unit costing is issued to the firs
t position on the conditions screen for the item.
The value can be used as a basis for price determination.
EK02:
If you use this condition type, the result of unit costing is simply a statistic
al value which you can compare with the price.
Please note the following points :
1) The condition type must have condition category 'Q' (costing).
2) The condition type must agree with the condition type defined for unit costin
g in the pricing procedure.
I have a customer who is being offered two discounts ie k007 and k005, now I wan
t to exclude k007 for the next 2
orders or so? I have set the exclusion indicator for the condition type,but stil
l the condition is being accepted when I create a sales order.
Am I missing something, how do I do it?
I think u need to change the validity of the condition record for the condition
type K007 defining it not valid for that particular 2 months.
And also the settings of the Requirements as it is correct that it overrules th
e exclusion.
2
Accumulate the amount of condition types in accounting document
To accumulate the amount of condition types in accounting document without affec
ting the pricing display in billing document.
As an illustration :ZPXX 3500
ZDXX 1000ZWXX 500(all condition types are shown separately in pricing view)
Journal:
Dr Vendor 2000
Cr Sales
2000 (ZPXX - ZDXX - ZWXX)
One way to do it is :Mark the condition types you want to group as statistical and remove the account
assignment key.
Create a subtotal in your pricing procedure that will add them together and put
in the account assignment key for it.

This way the individual components will still display on your pricing screen bu
t FI will only get one posting.
3
Home -> SAP Sales and Distribution ->
Creating New Pricing Procedure
What is the transaction code for creating new pricing procedure and how to attac
h it to specific plant?
You create PP in SPRO > Sales and Distribution > Basic Functions > Pricing > Pri
cing Control > Define and Assign Pricing Procedures > Maintain Pricing Procedure
s
You can't attach PP to specific plant. Pricing Procedure is determined thru trx
OVKK.
The defining parameters for pricing procedure determination are:
1.
2.
3.
4.
5.

SalesOrg
Distribution Channel
Division
Document Procedure (defined in Sales doc \ Billing doc maintenance)
Pricing procedure assigned to customer (defined in customer master)

Regarding pricing procedure steps.


1. Use transaction code V/07 to create an access sequence and assign tables base
d on which you want to carry on
pricing as accesses.
2. Use transaction code V/06 to define condition type. It can be for base price,
discount, freight etc.,
(Do assign relevant access sequence)
3. Use transaction code V/08 to define pricing procedure.
4. Assign this to your relevant sales area+ dpp+cupp.
While specifying requirement, we can give reqt no.22 which specifies that plant
has to be set.
This is generally done for output taxes since output taxes depend upon the del
ivering plant.
But directly there is no assignment between plant and pricing procedure.

4
What is "alt cal type" & "alt base value" & "Requirement field" in the Pricing P
rocedure
Can any one explain exactly what is "alt cal type" & "alt base value" and also "
Requirement field" in the pricing procedure?
The alternate base value is used as the calculation basis only, while the altern

ate calculation is used to modify the final value.


For example, imagine you have a condition type ZZ01, with a condition record mai
ntained (master data) for $100.
Now, condition ZZ02 also exists lower in the schema, but with a rate of 10%. T
he standard calculation would result in a final value of $110.
The alternate base value could say, "don't use $100 as the basis -- use the orig
inal price PR00 only, which was $90." Then,
the final value would be $100 + (10% of $90) = $109.
The alternate calculation routine says, "ignore the 10% altogether. Instead, use
an externally calculated 20%." Then,
you end up with a final value of $100 + (20% of $100) = $120.
Put them both together, and you could end up with $100 + (20% of $90) = $118.
Now once again,
Alternative Calculation Type:
Normally if you want to calculate a value you have to use a calculation type for
determinating the value. This calculation type is either addition, subtraction
or multiplication. Similarly SAP also has got a default calculation type in the
control data of the condition type. There you have the options of either Qty bas
ed , Fixed Amount Based or Percentage based.
Here what happens is suppose if you define Your condition type that calculates t
he base price of a material on Qty based. Then the calculation will be done base
d on the quantity of the material. If the customer orders 10 Nos and you have ma
intained a unit price of 100 Rs for each material then the value determined is 1
000 INR. Similarly if the discount condition type , you maintain the calculation
type as %. This means if you maintain the value of 10 % in the condition recor
d. Then this percentage is taken as the calculation type and the condition valu
e is determined.
In some cases you have to forego the default calculation types and use the custo
mer specific method for calculating a value. For ex if you are calculating the F
reight charges for a Material . it depends on so many criteria like, the weight,
volume and also the minimum amount etc etc, in those cases, you forego the def
ault value and then use the alternative calculation type in calculating the cond
ition value against the particular condition.
Alternative Condition Base value :
If you have to calculate any value then you have to have a base value for it. Fo
r ex if you want to calculate the discount of 10 % for a material then you have
to have a base value on which this 10% is calculated. Normally you take the co
ndition value of the base price of the material to calculate the value.
Now you don't want to take the base value and take other values as base value wh
ich are derived on some formulae. So you create a routine which will do the math
ematical operations in the routine and derive you a value which is now used as t
he base value for calculating the condition value for a particular condition typ
e.
Requirement:
A factor in the condition technique that restricts access to a condition table.
The system only accesses a condition table to determine the price if the requi
rement specified has been met.

Example:
The system uses an access sequence to determine the price of a material. One of
the accesses in the sequence contains the requirement "in foreign currency." The
system only uses the table

5
Re-pricing in a Quotation
How can I, or am I able to find anything on a way of RE-Pricing be done in a QUO
TATION?
You can always 'Update" pricing manually in a quotation the same way you do in a
sales order, either in create or change modes.
Menu path Edit --> New Pricing or press the 'Update pricing' button on the item
conditions tab.
If you are asking how to reprice a quotation when it converts into a sales order
, that can be done with the copy controls of the Item Category.
IMG: Sales & Dist --> Sales --> --> Maintain Copy Control for Sales Docs --> Sa
les Doc to Sales Doc (transaction vtaa). Just choose the combination of document
s
and the respective item category. The field you need to be concerned with is "P
ricing type".
However, from a business process perspective it makes absolutely NO sense to rep
rice a quotation when converting to a sales order.
After all, the entire point of using quotations is to firm up details like pric
ing before creating the sales order.

6
SAP Certification, Functional, Basis Administration and ABAP Programming Referen
ce Books
Quantity Based Discounts in Bulk Quantities Sales
You're looking to implement quantity based discounts in 4.6c. You are trying to
sell items in specific bulk quantities, and only give the discount for specific
quantity intervals.
For example, if a customer orders 1 piece, 2 pieces, 3, etc. of part ABC, the pr
ice is $100.
If the customer orders 10 pieces of part ABC, the price is $50.
However, this is not only a standard minimum quantity discount. If the customer
tries to order 11 pieces, 12, 13, etc. it should return $100 again.
The only values for which $50 should apply are 10, 20, 30, etc. - multiples of t
he bulk quantity 10.
You have discussed changing your part number to reflect a bulk qty of 10, howeve
r you have in house consumption that is allowed to consume only 1 part at a time
. You would vastly prefer to keep one part number that you order from the suppli

er, consume internally and ship externally.


You are fairly certain there is basic functionality that covers this, but you're
just not sure where to start.
Taking your requirements literally. Standard SAP scale pricing will not do it in
that you only want the reduced price to come into effect when the order quantit
y is multiple of some bulk factor.
It is agreed with that creating a separate material number is not a good idea.
You can try this :1. Define/Select a UOM for selling in bulk (i.e. cas, pallet, box whatever)
2. Maintain UOM conversion between your base UOM and this new UOM
3. Configure you bulk pricing condition type by usual means (it should be a base
price rather than discount).
4. Place this new bulk price behind your normal "PR00" price in the pricing proc
edure
5. Create a new condition base value routine via VOFM where you check XKWERT to
see if it is a whole number. If it is not then set XKWERT to zero.
6. Assign this new routine to your bulk price condition in your pricing procedur
e in ALT condition base value column.
7. Maintain bulk price conditon record in the Bulk UOM.
That should do it.

Determine Sales Price with Shipping Point


You are trying to use shipping point as a key field (with sales org. distributio
n channel and ship-to party together) to determine the sales price.
You created a condition table with the above key fields, and maintained the re
levant setting (access sequence, condition type and pricing procedure).
There is an error message in the sales order pricing analysis ("access not made"
in the shipping point field).
In the access sequence, you found that the shipping point field's document struc
ture is KOMK.
Can you put to item level field in the condition table and access sequence?
Structure KOMK refers to header of the sales order, but shipping point of course
is on item level.
You'll have to do some settings to reach your goal, it is possible.
Step 1
Append structure KOMP. Do this by changing through SE11 the table KOMPAZ.
This is the include for structure KOMP.
Add a component e.g. ZZVSTEL with component type VSTEL.
Save, activate.
If you want to make more points, assign search help H_TVST to the component.
Ask a programmer if you don't understand this part.
Step 2
Change user exit MV45AFZZ. Say there that field ZVSTEL should be filled with inf
ormation from your shipping point.
Do this under part FORM USEREXIT_PRICING_PREPARE_TKOMP.

The coding should be like tkomp-zzvstel = vbap-vstel.


Save, generate.
Step 3
Make a new table as you did before, but first maintain your new field in Conditi
on: allowed fields.
When you create your new table you will see you have two shipping points.
With the button technical view you can check which one ZZVSTEL or VSTEL.
Step 4
Finish with the steps you did before. That was ok.
Now, you will see in your sales order that the shipping point is filled with inf
ormation.

7
Pricing date based on delivery date
Used transaction VOV8.
This configuration is by order type.
There is a field called proposal for pricing date.
There you can select pricing date as requested delivery date.
A - Proposed pricing date based on the requested dlv.date (Header)
This control is set at the document level as oppose to the condition type level
(PR00).
That means your other condition types such as surcharges and discounts are also
determined using the requested delivery date.
If your requirement is for PR00 to alone to be priced at delivery date then this
will not work.
How pricing date is determine in the sales order and billing document? Where is
the setting?
The pricing date is proposed based on the setting you make in the Sales document
configuration. ( T code : VOV8)
You have a field" Prop.f.pricing date " in the Requested delivery date / pricin
g date / purchase order date segment.
Then you can choose the follwoing options:
Blank - Indicates the current date as the pricing date
A - Indicates the date based on the requested delivery date
B - Indicates the date based on the order validity start from date
And the pricing in the billing document is copied from thte sales order / Delive
ry document..
It again depends on the setting u have in the copy control from order - billng o
r delivery - billing.
In the copy control, in the item settings you have two fields relavant for this.

One is pricing source and the other is pricing type.


The pricing sources are generally the order. But if you want you can change it
to other values mentioned in the drop down,
but this values have no effect if the pricing type is B.
Any other value other than B in the pricing type will take the reference documen
t price mentioned in the pricing source field.
but for the pricing type B. The new price is determined in the billing order.
8
Report to Check the Entered Pricing Condition Price
Which is the best transaction code to check the Pricing condition price entered
in "VK11"?
Other than "VK13", to display the price, you can use V/LD - Execute Pricing Repo
rt to check the prices entered into the Pricing Master.
Normally Pricing Report - "07 Cust.-specific Prices with Scale Display" will do.
Other Pricing Reports you can tried are these:
--------------------------------------------------------------------------|LR|Report title
|
-- -----------------------------------------------------------------------|01|Comparison of Price Lists Without Scale Display
|
|02|Comparison of Price Groups Without Scale Display
|
|03|Incoterms with Scale Display
|
|04|Incoterms Without Scale Display
|
|05|Price List Types Without Scale Display
|
|06|Price List Types with Scale Display
|
|07|Cust.-specific Prices with Scale Display
|
|08|Cust.-specific Prices W/out Scale Display
|
|09|Material List/Material Pricing Group with Scale Display
|
|10|List Mat./Mat.Pricing Groups Without Scale Display
|
|11|Price Groups With Scale Display
|
|14|Taxes
|
|15|Material Price
|
|16|Individual Prices
|
|17|Discounts and Surcharges by Customer
|
|18|Discounts and Surcharges by Material
|
|19|Discounts and Surcharges by Price Group
|
|20|Discounts and Surcharges by Material Group
|
|21|Discounts and Surcharges by Customer/Material
|
|22|Discounts and Surcharges by Customer/Material Group
|
|23|Discounts and Surcharges by Price Group/Material
|
|24|Discounts and Surcharges by Price Group/Material Group
|
|25|VAT/ATX1
|
|26|Canada/USA
|
|27|I.E.P.S Mexico
|
|28|Conditions by Customer
|
|30|Conditions by Customer Hierarchy
|
|31|Price List with Release Status
|
|AC|
|
|AD|
|
--------------------------------------------------------------------------Fast Links:

9
SAP Functional, Basis and ABAP Programming Reference Books
Mass Update of condition pricing
You can update the condition pricing for a range of sales order.
For e.g. if you create sales order for 15 months or so, and at the beginning of
each year, you have to update the prices for lots of sales orders.
Other than using VA02 and make an Update of the conditions at item level which i
s a big work because you will have lots of open sales order after so many months
.
Use VA05, select your Orders and on the result screen :click Edit- > Mass Change -> New Pricing (menu).
or
if you don't want to do that Online, write your own abap report and use Function
SD_BULK_CHANGE
(check where-Used at SE37, Trace VA05 on how to fill the parameters, Function
MPRF => New Pricing)
10
SAP Functional, Basis and ABAP Programming Reference Books
Make Material Master Price of a material as sales price automatically
The first method is not to set the pricing condition VPRS as statistical.
Simply remove PR00 and it will work fine if you always use VPRS as your pricing
base inside the pricing procedure.
VPRS will reads both prices based on the price control in the material master.
Price control S for standard price.
Price control V for moving average price.
It is this simple if you do not have any other "Prices" in the price procedure.

However, if you are using one pricing procedure where for some items you price u
sing VPRS and some others using PR00, then you should use requirement routines t
o enable the correct price condition type at the right time.
The second method involves more work as you need to write a formula (VOFM) to ge
t that information.
This is how it goes :1. Set VPRS to be the first step in the pricing procedure and to be subtotal B (
as standard).

2. Set PR00 with alt. calc. type formula, which sets the value of PR00 to be equ
al to the subtotal B.
The routine (created with transaction VOFM) is:
RV64A901
FORM FRM_KONDI_WERT_600.
XKWERT = KOMP-WAVWR.
ENDFORM.
The pricing procedure than looks like that:
Step 1 VPRS statistical, subtotal B, reqt 4
Step 2 PR00 Altcty 600
12
SAP Functional, Basis and ABAP Programming Reference Books
Customer discounts on effort only
-----Original Message----Subject: Customer discounts on effort only
Hi All,
We have a requirement of giving a discount to customer based on the total
amount invoiced so far (across financial years).
Where do we set this up? We have seen so far the discounts are calculated
based on the value of the current invoice.
The discount should be on a graduated scale basis for example
0 - 100000 No discount
100000 - 200000 5%
200000 - and above 10%
This means that discount would only start after the customer's net sale
value crosses 100000.
For example, if the customer has been billed for 99000 and the current
invoice is for 3000, a discount of 5% should be given on 2000 i.e. 100.
Another complication is that, the discount is not based on the total amount
billed so far, but only on the effort billed and not on reimbursements (like
airfares, living expenses, visa charges, beeper charges etc). The discount
applies only to the effort and not to the reimbursements. In the above
example (invoice of 3000) say the effort billed is only 1500, the rest being
reimbursements. The discount is only on the 500. (the rest being taken up by
the lower limit for eligibility of 100000)
For example the customer might have been billed say 150000 so far but actual
effort billed might be only 90000, the rest being reimbursements of actual
costs and hence the customer is not eligible for the discount.
Kindly help,
-----Reply Message----Subject: RE: Customer discounts on effort only
Hi,
The solution for this is Using rebate condition types and suitable condition
records.
Of this to handle your first problem that is the rebate has to be applied

only on the "effort" you have to set up a line in the pricing procedure
which gives the rebate basis i.e the value to be used for rebate cond types.
This I believe solves your problem of rebate only on effort.
Your second problem i.e the discount should start getting applied
automatically when it reaches the first scale for which the values span few
financial years. This I am not really sure whether it can be made possible
in the invoice itself. But a work around is not giving the discount directly
in the invoice but settling it against the rebate agreements by Credit notes
periodically.
Hope it helps.
Thanks
-----Reply Message----Subject: RE: Customer discounts on effort only
Hi
Arent we looking at rebate agreeement. That appears to be a straightaway
solution to your problem. You activate the sales organization and the
payer for that
Regards
-----Reply Message----Subject: RE: Customer discounts on effort only
I am in SAP R/3 rel.30F.
We have 2 options to meet your requirement.
1. Using scale in condition type ( tcode V/06 ), choose scale basis
G.Scale based on a formula ( be: your based amount is invoice ). Define
scale formula. You need ABAPER to define it.
2. Using routine in Alt.calc.type ( tcode V/08 , Maintain Pricing
Procedure ). Here, you also need ABAPER to create routine.
hope this help
-----End of Message----Best regards,
SAP Basis, ABAP Programming and Other IMG Stuff
http://www.erpgreat.com

Steps to Create Commission for Agent


For creating commission agent, you have to follow below steps.
1) Establish Partner Functions for the Commissionee(s)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA
2) Assign the Partner Functions to Partner Procedures
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS

Transaction Code: VOPA


3) Create a Partner Procedure for the Commissionees
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA
4) Create New Customer Account Group(s) for Commission Agents
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; LOGISTICS GENERAL ->;
LOGISTICS BASIC DATA: BUSINESS PARTNERS ->; CUSTOMERS ->; CONTROL ->; DEFINE AC
COUNT GROUPS AND FIELD SELECTION FOR CUSTOMER
Transaction Code: OVT0
5) Assign the Partner Functions to the Customer Account Group(s)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS ->;
GOTO ->; PARTNER FUNCTIONS ->; ENVIRONMENT ->; ACCOUNT GROUP ASSIGNMENT
Transaction Code: VOPA
6) Assign the Partner Functions to the Partner Procedure for the Sales Document
Header
Menu Path: Tools ->; Business Engineer ->; Customizing ->; Sales and Distributio
n ->; Basic Functions ->; Partner Determination ->; Define Partner Functions
Transaction Code: VOPA
7) Assign the Partner Functions to the Partner Procedure for the Sales Document
Item (OPTIONAL)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA
8) Edit the Pricing Communication Structure (KOMKAZ) to Hold the New Functions (
Client Independent)
Menu Path: Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; DICTIONARY
Transaction Code: SE11
9) Edit MV45AFZZ
userexit_pricing_prepare_tkomk (Client Independent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38
10) Edit RV60AFZZ - userexit_pricing_prepare_tkomk (Client Independent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38
11) Edit MV45AFZB - userexit_new_pricing_vbkd changing new_pricing (Client Indep
endent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38
The following code should be inserted into program MV45AFZZ to allow the system
to re-execute pricing if the user makes a change to the relevant partner functio
n (alteration, addition, deletion).
13) Add the KOMKAZ Fields to the Pricing Field Catalog (Client Independent)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCE
S ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: OV24
14) Create Condition Tables (Client Independent)

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCE
S ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: V/03
15) Create an access sequence containing the new tables (Client Independent)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCE
S ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: V/07
16) Create a new condition type
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE CONDITION TYPES
->; MAINTAIN CONDITION TYPES
Transaction Code: V/06
17) Add the Condition Type to the Pricing Procedure
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTIO
N ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE AND ASSIGN PRIC
ING PROCEDURES ->; MAINTAIN PRICING PROCEDURES
Transaction Code: V/08
11) Create Commsission Report ZZCOMMISSION (Client Independent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38

13
Add a Field To New Condition Table in Pricing
Add a field to a new condition table in Pricing (Condition Technique):I will explain you the process with below example...Please follow steps in below
sequenceTry to add the filed from the field catalog. In case the required combination f
ield is not there, you can add the field through the following process to filed
catalog and create the condition table. It is most common that one or other ti
me we need to use this function while configuring multi tasking & complex Pricin
g Architecture.
Here I'm giving a simple guide to add fields to the Pricing Field Catalogues:
For example you want to use field PSTYV ('Sales document item category') that is
included in structure KOMP ('Pricing Communication Item') as a key for a condit
ion table.
When you create a condition table (Transaction V/03), however, the system does n
ot propose the field in the field catalog.
Condition access, field catalog, allowed fields, KOMG, KOMK, KOMP, KOMPAZ, KOMKA
Z, PSTYV are the other terms which we need to know about, to add Fields.
Reason and Prerequisites:
For technical reasons, field PSTYV was included in structure KOMP, however, not
in structure KOMG ('Allowed Fields for Condition Structures').

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 PS
TYV.Save, check and activate your entries.
2. Call up structure KOMPAZ in the ABAP Dictionary (Transaction SE11) in the cha
nge mode and make the following entry:
Component Component type:
ZZPSTYV ZZPSTYV
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 structure
s.
4. Call up Transaction SPRO. Navigate to 'Sales and Distribution -> Basic Functi
ons -> 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:
MOVE xxxx-PSTYV TO TKOMP-ZZPSTYV.
In order processing you find the user exit in Include MV45AFZZ, and in billing d
ocument processing you find it in Include RV60AFZZ.
Consider that you can also use this note as a help if you want to use other cust
omer-specific fields as key fields in a condition table.
For header fields, use structure KOMKAZ instead of structure KOMPAZ and
USEREXIT_PRICING_PREPARE_TKOMK instead of
USEREXIT_PRICING_PREPARE_TKOMP.
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 OSS Note 21040.
*-- Manoj Mahajan

14

Header Condition and Group Condition


What are header conditions?
Header conditions are those which appear in the header level of any sales order.
these conditions are to be entered manually and get distributed automatically a
nd the basis for distribution are taken from the NET VALUE of items mentioned at
item level.
When we go to the conditions section in a sales order, where the details of pric
ing is mentioned, here we add these conditions.
Whenever any Header Condition is used, it overrides the PR00 condition type.

Examples of header condition.


- HA00 - % Based Header Condition.
- RB00 - Absolute or numeric value which applies to all items.
- HB00 - Numeric value or Absolute value.
kshi

*-- Vivek Cho

What is the difference between group condition and header condition?


Group Condition: You can use this is feature of a condition type to apply price
or discount for a material based on common property.
Header Condition: This is a manual condition which you apply to header (Conditio
n screen) of a sales document. This amount is applicable to all items.
Usage of this feature is to apply price / discount for a specific group of mater
ials.
1. You maintained a discount based condition record fbased on material group ( =
01 for example). You maintained scales also.
Qty
Discount
1 - 10 Rs. 100.00
11 - 50 Rs. 105.00
51 - 150 Rs. 110.00 etc.
2. You are creating a sales order for a customer with five different items with
different quantities as below
ITEM
ITEM
ITEM
ITEM
ITEM

1
2
3
4
5

25 No's
3 No's
12 No's
27 No's
62 No's

All the material is having the material group = 01.


3. While calculating the discount, because of this group condition, system add t
he quantities of items which have material group = 01. In the above example tota
l quantity is = 109. System apply a discount of Rs. 110.00 to each item irrespec
tive of the individual quantities.
4. If you have not activated the group condition feature, system determines the
discount value based on individual item quantity which is as below.
Discount
ITEM 1 - 25 No's
Rs. 105.00
ITEM 2 - 3 No's
Rs. 100.00
ITEM 3 - 12 No's
Rs. 105.00
ITEM 4 - 27 No's
Rs. 105.00
ITEM 5 - 62 No's
Rs. 115.00
5. Is it clear now. Just try a sales order and see the out come
Procedure to Test:
1. Create 3 materials. Maintain Material Group of each item is same.
2. Activate the condition type as a group condition.
3. Create a condition record for this condition type with scales.
4. Process a sales order for a customer with these three material with different

quantities.
5. Check the outcome.

*-- Tsr

16
What are the 8 steps involved in condition technique?
By: Rohit Joshi
It starts with an understanding of the factors that influences the Price. Lets s
ay it depends on Customer and Material. With this understanding now we will star
t with the Table where we will pass the above parameters. There is a table 5 whi
ch already has Customer and Material so we can now copy and rename it or use the
same table in our Pricing Procedure.
T Code VOK0
Step 1. Define/Choose your Table (with the requirement parameters that influence
the price)
Step 2. Define your Access Sequence and include the above Table in your Access S
equence
Step 3. Define your Condition Type (There are four Price Types Basic Price, Disc
ount, Freight and Tax) and include your Access Seq. Its always better to copy th
e Price Types provided by SAP.
Step 4. Now comes your Pricing Procedure where you include include Condition Typ
es and format.
Step 5. Now comes Procedure Determination where you specify the Document Pricing
Procedure and Customer Pricing Procedure along with Sales Organisation, Distrib
ution Channel.
Step 6. Maintain Condition Records for your Condition Types
I guess you can make it 8 Steps by dividing some of the main steps. Few importan
t things to note is following..
1. XD01 - Create Customer - Always ensure that you pick the right Customer Prici
ng Procedure from here.
2. VA01 - Sales Order - Ensure that you have the right Document Pricing Procedur
e from here
3. While Creating Access Sequence, check your Fields and ensure that they appear
with any warning (Highlighted in Red)
4. Do not forget to mention your Access Sequence while defining your Condition T
ype
5. Always remember that your Procedure Determination has only Basic Price as Con
dition Type
6. Do not forget to mention the Range (From To) while creating your Pricing Proc
edure.
I made most of the mistakes that appear above. Hope it helps.
17
Sales Order Freight Condition In Header Condition
ERP SAP ==> SD SAP

Common questions:
We are using the Freight in Header Condition. I maintained two line items in the
Sales Order. So the Header freight is splitting irregularly for two line items
(in item conditions) . How it is happening? Any formula is there?
Header Conditions - Automatic pricing does not take header conditions into accou
nt; you can not create condition records for them in the standard system.
Header conditions are entered manually in order processing. R/3 includes the fol
lowing header conditions:
- Percent discount (HA00)
- Absolute discount (HB00)
- Freight (HD00)
- Order value (HM00)
Header Condition: If this condition is marked as a header condition, it is possi
ble to enter the condition type in the header condition screen. Checks for chang
ing the condition manually are unaffected by this.
Group Condition: Group conditions are helpfull incase of discounts. If group con
dition is selected then the discount percentage or quantity is applicable for th
e total sum of the quantity in the PO for those materials belonging to the same
material group. Suppose if two materials of same matl grp have discounts for 10
0 qty and above but in PO if the two matls are bieng procured for 50 qty then th
ey cant avail discounts but if group condition is selected then the sum of the q
uantity of both matl of same matl group is considered (50 + 50) and discount can
be availed for 100 qty.
Further Group condition: Indicates whether the system calculates the basis for t
he scale value from more than one item in the document.
The nature of header condition is that whatever value you are giving in sale ord
er / billing, line item wise, it will be distributed proportionately.
If you access V/06 and the header condition type, you can see that the condition
type
- does not have any access sequence
- field Group condition is selected
Normally Freight Header condition like condition type "HD00" is calculated on th
e basis of weight. This is a Manual condition and you have to enter it in the he
ader screen. It will be proportionately distributed on each item on the basis o
f weight. If you will uncheck the group condition field, the same freight amoun
t will be copied to each item, possibly irrespective of different weight which m
ay not be logical.
That is the standard behaviour of the header condition type.
Based on whether the group condition field is ticked on or off, it will either s
plit the header condition value to the items on pro-rata basis or it will just d
uplicate the header value to all the items.
What you are experiencing with Fixed Amount Header conditions is standard behavi
our. Please see below Notes:
- 876617 FAQ: Header conditions / Header condition screen
- 317112 Behavior of conditions w/ calculation rule B changed
- 485740 Conditions with fixed amount in copy activities
To achieve what you wish (absolute amount), solution is in the below Notes:
- 84605 Transfer absolute amount condition to billing doc.

- 25020 Value changes during over/underdelivery


- 25144 Freight conditions during milestone billing

How To Use Condition Exclusion Type In SO

What is meant by condition exclusion for Condition types and records?


Condition Exclusion
The system can exclude conditions so that they are not taken into account during
pricing in sales documents.
Material 4711 costs 150 USD. Some customers receive a discount of 10 USD per 100
pieces.
However, a specific customer can buy the material for 100 USD. Since this is a p
articularly good price, the customer should not also have a discount of 10 USD p
er 100 pieces. Therefore, this discount is to be excluded from pricing.
To do this, you must follow two steps:
You must set a condition exclusion indicator for the price. You can do this in t
wo ways: If you want to set the condition exclusion indicator a follows then you
specify it:
- for all condition records of a condition type (e.g. with condition type PR00)
when defining a condition type in SD Customizing
- for an individual condition record (e.g. only for material 4711) in the detail
screen of a condition record (in the Condition exclusion field)
You must set a condition for the discount in the pricing procedure in Customizin
g for sales. If this condition is set, the discount is not valid if the conditio
n exclusion indicator is set. Condition 2 is available in the standard R/3 Syste
m.
The condition exclusion indicator is not valid for condition supplements.
This means that if a condition record contains condition supplements they will b
e taken into account during pricing.
Condition Exclusion Group
In any normal situation there could be more than one condition type in a pricing
procedure offering a discount to a customer.
Should the discounts be automatically determined, there is the risk that the cu
stomer will receive all the relevant discounts and
thus purchase the product for a lower price than he should.
By using condition exclusion groups you can ensure that the customer does not rece
ive all the discounts,
but instead only receives the best of the available discount condition types.
Menu path IMG - Sales & Distribution - Basic functions
on condition exclusion for groups of conditions (OV31).

pricing

condition exclusi

A condition exclusion group is merely a grouping of condition types that are com
pared to each other during pricing and result in the exclusion of particular con
dition
types within a group or entire groups. It is important to note that the conditi
on types you want the system to compare must exist in the pricing procedure
and must have valid condition records created for them.
If for example, a sales order is created using the pricing procedure that the ex
clusion group is assigned to,
you can see that the condition offering the most favorable discount to the cust
omer is represented in the pricing procedure.
For instance, condition type K007 has offered a discount of 10% off the sale pri
ce or a real value of $30,
while another condition type K005 has offered a real value discount of $10. The
system then takes the best discount for the customer between the two,
which is K007 and makes the other discount K005 inactive. This can be seen by d
ouble clicking on the condition type K005,
where you can find a entry saying Inactive A condition exclusion item .
There are four possible methods of using condition exclusion groups
A

best condition between the condition types

best condition within the condition types

best condition between the two exclusion groups

exclusive

least favorable within the condition type

least favorable within the two exclusion groups

Configuring

Condition Exclusion Groups

First step is to define a


a numeric key.

condition exclusion group

by using a four character alph

Next step is to assign the relevant condition types to the exclusion groups such
as discount condition types, freight condition types.
After completing the assignment of the condition types to the exclusion group, p
roceed with assigning the condition exclusion group to the relevant pricing proc
edure.
After selecting the pricing procedure for which you want the condition exclusion
to be active, select the folder Exclusion
where you can assign the relevant condition exclusion procedure to the relevant
condition exclusion group.
When using the condition exclusion group to find the best condition record in a
condition type
only use one condition type per exclusion group.
The most important thing to remember here is to deactivate the Exclusive Indicato
r on the access sequence assigned to that condition type.
Otherwise, the system will merely find the first condition record and stop sear
ching for other records.

Pricing Report & Condition Index

What is difference between pricing report & condition index?


Pricing Report:
A Pricing report basically helps to get the list of all the pricing details whic
h we have maintained in the system.
We can get details of all the condition types including the scales. We can get
the details as per our requirement i.e.,
Sales org/Dc/Division/Plant /material etc wise. The selection criteria would be
as per the Key combination which you select in the IMG screen
You get following information from pricing report.
1. It informs you about the customer specific price agreements that were made wi
thin a certain period
2. From pricing report you can know which condition records exist for freight ch
arges
3. Which condition records exist for customers in a particular region or country
You can create your own pricing reports with V/LA.
Also
V/LD is very useful. This can be customized.
The sales personnel use it to
1. get information for price (discounts) that existed at previous period (Say Ju
ne 200X)
2. Inform potential buyer about the current price (and discounts)
3. Review price and discounts.
Though all the above T Codes and there are many More standard SAP Reports have v
ery high utility, it is not widely used.
Clients prefer customized reports when it comes to pricing reports - all Z prog
rams and Transactions.
These kind of reports are generally required by the Top Management for periodica
l review // Finance team for price control // Master data team for record purpos
es
// Process audits by Internal/external agency // Of late, for every SOX audit do
ne in the company...especially the change records for prices.
Condition Index
Condition index is very useful for searching the condition record for a customer
.
It becomes easier and faster to search for condition records for a customer or m
aterial just like it become easier to search a topics in the book with help of i
ndex.
You have to mark the "condition index" check box in the condition type and you h
ave to activate the index in customization.

You can set the discount for fast ten orders through "condition update".
First, in your discount condition type(V/06) activate the "condition update" che
ck box.
Second, in the condition record, in additional data put "maximum number of order
s" as 10.
You may also create the condition record for discount through VK31. Now go to ch
ange(VK32), scroll to the right, you will find a column "N".
This is maximum number of order field. Here you can put value 10 and save it.
Now, system will give the discount to the first 10 orders.

What Is Condition Base Value?

Where does the standard condition base value (Default one) is determined for a C
ondition type?
First check the Material Master UOM Conversion - Additional Data - Units of Meas
ure.
Condition base value is a concept used in pricing procedure and actual term used
is alternate condition base value.
This is a formula assigned to a condition type in order to promote an alternate
base value for the calculation of the value.
If you have to calculate price of a material then you have to have a base value
for it.
For e.g. if you want to calculate the discount of 10 % for a material then you
have to have a base value on which this 10% is calculated.
Normally you take the condition value of the base price of the material to calc
ulate the value.
Now, you don't want to take the base value and take other value as base value wh
ich are derived on some formula.
So you create a routine which will do the mathematical operations in the routine
and derive you a value which is now used as the base value for calculating
the condition value for a particular condition type.
As per my understanding there is Alternative Condition Base Value, It is a routi
ne which is assigned to the condition type in the pricing procedure.
Go to transaction V/08 here you select pricing procedure then go in to the contr
ol data of the pricing procedure here you can find Alter native Condition
Base Value in the 14th column of the pricing procedure control data.
What is the difference between:
1. Conditional base value
2. Conditional value.
3. Conditional amount

1. Conditional base value


When a value is derived for a condition type, based on certain calculation this
value is taken as base.
2. Conditional value.
For the number of units ordered depending on the condition amount mentioned this
value is derived.
3. Conditional amount
This is nothing but the unit list price what you are mentioning for the line ite
m.
1) What is the role of alternative calculation type, condition base value, requi
rement in pricing procedure?
2) Where do we define value for alternative condition base value and alternative
calculation type so that system picks up different value,
when the value for alternative condition base value and alternative calculation
type is mention in pricing procedure?
**Alternative Calculation Type:**
This function allows you use a formula as an alternative in finding the value of
the condition type, instead of standard condition technique.
this can be used to calculate complex tax structures.
Alternative condition base value
The alternative condition base value is a formula assigned to a condition type i
n order to promote an alternative base value for the calculation of a value.
Example
An absolute header discount is, for example, distributed in the standard system
according to the cumulative value of the items.
If the system distributes the absolute header discount according to volume based
on the Alternative formula for condition base value , a header discount of $30
results in the following discounts:
Item Value Volume .
1 $1000 2 cbm
2 $500 4 cbm
Stand. disc. Volume disc.(With Formula)
$20 $10
$10 $20
Condition formula for alternative calculation type
Alternative formula to the formula in the standard system that determines a cond

ition.
Requirement
This function is used to assign a requirement to the condition type. This requir
ement can be used to exclude the system from accessing the condition type
and trying to determine the value. This can be used to specify that the conditi
on type should only be accessed if the customer has a low risk credit.

Rounding Off Condition Not Appearing In Sales Order

In sales order Diff condition type is not coming, when checked in analysis it sa
ys requirement 013 is not fulfilled, but in pricing procedure
I've assigned the requirement as 013, alt.cal type-16, alt CBV-4.
Please refer to the following documentation for requirement 013:
RE LV61A013
Title
Rounding as per Table T001R
Purpose
This is an example of a pricing requirement. This requirement is met if an entry
has been made in the 'Unit to be rounded up to' field in Table T001R.
Table T001R stores the rounding rules for company code and currency combination
s. This requirement can be assigned to the condition type in the pricing procedu
re
that is used to calculate the difference when rounding. Using this requirement,
the difference is only calculated when necessary.
Example
A company has the requirement to carry out rounding for certain company code and
currency combinations. This information is stored in Table T001R.
In the document pricing procedure, the user has configured the SAP delivered co
ndition type DIFF to calculate the difference when rounding occurs.
The user also assigns pricing requirement '13' to the condition type DIFF in th
e pricing procedure so that the condition is only calculated
when a corresponding entry has been maintained in the table T001R.
Please check the customizing table T001R.
or try this go to IMG path --> SAP Netweaver --> General Settings --> Currencies
--> Define rounding rules for currencies.
Here maintain the rounding unit which will be stored in Table T001R.
then in the t-code ob90 you can maintain that.
Go to v/08 maintain in condition base value 16 routine.
Purpose

This is an example of a condition value formula. This type of formula can be use
d to influence the value shown for the condition in pricing.
A condition value formula is assigned to a condition type or value line in the
pricing procedure.
Formula '16' was delivered along with condition type DIFF to support the roundin
g unit rules that can be defined in T001R for company code / currency combinatio
ns.
Condition type DIFF was delivered to perform the rounding at the end of the pri
cing procedure with the total value.
Using formula '16', the system computes the rounded value and assigns the diffe
rence to the condition type DIFF.
In-17 c.base value
Round according to T001R
Purpose
This is an example of a condition value formula. This type of formula can be use
d to influence the value shown for the condition in pricing.
A condition value formula is assigned to a condition type or value line in the
pricing procedure.
Formula '17' was delivered so that a condition value could be rounded off accord
ing to the rounding unit rules (e.g. plus 5 or 10 or 100 units)
that can be defined in T001R for company code / currency combinations. When for
mula '17' is assigned to a condition type,
the condition value will always be rounded using T001R.
Where I can do setting of rounding profile for a new created condition type?
1) Create Rounding rule ( Unit of measure rounding rules )
Path :
Materials --> SPRO Quantity Optimizing and Allowed --> Order Optimizing --> Purc
hasing --> Management Unit of Measure Rounding Rules -->
Logistics Units of Measure
Here give new rounding rule and % rounding up and down values
2) Create Unit of measure groups
Path :
Order Optimizing --> Purchasing --> Materials Management --> SPRO Unit of Measur
e --> Quantity Optimizing and Allowed Logistics Units of Measure Groups
Create new group for YD and ROL
3) Dynamic rounding profile
Path :
Order Optimizing --> Purchasing --> Materials Management --> SPRO Maintain Round
ing --> Quantity Optimizing and Allowed Logistics Units of Measure Profile
Here give Rounding profile name and plant and click on Dynamic to create new pro
file
In next screen give desc. For rounding profile, rounding off method as 2, and ro

unding rule which you have created.


Assign created Rounding profile in info record also UOM group
Maintain minimum order qty as 1 Rol and Order unit as ROL in Info record
In material master maintain conversion as 1 Rol = 3500 yards

How To Create Field in KOMP, KOMG

New Fields in Pricing


To use a field in pricing, one creates a condition table. This condition table i
s created using the allowed fields from the field catalog.
Should the fields one requires not be included in the list of allowed fields, o
ne can add the fields from the list of available fields.
However, one may find that a new field may not be in the list of available fiel
ds. For this reason, one must create new fields for pricing.
The document and item data in SD is stored in data tables, such as VBAK and VBA
P (for the order transaction).
Many of the fields from these tables are available in the field catalog.
The field catalog is a structure (KOMG) that consists of two tables (KOMK and KO
MP). These tables contain the header and item data for pricing respectively.
They are called KOM ?x because they are communications structures used to commun
icate the transaction data with the pricing procedure.
Table KOMG contains the fields of tables KOMK and KOMP.
If you require a field that is not in KOMG, it means that it is not in KOMK or K
OMP.
This means that the field you require cannot be used in pricing because there i
s no communication of this field from the transaction to the pricing procedure
via the communication structures.
To use a field not defined in the field catalog, you need to add this field to t
he KOMK or KOMP structures,
and then write the ABAP code to transfer the data in the field from the transact
ion tables to the communication structure. Follow these steps:
1.
Create the field in the KOMK (header data) and KOMP (item data) tables us
ing the standard includes provided for this requirement.
2.
Write the code in the user exit to read the transaction data and transfer
it to the KOM x structures.
Menu Path

The menu path here is IMG, Sales and distribution, System modification, Create n
ew fields (using the condition technique), New fields for pricing.
Adding the Field to KOMK and KOMP
This process requires some knowledge of the ABAP dictionary and how to use the A
BAP dictionary to create and change fields and tables.
You may have to use an ABAP skill to assist you. If the field is from the header
table (for example, the order table VBAK),
you ll need to add it to the include table KOMKAZ in table KOMK. If the field is
from the item table (for example, the order item table VBAP),
you ll need to add it to the include table KOMPAZ in table KOMP.
Let s say you need to use the base material to define a price and the base material
is not in the pricing field catalog.
The base material is a field on the material master basic data screen and is de
fined as MARA-WRKST. Since this relates to the material,
it is at the item level, so you would add the field to the KOMPAZ include table
.
Note
When you add a field to these tables, it must start with ZZ. Therefore,
the field you add would be ZZWRKST.
In ABAP, when you add the field, use the same domain as in the field in the ori
ginal table MARAWRKST.
After adding the field, generate the structure KOMP. This field is not available
in the field catalog and can be used in condition tables.
Writing the ABAP Code
The field in the communications structure will be blank unless the ABAP code tra
nsfers the data from the material master to the field KOMPZZWRKST.
Pricing occurs in the order and in the invoice, so you need to put this code in
both places. For the order transaction,
write the ABAP code in user exit USEREXIT_PRICING_PREPARE_TKOMP in include prog
ram MV45AFZZ. For the billing transaction,
write the ABAP code in user exit USEREXIT_PRICING_PREPARE_TKOMP in RV60AFZZ.
Note : The TKOMP is for the item level. If you are writing the code for a field
at the header level,
you would use the user exits that end with TKOMK. The ABAP code would select th
e Base material field from the material master table using the material
from table VBAP/VBRP. It would then transfer this field to the structure TKOMP
from MOVE MARAWRKST to TKOMP-ZZWRKST.

How System Chooses Between KOFI Or KOFK

Describe how the system chooses KOFI or KOFK when both are maintained in VKOA. I
n other words, I have the entry set up for both conditions,
however sometimes it chooses KOFI and sometimes KOFK depending on the billing t
ype, but I don't see the setting on the billing type that controls this.
Account determination procedure for all is KOFI00 but within this it somehow det

ermines whether to use kofi or kofk - how?


Explanation:
In the standard SAP, SAP provided 2 condition types for SD module.
1. KOFI - If the using company code is not activated for Product Costing, this c
ondition type will be used for revenue account determination.
2. KOFK - If the using company code is activated for Product Costing, PA, then t
his condition type will be used for revenue account determination
in the financial accounting as well as controlling.
The difference between KOFI and KOFK is
KOFI -- Account determination without CO
KOFK -- Account determination with CO
You can control through Routine, which you can placed in Requirement Column of t
he account determination procedure.
Routine 2 - With CO acct.assignt
Routine 3 - Without CO acct.assignt
If you have both whenever the costing related transfer system will take KOFK, if
there is no costing related transfer system will take KOFI
KOFI is used for the Make to Stock Scenario
KOFK is used for the Make to Order Scenario.
The Controlling is activated from the Requirement Class.
This Requirement Class is linked to the Requirement type which you will find in
the Procurement tab in the Sales Order.
The Requirement Type is linked with the Strategy which you maintain in the Mater
ial Master (MRP 3)
Basically it is triggered because in the MTO scenario we are directly linked wit
h the PP module. And PP module is linked with Controlling (Cost centers, etc)
The main difference is the separation between Finance part (KOFI) and Controllin
g (KOFK) part.
When posting is necessary within FI or CO, system will take settings as defined
in the system with regard to the entries for KOFI/KOFK.
When KOFK is involved it posts both in FI and CO , wherein CO Objects are involv
ed in CO postings. When KOFI is involved, the posting only happens to FI not CO.

If you maintain the CO objects in the sales order, system will choose KOFK to do
the further processing.
EX. internal order no from CO.

The key why the KOFK is determined is in:


Sales and Distribution-->Basic Functions-->Account Assignment/Costing-->Maintain
Requirements Classes For Costing/Account Assignment
There is in standard for 039 Service item which I'm using setting Account Assign
ment Category E (Customer indiv. reqt).
I removed this value with a blank, and everything works with KOFI!!!

Condition And Alternative Formula

Explain the difference between "Condition formula for alternative calculation ty


pe" and " Alternative formula for condition base value".
Condition base value is a concept used in pricing procedure
is alternate condition base value.
This is a formula assigned to a condition type in order to
base value for the calculation of the value.
If you have to calculate price of a material then you have
for it.
For e.g. if you want to calculate the discount of 10 % for
have to have a base value on which this 10% is calculated.

and actual term used


promote an alternate
to have a base value
a material then you

Normally, you take the condition value of the base price of the material to calc
ulate the value.
Now, you don't want to take the base value and take other value as base value w
hich are derived on some formula.
So you create a routine which will do the mathematical operations in the routin
e and derive you a value which is now used as the base value for calculating
the condition value for a particular condition type.
As per my understanding there is Alternative Condition Base Value. It is a rout
ine which is assigned to the condition type in the pricing procedure.
Go to transaction V/08 here you select pricing procedure then go in to the contr
ol data of the pricing procedure.
Here you can find Alternative Condition Base Value in the 14th column of the pr
icing procedure control data.
What is the difference between:
1. Conditional base value
2. Conditional value.
3. Conditional amount
1. Conditional base value. When a value is derived for a condition type, based
on certain calculation this value is taken as base.

2. Conditional value. For the number of units ordered depending on the conditio
n amount mentioned this value is derived.
3. Conditional amount. This is nothing but the unit list price what you are men
tioning for the line item.
1) What is the role of alternative calculation type, condition base value, requi
rement in pricing procedure?
2) Where do we define value for alternative condition base value and alternative
calculation type so that system picks up different value,
when the value for alternative condition base value and alternative calculation
type is mention in pricing procedure?
**Alternative Calculation type**
This function allows you use a formula as an alternative in finding the value of
the condition type, instead of standard condition technique.
This can be used to calculate complex tax structures.
**Alternative condition base value**
The alternative condition base value is a formula assigned to a condition type i
n order to promote an alternative base value for the calculation of a value.
ALTERNATIVE CALCULATION TYPE will determine the CONDITION VALUE using a Routine
rather than the FROM & TO columns in the PRICING PROCEDURE.
For example:
To calculate the PROFIT MARGIN we use the Calculation type as 11 which means the
difference of Base price and Cost price.
CONDITION BASE VALUE: It will determine the BASIS for calculating the value of
condition type alternatively to the Standard.
For example:
The Header discount will be distributed to all the line items based on the value
of item. But alternatively,
if you wan to distribute the value based on the Quantity you can define the rou
tine and assign this to the CONDITION TYPE.

Document Pricing Procedure to Order types and Billing types

This is because, you would be having different Document types for each and every
scenario and for the same customer. For all those scenarios,
how system will know that which pricing procedure should determine in sale orde
r.
So while creating new sale document type in VOV8, you can also differentiate the
pricing procedure by assigning some value there.
In most of the cases, for one customer, you would be having different sale order
type and for those,
you have to define which pricing procedure should flow in sale order. It is bas

ed on the assignment you do in OVKK.


For e.g.
In Oil business most of the time when material is leaving from vendor premises s
ame price is applied.
It may possible that when you booked order price was 100
During invoicing price is 105.
So SAP provided flexibility for user if needed to have different Price Procedure
at sales order and billing level.
If you don't assign the document pricing procedure to the order types system wil
l not determine the pricing procedure
while creating sales order with that document type.
Pricing procedure will get determine based on this combination,
Sales area+Document pricing procedure(Order or billing)+Customer pricing procedu
re-->Pricing procedure.
If you want to redetermine the pricing procedure at billing you need to assignin
g Document Pricing Procedure to Billing type based on
this new pricing procedure will determine while creating invoice.
When create sales order you need to enter document type based on this document t
ype system will check the document price proc of that document type
then it checks is there any pricing procedure determined for this document pric
e proc if available system will execute that pricing procedure
in that sales document type.

Home -> SAP Sales and Distribution ->


Condition Record Exists ( removed manually)
Have this problem (Condition record exists ( removed manually) - K007 in Pricing
analysis).
When I created a release order (OR) for the quantity contract and value contrac
t of a specific customer.
(FYI, the promotion and sales deal with condition type K007(customer discount)
have been created for this customer).
What the pricing analysis is saying is that a condition record has been found bu
t it has been removed manually. It can happen in the following cases:
1. If a user manually deleted it from the pricing screen, this seems unlikely in
your case.
2. There is a requirement on condition type K007 level or its access sequence K0
07 level in the pricing procedure,
which removes the retrieved condition record. Check this in the pricing procedu
re-condition type assignment and access sequence definition

3. There is a formula (alternative calculation type) where there is some code wr


itten to remove the retrieve condition type
4. A user-exit is used during condition access and which removes specific condit
ion records from the set retrieved for the pricing procedure
IMG Path :
Check 1:
Sales & Distribution -> Basic functions -> Pricing -> Pricing control -> Define
and assign pricing procedures
(use this to check requirements and formulas at condition type K007 level)
Condition Type Control Data K007
Check 2:
Sales & Distribution -> Basic functions -> Pricing -> Pricing control -> Define
access sequences
(use this to check if there is any requirement at access sequence K007 level)

Vous aimerez peut-être aussi