定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.231定价逻辑R/3系统是如何确定销售订单中物料的价格的呢?首先,让我们来看以下这张截图:图中,“净价值”为85.47CNY,这是不包含税收在内的物料的净价值。而“总金额”为100.00CNY,这是包含税收、折扣、返利等价格因素在内所计算出来的总价值。那么,系统如何根据维护的物料金额(图中为100.00CNY)计算出净价和总价的呢?这就是关于定价的后台配置问题了。现在,我们开始来看后台是怎么配置定价过程的。为了便于理解,我们采用反向思维来看这些定价过程。首先,我们要知道,价格的确定都是有一个定价过程的。我们去后台看一下这些定价过程。路径如下图所示:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.232双击“定义定价程序确定”,进入以下界面:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.233在这里需要先说明一下关于后台配置界面的一些含义。上图中,灰色字段表示决定因素,白色字段表示确定的结果。以上图第一行为例:1000-11-11-A-1(灰色字段)共同决定了ZVAB02和PR01白色字段。这就是定价过程的确定框架。下面我们来看各字段表示什么。“组织”表示销售组织;“DChl”表示分销渠道;“Dv”表示生产线;“DoPr”表示单据定价过程;“CuPP”表示客户定价过程;“PriPr”表示定价过程;“类型”表示条件类型。我们还以第一行为例,这个定价过程就是说,一张销售订单如果属于销售区域1000-11―11,且其单据的定价过程为A、客户定价过程为1,则这张订单的物料价格的计算应采用ZVAB02的定价过程,订单行项目的条件类型为PR01。单据的定价过程和客户定价过程我们在后面会说到,这里先看ZVAB02这个定价过程是怎样来确定价格的。路径如下图所示:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.234双击“维护定价过程”,进入以下界面:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.235按以上方法进入ZVAB02定价过程:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.236我们来看上图中所列字段的意义:“步骤”:标识了各计算步骤的编号。“计数”:系统用它来显示定价过程中一个阶段内的存取编号。例如,你可以把所有运输附加费分配给步骤100;然而,可能有三个条件类型,每一个代表一个不同的运输附加费。因此,你可以给步骤100分配一个运输条件类型,计数1;另一个给步骤100,计数2;另一个给步骤100,计数3。“Ctyp”:是条件类型,这是定价过程的基础。系统中没有一种条件类型可以用来表示“小计”或者“总计”的,在上图中,你可以在没有条件类型的条目中输入描述,比如“总计”。“从”和“到”:用户两种情况(1)为小计定义范围。如果你要累积从步骤10到50的所有条件类型,应该分别在“从”、“到”中输入10和50。(2)定义计算的基础。如果折扣是定义成百分比形式的,你必须标识那一步应该用作计算的基础。如果你想要在步骤100开始计算,那么在“从”字段中输入100。“人工”:标识条件类型是否允许自动处理还是仅仅允许手工处理。若打上“人工”标识则意味着该条件类型只允许手工在订单添加,即使之前用VK11维护了该条件类型,系统也不会自动带出维护了的价格。“必需”:表明当系统使用这个定价过程完成定价时,条件是否是必需的。即要求该条件类型必须有值。“小计”:给步骤分配给一个小计关键字。如果相同的字段用来存储不同的条件金额,系统将对单项数额求总和。这些条件金额或小计可用来作为进一步计算的开始点。“计算类”:系统将会在搜索条件类型的值时使用这个列代表的公式替代标准条件技术。在计算比较复杂的税率时一般会用到它。“条件基”:是分配给条件类型的一个公式,它确定可以作为标准值替代值的条件基的公式。“帐码”:即科目代码,是分配给条件类型的一个记帐码,由该帐码来确定条件记录应计入哪个科目(包定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.237括借方科目和贷方科目,但有时只即入借方科目,视具体的条件类型而定)。我们可以这样简单的理解:各种条件类型就是定价过程的计算元素,这些元素通过规定的运算法则(比如“从”、“到”、“小计”、“计算类”等),计算得出各种价格(比如“总计”、“边际利润”等),但有些价格是从主数据直接带过来的(比如“含税价格”是从价格主数据(VK11)带过来的或者手工维护的,“成本结转”是从物料主数据中的标准价格带过来的),而销售订单中显示出来的价格(比如“净价值”、“总金额”等)都是从这些计算出来的价格取数的。此处需要说明的是,长城公司用的基本都是PR01(含税价格)的条件类型,如果有特殊业务需要在销售订单中以物料净价来维护物料金额(即非含税价),则要配置有PR00条件类型的定价过程。现在,我们继续来看刚才提到的客户定价过程。路径如下图所示:双击“定义客户定价过程”,进入以下界面:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.238我们可以看到,所谓客户定价过程并非像定价过程那么复杂,它只是一个标识而已,客户主数据中维护了这样的客户定价过程标识,就可以与销售区域、单据定价过程共同来确定定价过程了。接着,我们继续看单据定价过程。路径如下图所示:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.239双击“定义单据定价过程”,进入以下界面:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2310可以看到,所谓的单据定价过程其实也只是一个标识而已,它们会被分配到各种订单类型中,作用也是与销售区域、客户定价过程共同确定定价过程。为订单类型指定单据定价过程的配置路径如下图所示:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2311双击“为订单类型指定单据定价过程”,进入以下界面:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2312从上图可以看到各种订单类型都分配到了哪种单据定价过程。比如ZOR(GW:标准订单)就分配到了A这个单据定价过程。前面我们说过,有些条件类型是从主数据里面取数的,有些是手工维护的等等。那么对于每个条件类型,系统又是按照什么原则(或者说优先级)去取哪些数据呢?这就涉及到条件类型的定义和存取顺序的问题了。我们先看条件类型的定义,路径如下图所示:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2313双击“维护条件类型”,进入以下界面:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2314从上图可以看到有很多定价类型。我们双击最常用的PR01进入看一下:这里我们略去其他数据不讲,只看存取顺序。从上图可以看到,PR01分配到了PR02这个存取顺序。而这个存取顺序中又有哪些内容呢?我们继续看,路径如下图所示:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2315双击“维护调取顺序”,进入以下界面:由上图进入PR02这个存取顺序:从上图可以看出,该存取顺序存放了四张表,即是说,分配到该存取顺序的条件类型将可以从这四张表中取数。而这四张表的取数优先级则是通过它们的存取编号(10、20、30、40)来决定的。我们知道,在创建价格主数据的时候会弹出以下选择框:这些“关键字组合”其实就是存取顺序中的表。如果某个物料只维护了这些表中的其中一个表,则PR01这个条件类型无疑会从这张表中取数而不存在优先级问题了。但如果某个物料同时维护了几个表,则PR01会通过存取顺序定义的各张表的优先级来取数。而存取顺序中的“排斥的”字段应该打上标识,该标识符表明:如果系统成功地搜索到了某个表中的数据(其实就是条件记录),那么它将不再进一步搜索其他表的数据。若该字段没有打上勾,则系统会搜索到所有有效的条件记录并把他们一起作为定价的元素,这显然是不可取的。(但作为条件排斥组的条件类型则例外,详见后续“关于定价的其他补充”)上面说到的存取顺序中的表,就是所谓的条件表。我们来看条件表又是如何定义的,路进如下图所示:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2316双击“显示条件表”,进入以下界面:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2317我们选择305这张表,看一下这张表存放哪些字段:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2318从上图可以看到,305这张表存放了四个字段,即是说,这张表存放了由这四个字段共同确定的价格数据。表中的每一条数据就是一条条件记录,这些条件记录就是通过VK11创建的。关于R/3系统的定价逻辑就简单介绍到这里。关于定价的其他补充一、定价有时还与项目类别有关。比如在某一项目类别中,若“定价码”字段不是维护成“X”,而是维护成空或“A”,(如下图1)在创建订单输入价格时会出现如下图2的提示信息:“对条件PR01,需求未满足”。定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2319(图1)定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2320(图2)二、定价限制。为避免用户不小心对某条件类型录入不正确的数据(比如对折扣记录录入100%的折扣),有必要对某些条件类型进行定价限制。路径如下图:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2321进入以下界面。注意:条件类型的计算类控制着限制的计算类型。因而,如果条件的计算类是百分数,那么限制也将会是基于百分数进行。一般来说,折扣最好还是基于百分比好些;这样折扣更容易管理。例如,在管理基于值的条件类型时,不管销售中客户采购多少,限制都不变。然而,显然更好的方式是设置一个百分之五的折扣限定,这样不管客户采购如何变化,折扣比例都能保持不变。这更合理一些。而如果你的运费存在最大额外费用,譬如不管采购数量多少,运费都有上限;那么最好还是使用固定值作为条件类型的计算基准,从而也是上下限计算的基准。如果用户在销售订单中创建了一个越过限定范围的条件,那么他会收到一个错误信息,定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2322三、条件排斥组我们先来看ZVAB02这个定价过程:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2323可以看到,该定价过程中有两个条件类型是用来提供含税价格的,分别是PR01和ZPR1。那么当在创建销售订单的时候同时维护了这两个价格的话,系统会取哪个价格呢?这就是由条件排斥组决定的。条件排斥组仅仅是条件类型的组合,用于在定价中相互比较。下面就简单说明一下关于条件排斥组的配置。首先是定义条件排斥组。路径如下:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2324从下图可以看到,我们已经定义了以下几个条件排斥组:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2325接着给排斥组分配条件类型,路径如下:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2326可以看到,条件类型PR01、ZPR1分别分配给了条件排斥组GW03、GW04:定价逻辑整理人:庄隆生整理时间:2007.01.10上次修改时间:2007.04.2327在完成了条件类型到条件排斥组的分配后,接着分配条件排斥组到定价过程,路径如下:定价逻辑整理人:庄隆生整理时间:200