pricing procedure定价过程
一个产品的价格受到多个因素的影响及决定,如它有自己的基本价,在特定目的(受时间,数量,金额大小)的折扣,税收的费用,运费等等。各个各样的价格组成了该物料的最后费用(客户需实际支付的)。因此对于同一种物料,不同的客户可能获得不同的价格。因此是不能只用一个价格去为某一物料定价的。所以这个pricing procedure就是组合各种费用,最终总和出一个费用。不同类型的费用是由不同的condition type来表示的。
condition type条件类型(定价类型)
用来表示组成物料价格的各个不同的侧面。比如基本价是一个 condition type,用PR00来表示。一个企业物料的价格有多少个组成元素,就得有多少个condition type。在条件类型中定义存取顺序。
condition record条件记录(定价记录)
各种各样的价格都是通过condition record来存储的,也就是说维护一个物料的价格就是维护相应的condition record。比如PR00是物料的基本价,但是基本价到底是多少就是在condition record里维护的。
condition table条件表(定价表)
虽然根据上面3个元素好像就能确定一个物料的价格了,但实际是如果深入考虑的话就会发现问题。比如对于同一个物料不同销售组织销售的产品的可能价格不一样(如KFC里的hamburger,在US和CN的售价是不一样的),这样他们的基本价就不一样,所以价格还和其他因素有关系,如销售组织,分销渠道,工厂等。所以condition record里面的记录应该有相应的字段用来限制。condition table的作用就是定义conditon record里面的字段的,也就是哪些字段要作为关键字段,这样就可以确定一条记录了。条件表对应一个具体的数据库,包含一个或者多个条件字段,定义条件表中的条件字段时,经常从条件字段目录中选择。
access sequence访问顺序(存取顺序)
通过上述4个元素基本上可以进行定价了,但是仍有一些情况会出现问题。如有的物料针对一些特殊的客户可能会有不同的优惠,而大部分客户没有。这时就需要为这些客户设定特殊的价格。订单在计算价格的时候,先判断该客户是否是特殊客户,如是则执行特殊价格,若不是则执行普通价格。为了使这个过程简化,需使用access sequence.因为这里有不同的价格策略,就必须有不同的conditon table 和conditon record,
access sequence中包含一个或多个条件表,当存在多个条件表时,还将指定读取这几个条件表的顺序。即先搜索特殊客户,如能满足就访问特殊客户的condition record,读取相应记录。若不能满足,则把他当作普通客户做普通处理。
当创建销售订单时,系统首先确定出定价过程,再根据定价过程确定条件类型,然后订单中条件类型(如销售折扣)就根据访问顺序在条件表中读取,即读取相应的价格主数据。
条件记录是以某条件表中的特定字段值为基础而找到的真实记录。条件表中的字段被用来查找条件记录,它被放置入存取顺序中。存取顺序是将条件表以一种逻辑顺序放置以取得条件记录的顺序。存取顺序又分配给条件类型。条件类型又置入定价过程等确定过程。