采购订单定价相关知识
条件类型
概述
条件类型定价是SAP的定价方式,这个名词初听起来难免让人感到疑惑,但是只要记住,条件类型定价就是多种条件的组合最终确定定价的方式,问题基本就可以迎刃而解了。
条件类型
打开SPRO->IMG->物料管理->采购->条件->定义价格确认流程,这就是SAP采购定价的相关配置的位置。
常用的用于确认单价的条件类型有PB00和PBXX,当然你也可以按照它们的配置复制后重命名来构建自己的定价用条件类型,一个定价流程就是有多种条件类型构成,比如单价PB00+税收+运费等等。但是当我做一个订单的时候,系统是怎么确认我需要那几个条件类型来构成定价呢?条件类型的数值又是如何获取到的呢?
存取顺序
这是我自定义的一个条件类型,它的用途就是采购订单的单价,和PB00一致(复制PB00得到)
双击ZK00可以查看具体的配置内容,如下,
这边有着一个存取顺序,它回答了第二个问题,就是条件类型的值是怎么来的。
我们来看看存取顺序的内容,打开PB00使用的存取顺序看看官方是如何配置的,先勾选0002,然后点击左侧目录的"存取",结果如下:
编号代表顺序,而表代表查找的表,SAP会根据条件类型的存取顺序,找到这个表,再沿着编号顺序,去这个搜索AXXX(XXX就是表编号,A系列条件表多于采购相关),如果某个表中存在着这个条件类型的值,就会将这个值带入到对应的条件类型中去,最终显示在采购订单界面。值怎么获取知道了,那么第三个问题,这里面‘118’这种表到底是什么?
条件表
老样子来看看配置,
017和018应该是系统自带定价过程中最常用的两张表了,看看017的内容,
这是什么意思呢,意思就是这个表是通过供应商+物料+采购组织+工厂来共同决定一个条件类型的数值,使用ME11可以维护信息记录,你会发现界面的构造和这个表是一致的,如果存取顺序0002在找到017之前的表中都没有维护PB00的数据,通过ME11我们维护了工厂级别的数值,那么在017表中存取顺序就能找到PB00对应的记录,最终把单价带到采购订单上去了。存取顺序中多种条件表也就是多种取到数值的规则,比如018 物料+采购组织+供应商,就不需要到工厂层级就能决定一个物料采购定价了。系统会查到018会得到条件记录信息,再根据条件记录信息去查A018(自动生成的表,SAP的定价策略)得到最后的数值。
我们已经知道条件表是什么了,维护对应条件类型数值的方法通常使用MEK1。
自建一个条件表,比如701 ,系统会生成701和A701,价格就存在A701中。
这里我选中了这三个字段来确认单价,当然你也可以从右侧挑选更多的字段。
然后把他放到自定义的存取顺序当中,
最后将存取顺序分配给条件类型ZK00
采购方案
上面讲的都是条件类型的取值问题,回到第一个问题,我怎么确认我当前的订单就是要使用某些条件类型呢?首先要说的是采购方案,直接看流程
我们自定义一个采购方案,比如ZMM200,勾选后点击左侧‘控制数据’
如下:
在这里,就可以定义这个采购方案需要哪些条件类型,比如我将自定义的定价字段ZK00加入了,这里添加了四个条件类型,额外加了一个汇总,在步骤字段中,写上需要汇总的条件类型的步骤起始和结束,就可以计算前面数值的总和。
先来介绍以下各个字段的意思,
步骤:就是顺序,一般越靠前代表价值越基础,因为后续的条件类型可以通过步骤来根据前面步骤来取值
条件类型:不用描述,就是条件类型
从步骤和到步骤:这是做相关运算的时候你的取值范围
手动:就是在采购订单界面是否要手动输入(有点不确定,没做相关测试)
需要:就是字段值是否可以不填,一般总价、单价类型的字段,系统自己就会让你必填
统计:这与成本账单等相关,不重要
打印类型:不重要
小计:这个决定着条件类型的数值在采购订单界面可以被存储在哪些辅助量,用于后续操作,
需求:不太了解
条件金额备选计算例程:可以在这里做相应的定价增强,也是下半文章的重点;
剩下的就不介绍了
方案组和方案确认
计算方案有了,表示这个方案里面能够有哪些条件类型,但是我们依旧没有解决第一个问题,如何知道订单选择哪个计算方案?
我们来定义方案组,
给供应商定义一个自定义方案组TE
给采购组织定义一个自定义方案组TS
将方案组分配给采购组织,比如采购组织xxxx分配TS
回到第一个问题,如何确认?创建采购订单时,我们需要填写供应商和采购组织,采购组织有了方案组TS,那么通过BP在合作伙伴的供应商采购视图中,我们给他分配上这个,
然后我们SPRO老路径来到——‘定义方案确认’
新增条目如下:
这样两个方案组唯一确认一种方案,而标注为这两种方案组的采购组织和供应商的订单也就会自然而然的使用到自定义的ZMM200计算方案了。
之后通过MEK1维护条件类型ZK00后,就可以自动带出供应商+物料组+采购组织的价格了。
例程增强
概述
通过增加和减少条件表的决定字段,和存取顺序的取表顺序,SAP已经可以处理很大部分的采购订单定价了。但是这样获得的条件类型数据,都是固定的数值,如果有着更复杂的需求的话,条件类型标准功能就不能满足了,所以就需要定价的增强
方式
采购订单增强的方式有很多,常见的BADI ME_PROCESS_PO_CUST等等,如果是关于条件类型的定价增强,那么你是否还记得上面提到的条件类型备用计算例程呢?输入事务码VOFM,
创建一个自定义例程,推荐例程号在901-999,因为501-900应当留给SAP系统自己使用,如果使用501-999,你修改定价字段很可能会被系统自己的程序所覆盖,导致无效
应用程序选择‘M’代表于采购定价相关的例程,双击编号进入,
在ENDFROM前,点击插入行范围
编写正常的逻辑代码即可,
采购订单定价常用的表有KOMV,KOMP,LFA1等
例如T001-BUKRS,代表行的公司代码,xkomv-kschl代表当前的条件类型等等
都可以通过se11去查看,其中xkomv是一个内表,是komv后台表的一个扩展视图,如果你想修改ZK00的数值,那就修改他的xkbetr(单价)字段,记得修改xkwert(总价),SAP会自动将xkomv-xkwert变为xkwert的数值。
不要在例程中尝试去LOOP行项目,应该这个本身就在LOOP行项目中。
激活
例程编写完毕后,激活例程,但是该例程还没有传输到SAP中,这时候,是不会执行这个例程的,se38去执行一个源程序RV80HGEN,它的作用就是将全部例程激活并在有关文件添加相关的字段,这样你的例程就可以成功生效了。
别忘记在计算方案中将例程号分配给需要增强的条件类型