定价技术一直是SAP引以为豪的一个设计。设计也很复杂,闲下空来DEBUG了一下SAP的标准程式。
基础的IMG设定(定价表/访问顺序/定价类型/定价过程)就不说了,
现将一些SAP的定价逻辑分享给大家,希望能给做定价增强的ABAPer兄弟一些些帮助。
1) 定价程序
FunctionPool: SAPLV61A
Function Name: Pricing
2) 变量说明
XKOMV 记录系统定价结果(Item Level)
TKOMV 记录系统定价结果(Doc. Level)
KOMT1 定价过程
KOMT2 访问顺序
KOMK 定价关键字(表头)
KOMP 定价关键字(行)
3) 程序处理逻辑
A) 整理 KOMK / KOMP 的值 (SAP提供接口做增强,SO/DN/BILLING)
SO:
Program: MV45AFZZ
User Exit: userexit_pricing_prepare_tkomk / userexit_pricing_prepare_tkomp
DN:
BADI: LE_SHP_PRICING
Method: CHANGE_INPUT_HEADER_AND_ITEMS
BILLING:
Program: RV60AFZZ
User Exit: USEREXIT_PRICING_PREPARE_TKOMK / USEREXIT_PRICING_PREPARE_TKOMP
B) 抓取定价IMG的相关设定
Program: LV61AA12
FORM: KONDITIONSVORSTEP
* --> KOMK header communication structure *
* *
C) 根据定价设定,整理定价过程结果内表
Program: LV61AA67
FORM: XKOMV_AUFBAUEN_AUS_KOMT1
*---------------------------------------------------------------------*
* Build XKOMV from KOMT1 derived from T683S *
*---------------------------------------------------------------------*
* --> KOMK header communication structure *
* --> KOMP item communication structure *
* --> KOMT1 pricing procedure *
* --> KOMT2 accesses *
* *---------------------------------------------------------------------*
定价过程中的"需求"将在这里被处理. 如果检查通过的话,改定价类型将会被记录在XKOMV里面.
价格主档的数据也会在这里被处理,见
Program: LV61AA29
FORM: konditionen_lesen
D) 根据TKOMV整理XKOMV定价过程结果内表
Program: LV61AA58
FORM: XKOMV_AUFBAUEN_AUS_TKOMV
*---------------------------------------------------------------------*
* Build XKOMV from TKOMV *
*---------------------------------------------------------------------*
* --> KOMT1 pricing procedure *
* --> TKOMV complete table of conditions *
* *---------------------------------------------------------------------*
E) 定价过程内表的计算(处理Formula,subtotal,base value ...)
Program: LV61AA55
FORM: XKOMV_BEWERTEN
*---------------------------------------------------------------------*
* Calculate on internal table of conditions *
*---------------------------------------------------------------------*
* --> PREISFINDUNGSART pricing type *
* --> KOMK header communication structure *
* KOMP item communication structure *
* XKOMV internal table of conditions *
* GKOMV table of group conditions pricing type F only *
* --> GKOMZ table of group cond indeces pricing type F only *
*---------------------------------------------------------------------*
小计/计算类型/基础类型 在这里被处理. 可参考 SAP NOTES: 900089,有详细描述处理逻辑.
F) 根据表T684的记录,执行定价排斥
Program: LV61AA56
FORM: XKOMV_AUSSCHLUSS
可参考 SAP NOTES: 836243
G) 将XKOMV的结果整理到TKOMV
Program: LV61AA42
FORM: XKOMV_UEBERTRAGEN_NACH_TKOMV
*---------------------------------------------------------------------*
* Transfer XKOMV to TKOMV *
*---------------------------------------------------------------------*
* --> XKOMV table document conditions *
* *---------------------------------------------------------------------*
4) 有关定价的一些SAP NOTES.
1165078 Authorization check for conditions or subtotals
1007110 How is the KWERT determined in a subtotal?
836243 How condition exclusion works in R/3
791944 How is the KBETR determined in a subtotal?
485740 Conditions with fixed amount in copy activities
201830 Calculation of the net price of an item
154529 Pricing in the delivery
130417 Pricing preparation in billing document (user exit)
92090 Exclusion indicator KZNEP
67958 Mode of operation of the condition exclusion
41490 Condition exclusion (KZNEP)
24832 Pricing rules / TVCPF
18173 Minimum order value
900089 Pricing: Processing steps FORM XKOMV_BEWERTEN
363212 'Pricing analysis' mode of operation
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23138807/viewspace-1030684/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23138807/viewspace-1030684/