i am trying to figure out how to define my own condition table.
So here is the situation.
PO number ( BSTKD) would be used as a key together with sales org and dist.chnl.
so the condition table is assumed to be SalesOrg/Dist.Chnl/PO for a discount.
I found the instruction how to add the new field to field catelog. So I followed it step by step as below.
1. Call up the ABAP Dictionary (Transaction SE11) and create data type ZZBSTKD. Choose BSTKD as a domain. 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 made.
3. Note:Because of the change in structure KOMPAZ, field ZZBSTKD 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 ZZBSTKD as a new entry.
5. Note:Now I can use field ZZBSTKD as a key field when you create a condition table ZA98 with SalesOrg/Dist.Chnl/ZZBSTKD.
then I create condition record in VK11, ( use 1000, 00, 11 as PO for 11% discount per PC)
however, when I create a new order, and put PO = 11, this discount is not there.
Thanks a lot!
6. Supply the new field you defined by including the following source code line in USEREXIT_PRICING_PREPARE_TKOMP:
MOVE xxxx-BDSTD TO TKOMP-ZZBDSTD.
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
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 Note 21040.