SAP定价相关程序

更新时间:2023-12-17 03:22:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SAP定价相关程序

定价技术一直是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 * * <-- KOMT1 table of pricing procedure * * <-- KOMT2 table of condition access sequences * 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 internal table of conditions * 定价过程中的\需求\将在这里被处理. 如果检查通过的话,改定价类型将会被记录在XKOMV里面. 价格主档的数据也会在这里被处理,见 Program: LV61AA29 FORM: konditionen_lesen SAP 定价配置过程 1.首先“定义条件表”,确定哪些字段会影响定价,然后将这些字段选定后,生成一个定价条件表。

2.“定义存取顺序”,通过定义存取顺序,关联上步创建的定价条件表。 3.“定义条件类型”,通过条件类型,可以管理存取顺序,从而关联条件表。这样当使用这种条件类型时就可以在相应的条件表中产生条件记录了。

3.1定义客户定价组,纯代码表维护,在客户主数据中有值。是价格确定的一个因素。

4.“定义定价过程”,关联条件类型。

5.a 定义客户定价过程,这个相当于维护一个代码表。为以后配置那种单据下那个客户使用什么样的定价过程作准备。客户资料中关联这个值。

5.b 定义单据定价过程,类似于上面的过程,也是一个代码表。

5.c 为订单类型指定单据定价过程,这个过程就是把订单类型和上面定义的单据定价过程相关联。

5.d 给出具发票类型分配单据定价过程,类似于5.c,只不过是针对发票的。

6.“定义定价程序确定”,根据单据可能关联的元素,关联4步骤中定义的定价过程。 7.“通过项目类别定义定价”,用来确定指定的项目类别是否执行定价过程,这步确定是否取定价,6步确定去取那个定价。

8.通过VK11,创建条件记录,即录入价格数据。

定价取定价的过程模拟分析如下:

0.根据订单行项目中的“类别”从“通过项目类别定义定价”配置中判断是否需要取定价。如果需要取,继续执行,否则终止。

1.根据订单类型从“为订单类型指定单据定价过程”步骤中取得此订单类型的定价过程。 2.根据订单中的客户,从客户主数据中取得在“定义客户定价过程”中定义的值。

3.根据录入的销售组织、渠道、产品组、以及1步骤中取得的单据类型的定价过程和2步骤中取得的客户的定价过程,从“定义定价程序确定”中取得要使用的定价过程。 4.根据取到的定价过程,遍历其记录,取到定价类型。 5.根据定价类型,从定价类型的定义中,取到存取顺序。

6.根据存取顺序,从存取顺序表中找到该存取顺序中每一个所关联的条件表和每个条件表和定价通讯结构之间关联的字段。(在存取顺序中由一个排斥选项,用来确定在找到满足条件

的记录后,是否还要继续)。

7.通过6步找到的表名、字段名,从相应的条件表中找满足条件的条件记录,即通过VK11录入的价格条件记录数据,如果找到,就取出这个价格值,返回到相应的定价过程的定价类型的值上。

SAP SD--关于定价过程的公式的学习

在SAP的定价过程配置中,我们经常会需要使用到公式。这样就需要我们对公式有清楚的了解,在这里就简单的介绍一下公式。

1)公式的名称

在SAP的定价过程中会用到各种公式,这些公式的名称为\规定前缀\公式对应编号).公式规定前缀请参见单元:LV61ATOP。代码摘录如下: * structs to set up form-names for formulas and requirements *来自条件类型的配置

data: begin of frm_staffelbas,

fix(15) value 'FRM_STAFFELBAS_',

nr like t685a-kofrs, \基本价值等级公式 end of frm_staffelbas. data: begin of frm_gruppenkey,

fix(16) value 'FRM_GRUPPENKEY_0',

nr like t685a-grlnr, \创建组关键字的例程号 end of frm_gruppenkey. *来自定价过程的配置

data: begin of frm_kond_basis,

fix(15) value 'FRM_KOND_BASIS_',

nr like t683s-kofra, \可选条件基值公式(条件基) end of frm_kond_basis. data: begin of frm_kondi_wert,

fix(15) value 'FRM_KONDI_WERT_',

nr like t683s-kofrm, \替换计算类型的条件公式(计算类) end of frm_kondi_wert.

data: begin of bedingung_pruefen, fix(6) value 'KOBED_',

nr like t683s-kobed, \需求 end of bedingung_pruefen. data: begin of bedingung_vorstep, fix(6) value 'KOBEV_', nr like t683s-kobed, end of bedingung_vorstep.

2)公式的数据传入和传出(定价通讯)

sap的定价公式的传入和传出是我们设计自定义的公式需要了解清楚。我们可以

查看公式的调用代码,看看sap在调用处的前后都使用了那些变量,就可清楚数据传入和传出。如计算类的调用分析: * calculation formula IF xkomv-kofrm NE 0. wertformel = 'X'.

xkwert = xkomv-kwert.

frm_kondi_wert-nr = xkomv-kofrm.

PERFORM (frm_kondi_wert) IN PROGRAM saplv61a IF FOUND. xkomv-kwert = xkwert. ENDIF.

这段代码摘自LV61AA43单元,可以从红色部分看得出sap通过中间变量xkwert来传递公式的计算数据。同样可以看到sap的标准一些计算类的公式代码: * Version 2 : Calculation of the value in case of percentage conditions * which should be calculated from the reduced value form frm_kondi_wert_007. check: xkomv-kgrpe = ' '. check: komp-kumza ne 0. check: komp-kumne ne 0. check: komp-kpein ne 0.

xkwert = ( ( ( komp-netpr * ( 100000 + xkomv-kbetr ) ) / 100000 ) * komp-mglme / komp-kumza * komp-kumne / 1000 / komp-kpein ) - komp-netwr. endform.

注意:在sap的有些标准的公式里会通过修改xkomv结构来数据传递的数据,这时你一定要同时修改中间变量,这样才能保证调用后xkomv结构对应的字段不会被旧值覆盖。

后台配置:定价过程

条件技术(condition technology)是SAP中运用较多的配置技术。条件技术广泛地应用于定价、文本确定、输出确定和物料确定等,它基本上存在于任何需要条件记录的地方。

SAP通过条件技术在一定数量的选项中选择一个方案。因为SAP是基于条件做出选择的,因此有了‘条件技术’这个名词。

系统将条件作为条件记录进行储存。条件表由一个或多个关键字段和一个数据部分组成。数据部分储存了一个数字,我们可以通过这个数字在另外一个表中中找到对应的条件记录。 举个例子:

A018是我们最常使用的物料信息记录的条件表,左边有4个简短关键字,分别是供应商,物料,采购组织和信息类别。

左边一列的简短关键字代表了已选关键字段,右边一列代表了哪些字段可以作为关键字段。 大家可以用事务代码SE16进行查看。

表A018中,应用M代表采购,条件类型PB00代表总价,随后的供应商,物料,采购组织和信息类别即为设置的关键字段,最后的条件记录号即为前面所说的条件表中的数据部分。

本文来源:https://www.bwwdw.com/article/9lf5.html

Top