简介:采购价格确定直接决定采购订单的成本核算结果,是SAP MM模块中的核心配置主题,这份文档对此做了系统化梳理。内容从条件技术入手,逐一解析条件类型、存取顺序、条件记录和条件表、计算方案等组成部分;随后围绕价格确定流程展开,说明总价条件的存储顺序、有效期与定价日期、等级结构、信息记录和订单价格历史等细节;还特别补充了抬头条件、组条件及条件维护的常用操作方法。整份材料采用章节式编排并附有目录,方便读者按需查阅。资源包为一个doc文件,大小约719KB,已有四百余人学习下载。文档既能为初学者搭建采购定价的完整知识框架,也能帮助实施顾问在配置时快速回顾条件类型与取价逻辑的细节。
1. 采购价格确定不是「填个单价」:PO里的价格是算出来的
同一家供应商、同一个物料,上午下单和下午下单,PO单价能差出两个点——这在SAP里不是灵异事件。SAP之采购价格确定,说的是采购订单创建那一刻,系统按一套「定价过程」实时算出价格:先通过存取顺序找到对应的条件记录,再用计算方案把毛价、附加费、折扣一步步算成净价。如果你的理解还停留在「价格就是主数据里一个字段」,看完这篇笔记能省下不少跟财务对账的力气。适合刚接手MM模块的顾问、天天跟PO价格打交道的采购用户,以及所有被「价格取不对」反复折磨的人。
2. 定价机制拆解:信息记录、条件记录与存取顺序的关系链
价格确定这个说法听起来抽象,拆开看其实是一套流水线:数据存在哪里、按什么顺序找数据、找到之后怎么算。这三件事分别对应条件记录、存取顺序和计算方案。很多人调价格失败,就是因为只改了数据,没管顺序和算法。
2.1 信息记录、条件记录与条件类型:三个容易混的概念
采购信息记录(Purchasing Info Record)是采购视图下的主数据,针对「供应商+物料+采购组织」维护,事务代码ME11。它里面存的是供应商物料号、交货数据,还有价格——这个价格在后台其实会落成一条条件记录。信息记录可以手动建,也可以在收货后由系统自动更新,取决于后台「信息记录更新」的开关。
条件记录(Condition Record)是条件技术里更通用的载体,事务代码MEK1。它不仅承载信息记录的价格,还能承载框架协议价、合同价、运费、折扣等。和「供应商+物料+采购组织」这种固定组合不同,条件记录的字段组合更灵活,可以只按「供应商+物料组」建,也可以加上有效期和数量比例。
条件类型(Condition Type)则是每一条价格的「业务身份」。标准系统里PB00代表普通采购价格,PBXX可能是含税净价,PBCO是合同价格,还有专用于运费、折扣的条件类型。每个条件类型挂着一套自己的存取顺序和计算规则。同一个供应商的物料,可能在信息记录里有一个价、在合同里另有一个价,两个价分别属于不同条件类型,最终PO取哪个,不由你拍脑袋,由配置决定。
2.2 存取顺序:一张价格表找不到,就换下一张
存取顺序(Access Sequence)是价格确定里最容易被忽略、也最影响结果的一环。一个条件类型下面可能挂着一列条件表,系统按顺序逐表查找:先按表A的组合字段查,查到并且有效期匹配,就用表A的结果;查不到,再落到表B;取到即停,不会把多张表的价格加起来。
举个例子。某条件类型下配了两张条件表:表1按「供应商+物料+采购组织」存储,表2按「供应商+物料」存储。A采购组织下有这条价格,系统直接取表1;B采购组织下没维护,系统就往下落到表2,取供应商+物料的兜底价。这个机制解释了两类高频问题:一是「明明某处有价格,PO却没有」,因为没按存取顺序查到你维护的那张表;二是「取到了别家的价格」,因为兜底表太宽,把不该应用的价格命中进来了。
字段越多,条件越具体,通常排前面;字段少的表是兜底。但到底谁优先,取决于业务上希望哪个口径优先命中。改存取顺序属于高影响配置,复制出一个新的再调整,比直接改标准的要安全。
2.3 计算方案把价格一块块拼出来
计算方案(Calculation Schema)就是采购订单定价过程的「骨架」。它是一列步骤,每一步引用一个条件类型,还带着计算类型、基准步骤、是否允许手工修改等控制。系统从上往下执行:毛价、附加费用、折扣、小计,最后汇总出一个净价。
事务ME21N创建订单时,行项目里的「条件」页签能把每一步展开,看到每个步骤取了哪个条件类型、金额是多少。这个页面是后来排查价格问题最直接的入口——哪个步骤没取到数、哪个步骤金额不对,一眼可见。计算方案通过「方案组」或采购组织等维度分配给订单类型,不同订单类型(标准PO、计划协议、合同)可以走不同的定价过程。
2.4 组织层级:为什么换了采购组织,价格就「消失」
价格条件默认挂在采购组织下面,条件表字段里通常包含采购组织(EKORG)和工厂(WERKS)字段。你在维护价格时选了哪个采购组织,PO创建时也必须用同一个采购组织,否则取不到数。同一个集团里不同采购组织维护不同采购价是常态,别指望跨组织复制主数据后价格还跟着走。
这四层关系如果画出来,数据是信息记录和条件记录,路由是存取顺序,拼装是计算方案。价格取不对的案子,八成出在存取顺序和组织层级这两处。把这段理顺,后面配置和排错才有底。
3. 从零落地采购定价过程:条件类型、存取顺序与计算方案的配置步骤
标准系统里PB00和对应的存取顺序是开箱即用的,大多数企业初期并不需要从零建。但实际业务总会有差异:要加运费附加费、要按工厂区分价格、要支持阶梯价。常见做法是先复制标准对象再改,而不是自己凭空造一套。
3.1 配置前先想清楚:按什么口径定价格
动手前先回答四个问题。第一,价格是按「供应商+物料」维护,还是按「供应商+物料+采购组织+工厂」维护?第二,同一物料在不同工厂是否允许不同采购价?第三,附加费和折扣按固定金额还是百分比?第四,价格是否含税?这四个答案直接决定条件表字段、条件类型取值和计算方案的步骤设计。如果连口径都没定,后面配置完会发现取数逻辑和业务对不上。
常见的口径组合如下表,实际项目里多数是其中一种或两种混用。
| 口径 | 适用场景 | 条件表字段 |
|---|---|---|
| 供应商+物料 | 集团统一采购价 | EKORG不需要,供应商+物料 |
| 供应商+物料+采购组织 | 不同采购组织分别议价 | EKORG+供应商+物料 |
| 供应商+物料+采购组织+工厂 | 工厂间价格差异大 | EKORG+WERKS+供应商+物料 |
3.2 条件类型:复制标准PB00还是新建
后台路径:SPRO→物料管理→采购→条件→定义价格确定过程。进入后能看到条件类型、存取顺序、计算方案和方案确定几个子项。除非必要,不动标准PB00,复制一个自定义条件类型PBZ1再调整。
复制后重点检查三个字段。计算类型:采购标准价一般用「金额/数量」,也就是按数量计算的固定金额,别选成百分比。条件类别:保持「采购」。存取顺序:指定到将要使用的存取顺序编号。还要确认「手工输入」开关是否打开——如果关掉,前台ME21N里就不能手工改价,这在某些企业是刻意为之,在另一些企业则是事故源头。
3.3 存取顺序:按业务口径排优先级
定义存取顺序时,维护各部分:表的顺序、字段列表、检索的优先级。每一行一张条件表,行号从小到大表示查找顺序。条件表可以从标准表复制,也可以新建(通常选A9xx段),字段组勾选供应商、物料、采购组织、工厂、有效期等。
原则是「更具体的条件排前面」。比如业务要求供应商+物料+工厂的专项价优先于供应商+物料的一般价,就把含工厂字段的表放前面。反之,如果希望一般价优先、专项价只作补充,就调整顺序。字段列表决定了系统拿哪些值去匹配条件表,凡是参与匹配的字段(比如工厂)必须在条件表里存在。
这里有一个容易翻车的点:存取顺序里的表并不是越多越好。每多一张表,就多一种命中的可能性。兜底表太宽,容易把不合适的价格带进PO。宁可少一张兜底表,也不要让错误价格命中。
3.4 计算方案:拼出一台算价流水线
定义计算方案时,维护的是一列步骤。每个步骤有步骤号、条件类型、描述、基准步骤、计算类型。下面是一个最小可用的采购定价过程示例。
| 步骤 | 条件类型 | 描述 | 计算类型 | 基准步骤 |
|---|---|---|---|---|
| 10 | PB00 | 采购毛价 | 金额 | 无 |
| 20 | ZF01 | 运费附加费 | 百分比 | 步骤10 |
| 30 | ZD01 | 采购折扣 | 百分比 | 累加值(步骤10+20) |
| 40 | ZG00 | 净价汇总 | 汇总 | 无 |
金额类步骤按「数量×单价」计入,百分比类步骤按基准步骤的金额乘以比例计入,汇总步骤把前面的结果带到净价字段。执行顺序就是步骤号从小到大。百分比步骤的基准写错是常见错误:折扣基准应该基于毛价加运费后的值,如果不小心把基准指回步骤10,折扣金额就会少算一点点。所谓「一点点」,在年度采购量面前可能就是几十万。
配置完计算方案后,还要解决它怎么被采用。在「定义方案确定」里,把计算方案和供应商的方案组、采购组织、订单类型绑定。常见做法是给供应商主数据的采购视图指定方案组,系统按方案组找到对应计算方案。配置完不要急着切生产,先在测试环境用一张测试信息记录跑一个PO,看「条件」页签每个步骤是否都有值。
4. 价格怎么算、哪个价格生效:净价公式、有效期与数量比例
价格确定不只是「取数」,还有「算账」。同一个条件记录,在不同数量、不同日期、不同价格单位下,最终的PO单价可能完全不同。这一章把算价过程拆开,你会发现那些「差两分钱」的案子,几乎都出在这三个环节。
4.1 净价公式与计算类型:一张PO的完整算价过程
拿第3章的最小方案走一遍数字。采购数量100个,信息记录毛价10元每个。步骤10按金额计算:10×100=1000元。步骤20是2%的运费附加费,基准是步骤10,得到20元。步骤30是5%的折扣,基准是「步骤10+步骤20」的累加值,也就是(1000+20)×5%=51元。步骤40汇总:1000+20-51=969元。PO显示的单价就是969÷100=9.69元。
这个例子想说明两件事。第一,百分比步骤的基准是累加值,不是毛价本身。第二,金额步骤只乘数量,不乘其他金额——如果把折扣做成金额类型并且基准指向不对,算出来的数字会和报价天差地别。税金也是同一套逻辑:条件类型带税标识时,系统按税码计算,不是在PO里手工加几个点。
4.2 有效期与价格日期:决定带出哪个价格
条件记录都有有效期,从某日到某日。PO行项目里有个字段叫「价格日期」,默认是当天日期,它决定了系统取哪个生效版本的价格。如果价格日期落在有效期之外,即使条件记录存在也取不到。
采购员月初改了一个新价,但「有效从」填了下月1号,当月下单自然还是旧价。这在信息记录的价格历史里能看到:ME13显示信息记录,能看到价格按时间段分了几段。MEK3显示条件记录,同样能看到有效期。价格日期这个字段是「价格不对」类问题的重灾区,排查时第一眼看的就是它。如果PO的价格日期被误改到上个月,单价会直接变成上期价格。
4.3 数量比例与价格单位:单价为什么和报价单差一点
数量比例就是阶梯价。信息记录里有专门的「数量比例」页签,可以维护1-99件10元、100-999件9元这种区间。PO创建时按当前数量落在哪个区间取单价。注意比例是按「订单数量」判断,不是按累计到货数量。
价格单位则是另一个隐蔽因素。供应商报价单写「每千件1200元」,信息记录里价格单位填1000、价格金额填1200。PO里买1件时,系统计算的是1200×1÷1000=1.2元。小数位一多,四舍五入后总额就可能和供应商对不上。排查这种差异,要把「条件金额」「数量」「价格单位」三项摆在一起看,还原计算过程,而不是盯着整数单价。
5. 采购价格确定排查清单:5个高频坑与对应解法
价格问题之所以看着玄学,是因为你面对的是一个黑匣子:输入了主数据,但不知道系统按哪条路径取数、在哪一步断掉。我习惯把常见案子和排查路径记成清单,遇到问题照着走,多数30分钟内能定位。
5.1 PO不带价,净价一直是0
现象:ME21N里能看到条件页签,但价格字段空白或显示0。 原因:最常见三种。信息记录没建;信息记录存在但存取顺序里没匹配到对应条件表;计算方案中该步骤被设置成非必选且手工输入关闭。还有一种隐蔽情况:条件记录维护的采购组织与PO的采购组织不一致,导致按组织字段匹配失败。 解决:ME11确认信息记录存在、有效期覆盖价格日期;MEK3查看条件记录挂在哪个采购组织下;再用ME23的「条件」页签看每个条件类型的取数详情,定位是哪一步断掉。
5.2 改了信息记录价格,PO还是旧价
现象:采购员在ME11把单价从10元改成12元,ME21N新建PO仍然带出10元。 原因:一看有效期,新价「有效从」是下周;二看PO行项目,价格被手工改过,系统不再自动覆盖;三看价格来源,PO取的根本不是这条信息记录,而是更上游的合同价。 解决:先确认信息记录的「有效从」字段;PO行项目价格若被手工维护会有特殊标识,可以在行项目条件页签执行重新定价,或者删掉这个行项目重新添加。如果来源是合同价,则要回到合同条件记录去改,而不是改信息记录。
5.3 合同/框架协议价格取不到,落到默认价
现象:年度合同已经签了,合同里有明确的单价,但PO带上来的还是普通信息记录价,甚至没价。 原因:PO没有引用合同号,从条件技术角度看,找不到与合同关联的条件表;或者存取顺序里根本没有配置合同价格条件表,导致系统只查普通价格表。 解决:先确认PO抬头或行项目里填了合同号;后台检查存取顺序中是否包含合同条件表(如合同价格条件类型对应的表)并排到合适位置;MEK3查合同条件记录是否存在、有效期是否覆盖价格日期。常见做法是合同创建后系统自动生成条件记录,若生成失败,用MEK1补建。
5.4 换采购组织后,同一物料价格变了
现象:同一个供应商,同一个物料,A采购组织下有价格,B采购组织下没价格,或者价格完全不同。 原因:条件记录按采购组织隔离,B采购组织下根本没有可用的记录。如果条件表里还带工厂字段,工厂不一致同样匹配失败。 解决:按业务实际口径,为B采购组织(或对应工厂组合)维护条件记录。需要大量复制时,用条件清单报表导出整理再批量导入,别手工一条条敲,容易漏。
5.5 总金额差几分钱,单价看起来是对的
现象:PO单价和报价单一致,但金额总和总差个几毛几分。 原因:三个因素叠加。价格单位不是1(比如每千件);数量比例区间被命中但换算有小数;百分比折扣在中间步骤四舍五入后,和财务自己手算的结果有偏差。 解决:把PO条件页签的金额、数量、价格单位同时展开,对照检查。如果供应商以吨报价而系统按千克维护,换算系数要在主数据里先统一。这种差异不是玄学,是单位换算和舍入精度问题,校正口径后即可。
这套清单不替代你理解机制,但能帮你快速缩小范围,知道问题出在数据、顺序还是算法。
6. 查价格别靠猜:用条件分析和后台表定位价格来源
6.1 先看PO条件分析,再看后台表
ME23打开PO,双击行项目里的「条件」页签,可以进入条件分析视图。这里会列出该价格由哪张条件表命中、对应条件记录编号、有效期是多少。到这一步,价格来源已经从黑匣子变成了菜单项。我每次排查价格,第一个动作永远是打开这个分析视图,而不是先翻主数据。
6.2 用SE16N直接查条件记录
条件分析视图里会给出条件表编号(通常是以A开头的表,例如某张「供应商+物料+采购组织」的表)。用SE16N直接查这张表,核对供应商、物料、采购组织和工厂字段是否与PO一致;再按条件记录编号去KONP查金额、去KONH查有效期。很多次「价格莫名消失」最后坐实,就是条件表里那一行被删了,或者有效期被误改。
6.3 固定会跑的三个验证动作
我给自己立了一个习惯:改完价格相关配置,固定做三件事。用ME21N新建一张测试采购订单看初始带出值;用ME23看条件分析确认命中了预期条件表;用SE16N查条件表和KONP坐实金额。三个动作加起来不到十分钟,但能让你对改动结果有把握。价格问题最怕的就是凭手感拍脑袋改主数据,越改越乱。先定位来源,再动手,这套打法救过我很多次,希望帮到你。
本文还有配套的精品资源,点击获取