SAP S/4HANA MM模块培训 48 - 采购定价过程:计算方案、PB00与访问顺序

SAP S/4HANA MM模块培训 48 - 采购定价过程:计算方案、PB00与访问顺序
在 SAP 采购业务中,采购订单行项目上的 15.00 EUR 并不只是一个被复制到净价字段的数字。系统必须先决定当前采购凭证应该使用哪套计算方案,再依次处理毛价、折扣、附加费、运费、税费等条件类型;对于需要自动确定的条件类型,还要沿着访问顺序逐项读取条件表,找到在当前供应商、物料、采购组织、工厂、日期、数量和单位下有效的条件记录。只有把这条链路串起来,才能真正回答“这个价格从哪里来”“为什么没有取到预期价格”“为什么另一家供应商或另一个工厂得到不同价格”。
第 48 课视频用一个未保存的 ME21N 采购订单草稿演示了这条链路的前半段。讲师输入供应商 2012 SV enterprises1、物料 125000027 / Citric Acid、数量 10 L 和工厂 0001,系统自动提出 PB00 Gross Price = 15.00 EUR / 1 L,条件值为 150.00 EUR。随后,定价分析显示计算方案 RM0000,PB00 显示消息 208 / Condition record has been found。最后,讲师在 SPRO 中打开 PB00 条件类型明细,确认其访问顺序为 0002。
但视频到这里突然结束:没有打开 0002 的访问步骤,没有进入条件表,没有维护条件记录,没有演示采购组织与供应商方案组如何确定 RM0000,也没有保存采购订单。因此本文先按时间顺序还原视频真实完成的操作,再从第一处“SAP 官方教程补充”章节开始,依据 SAP Learning 与 SAP Help 补齐缺失内容。官方补充部分不会冒充视频实操,标准示例也不会被写成所有客户系统都必然相同的配置。
视频实录:八项议程与实际完成范围

视频开头列出了八项计划内容:定价过程简介、方案确定、计算方案、方案组、条件记录、条件类型、访问顺序和条件表。从完整课程设计看,这八项内容本应形成一条端到端的采购条件技术链路:
- 先说明采购凭证为什么需要定价过程;
- 再说明采购组织和供应商如何决定计算方案;
- 在计算方案中排列毛价、折扣、附加费、运费和税等条件类型;
- 为自动确定的条件类型分配访问顺序;
- 由访问顺序按优先级读取一个或多个条件表;
- 从命中的条件表中读取有效条件记录;
- 把条件值带回采购凭证并继续执行后续计算步骤;
- 最终形成净价、有效价以及相关小计。
实际视频只完成了其中一部分。讲师解释了采购价格由多个组成部分构成,在 ME21N 显示了 PB00 毛价,在条件分析中找到了 RM0000,并在 SPRO 的 PB00 明细中看到 0002。视频没有进入方案组、方案确定表、计算方案明细、访问步骤、条件表或条件记录维护画面。
还要特别注意采购订单边界。画面标题始终是 Create Purchase Order,视频没有点击保存,也没有出现采购订单编号。因此,本文只能称它为“采购订单草稿”或“ME21N 示例”,不能写成“已创建并保存采购订单”。同样,系统显示的 15.00 EUR 能证明草稿中完成了价格确定,但不能证明后续保存、审批、输出、收货或发票校验已经发生。
为了避免把课程议程误当作操作证据,本文采用三层标记:
- 视频已解释:定价过程的含义、价格组成和条件技术链路;
- 视频已操作:ME21N 条件页签、定价分析、SPRO 条件类型明细;
- 视频未完成:方案确定、访问步骤、条件表、条件记录以及采购订单保存。
后文凡属于第三层的内容,都明确放在“SAP 官方教程补充”章节中。
视频实录:采购价格为何不是一个孤立字段

视频首先解释,供应商给出的采购价格通常由多个价格要素共同组成。最常见的起点是物料毛价,但企业与供应商之间还可能约定折扣、附加费、运费、税费和现金折扣。SAP 不应把这些要素全部压成一个无法追溯的净价,而是用不同条件类型分别表示,再由计算方案控制处理顺序。
条件类型回答的是“这个价格要素是什么、怎么计算”。例如,毛价可能按数量和价格单位计算,折扣可能按百分比减少某个计算基础,附加费可能是固定金额,运费可能需要计提或单独过账,税费则通常由税码和税过程共同决定。计算方案回答的是“哪些条件允许出现、先处理哪一项、后处理哪一项、形成哪些小计、是否允许手工输入、是否只作统计”。
因此,看到采购订单上的净价时,不应立刻把它等同于某一条主数据价格。更严谨的追溯顺序是:先打开条件页签,看哪些条件类型参与了计算;再打开条件分析,看系统确定了哪个方案、每个条件类型是否执行访问、是否找到记录、是否因为要求未满足而跳过;最后才回到对应主数据或条件记录检查金额、有效期和等级。
视频中还提到“净采购价”和“有效采购价”。两者在界面上可能同时出现,但业务含义并不完全相同。净价通常表示采购条件计算后的项目单价;有效价还可能考虑计划交货成本等对采购决策有影响的要素。具体计算仍取决于计算方案和条件类别,不能只根据字段名称在所有系统中套用同一公式。
视频实录:ME21N 草稿中的完整输入与条件结果

视频约在 04:18 后进入 ME21N。讲师先选择标准采购订单类型 NB Standard PO,然后输入以下数据:
| 字段 | 视频值 | 说明 |
|---|---|---|
| 供应商 | 2012 SV enterprises1 | 仅为培训系统示例供应商 |
| 凭证日期 | 15.11.2022 | 视频系统日期 |
| 物料 | 125000027 | 物料描述 Citric Acid |
| 采购数量 | 10 L | 订购单位为升 |
| 交货日期 | 21.11.2022 | 示例交货日期 |
| 工厂 | 0001 | 培训系统工厂 |
| 净价 | 15.00 EUR | 每 1 L |
| 行项目净值 | 150.00 EUR | 10 × 15.00 |
进入行项目“Conditions”页签后,视频可清楚辨认出以下条件:
PB00 Gross Price:15.00 EUR / 1 L,条件值150.00 EUR;PBXX Gross Price:0.00,画面中为未激活状态;NAVS Non-Deductible Tax:0.00 EUR;SKTO Cash Discount:0.000%;- 页面还显示净值(含折扣)和净值(含税)均为
150.00 EUR。
状态栏同时显示:Effective price is 15.00 EUR, material price is 10.00 EUR。这句话说明有效价与物料价格在该示例中是不同概念,也提醒我们不要只盯着采购订单行项目的一个数字。真正排查时,应同时查看条件明细、有效价、物料价格来源以及是否存在计划交货成本。
视频没有修改 PB00,也没有手工输入另一个毛价。因此,能够确认的是:系统根据现有价格确定逻辑自动提出了 15.00 EUR。但仅从条件页签还不能确认它具体来自合同、采购信息记录还是其他一般条件。要回答来源问题,必须继续打开“Analysis”。
视频实录:从采购订单追溯到条件记录的六层链路

讲师随后用概念图说明价格确定的大致路径:采购订单先确定计算方案,计算方案中包含条件类型,条件类型分配访问顺序,访问顺序包含条件表,系统按顺序检查条件表中是否存在有效条件记录,命中的值再回到采购订单。
这条链路可以整理成六层:
- 采购凭证上下文:供应商、采购组织、物料、工厂、数量、单位、定价日期和参考凭证等;
- 计算方案:决定当前场景允许并处理哪些条件类型;
- 条件类型:表示毛价、折扣、附加费、运费、税或其他价格要素;
- 访问顺序:规定系统从哪里开始找、下一步去哪里找、何时停止;
- 条件表:用关键字段组合定义条件记录的适用范围;
- 条件记录:保存实际金额或百分比、币种、价格单位、有效期、等级等业务数据。
排错时必须沿着这六层逐层向下,而不是只在采购订单里反复改价格。如果计算方案没有包含预期条件类型,维护再多条件记录也不会被读取;如果条件类型没有访问顺序,系统就不会自动搜索对应表;如果访问顺序缺少需要的组织层级,条件记录即使存在也无法命中;如果关键字段匹配但记录已过期、单位不一致或数量未达到等级,系统同样不会采用。

视频概念图还给出一个独立示例:采购组织 1000、供应商 A、工厂 1000、物料 Material 1、数量 10 PC。系统先检查合同项目,没有找到;随后检查工厂级信息记录,找到 50.00 / PC,于是把该值带回毛价条件。图中还写出一个等级示例:数量自 500 PC 起价格为 48.00。
必须把这个概念图与 ME21N 实操分开。概念图中的 50.00 / PC 不是采购订单草稿里的 15.00 EUR / 1 L,采购组织 1000、供应商 A 和物料 Material 1 也不是 ME21N 画面中的真实输入。本文保留它,只为了说明“更具体记录优先、找到后可停止”的查找逻辑。
视频实录:定价分析确认 RM0000 与 PB00 命中

讲师在 ME21N 条件页签点击“Analysis”。左侧树的顶层显示过程 RM0000,描述为采购凭证相关过程;其下排列 PB00、PBXX、VA00、VA01、GAU1、GAU2、RB00、RC00、RA00 等多个条件类型。右侧“Overview”列出每个条件类型的处理消息。
画面中最关键的两行是:
PB00:消息208,Condition record has been found;PBXX:消息207,Condition has been found (without condition record)。
这证明当前草稿实际使用的计算方案为 RM0000,并且 PB00 通过条件访问找到了条件记录。它比单纯看到 15.00 EUR 更有证据力,因为它告诉我们价格不是只由用户手工输入。PBXX 的消息则说明系统找到了该条件,但不是通过条件记录取得有效值;结合条件页签中 PBXX 为零且未激活,可以判断它没有成为当前毛价来源。
定价分析中还出现多种消息:Manual condition 表示该条件通常需要手工处理;Access not made (initialized field) 表示访问需要的字段没有准备好,系统没有执行该访问;Condition not considered (requirement ... not fulfilled) 表示计算方案中的要求没有满足。真实项目排查价格时,这些消息往往比“有/没有条件记录”更重要,因为它们能区分配置缺失、字段为空、要求未满足和记录未命中。
讲师口述“有些人称它为 calculation schema,也有人称为 pricing procedure”。在采购语境中,RM0000 可以理解为采购计算方案或采购定价过程。文章统一使用“计算方案”,并在第一次出现时注明它对应视频中的 pricing procedure,避免与销售定价的方案确定条件混淆。
视频实录:SPRO 路径与 PB00 条件类型明细

接下来,讲师从 SPRO 进入 SAP Reference IMG,在 Materials Management → Purchasing → Conditions → Define Price Determination Process 下展开配置。视频画面可见以下节点:
Define Access Sequences;Define Condition Types;Define Limits;Define Exclusion Indicators;Set Calculation Schema - Purchasing;Define Schema Groups;Define Schema Determination;Maintain Condition Tables;Extend Field Catalog for Condition Tables。
这些节点恰好对应定价过程的不同层次。访问顺序、条件类型、计算方案和方案确定属于配置;条件记录则是业务主数据。不要把“在 SPRO 创建条件类型”和“在主数据中维护条件记录”混成一件事。前者定义规则和容器,后者提供可在特定关键字段、日期和等级下被读取的实际价格。
视频选择 Define Condition Types,进入 Set Pricing Condition Types - Purchasing。讲师使用定位功能找到 PB00,然后打开明细。

PB00 明细画面清楚显示:
- 条件类型:
PB00 / Gross Price; - 访问顺序:
0002 / Gross Price; - 条件类:
B / Prices; - 计算类型:
C / Quantity; - 条件类别:
H / Basic price; - 组条件已选中;
- 项目条件已选中;
- 定价过程字段显示
RM0000。
视频讲到“这个访问顺序会包含条件表”时结束。它没有点击 Records for Access,没有返回 Define Access Sequences,也没有显示 0002 中具体有哪些访问。因此,068、016、017 等后续内容只能由 SAP 官方资料补齐,不能写成视频已展示。
视频实录:课程中断点与不可越过的结论边界

对完整 10 分 37 秒视频逐帧复核后,可以把结论边界写得非常明确。
视频可以证明:
- ME21N 中输入了供应商、物料、数量、交货日期和工厂;
- 系统提出
PB00 = 15.00 EUR / 1 L; - 行项目条件值为
150.00 EUR; - 定价分析使用
RM0000; PB00找到条件记录,消息号为208;- SPRO 中打开了
PB00条件类型; PB00分配访问顺序0002。
视频不能证明:
- 采购订单已保存或已生成采购订单号;
- 当前系统的方案组和方案确定组合是什么;
RM0000的实际步骤、计数器、小计、要求和公式是什么;0002在该系统中的全部访问和“排他”设置是什么;- 命中的条件记录具体来自合同、工厂相关协议项目还是采购信息记录;
- 任何条件记录已被创建、修改或保存;
- 自定义条件类型、访问顺序、条件表和计算方案已完成端到端配置。
下面开始进入官方补充。从下一章起直到文章结尾,所有二级标题都带“SAP 官方教程补充”前缀,以便读者一眼区分视频证据和补齐内容。
SAP 官方教程补充:采购条件技术的四个核心对象
SAP Help 的 Condition Technique 将采购价格确定的核心对象归纳为条件类型、条件表、访问顺序和计算方案。条件记录是这套技术所读取的主数据。把它们的职责分清,是理解 RM0000 → PB00 → 0002 → 表 → 记录 的基础。
1. 计算方案:决定允许哪些价格要素以及计算次序
计算方案把参与采购价格计算的条件类型组合在一起,并规定处理顺序。它还可以控制小计、手工输入、条件要求、计算基础、统计标识、打印、会计相关性和替代公式。RM0000 是 SAP 标准采购凭证价格确定示例,但客户系统可能复制并创建 Z* 方案,或调整标准方案中的步骤。因此,排错时应先看定价分析实际确定了什么,而不是凭经验假设一定使用 RM0000。
2. 条件类型:定义价格因素的业务与计算行为
条件类型代表某一种价格因素,例如毛价、绝对折扣、百分比折扣、附加费、运费、关税或税。它规定条件类、计算类型、正负号、抬头或项目使用方式、是否允许手工修改、是否需要访问顺序、等级基础等。PB00 是标准按数量计算的毛价条件类型;视频画面中的条件类 B、计算类型 C、条件类别 H 与 SAP 官方说明一致。
3. 访问顺序:规定系统按什么优先级寻找记录
访问顺序是一种搜索策略,由一个或多个访问步骤构成。每个访问通常指向一张条件表。系统按访问号从小到大读取,先检查更具体的组合,再检查更一般的组合;若某一步启用相应停止规则并成功找到有效记录,则不再继续搜索该条件类型的后续访问。0002 是 PB00 的标准访问顺序示例。
4. 条件表与条件记录:定义“适用于谁”并保存“具体是多少”
条件表用关键字段组合描述条件记录的适用范围。例如,供应商、物料、采购组织和采购信息记录类别可以共同构成一条采购条件的关键字段。条件记录在该范围下保存金额或百分比、币种、价格单位、有效期、等级和其他控制数据。表结构是配置,表中的业务数据是条件记录,两者不能混用。
一条完整的自动定价路径
当用户创建采购订单时,系统先根据采购上下文确定计算方案。对方案中的每个自动条件类型,系统读取其访问顺序,再根据当前字段值构造条件表关键字,检查定价日期和等级,取得有效条件记录。取得的条件值返回条件类型,计算方案继续后续步骤,形成净价和小计。
任何一层出错都会导致价格异常:方案不对、条件类型缺失、访问顺序未分配、条件表关键字段不匹配、记录无效、单位不同、日期过期或要求未满足。正因如此,采购定价排错应当是链路排错,而不是只检查一个价格字段。
SAP 官方教程补充:SAP Learning 采购定价关系图的中文解读

SAP Learning 的 Explaining Pricing Basics 提供了一张采购价格确定关系图。原图不是 SAP 软件界面,因此本文按规则用中文重新绘制,并保留英文原图作为来源留档。
图的左上方是供应商和采购组织,它们共同影响采购计算方案。中间的方案按顺序处理基础价格、折扣、小计和附加费。右侧则说明访问顺序会在不同组织粒度下寻找条件记录,更具体的记录可以优先于更一般的记录。采购信息记录保存供应商、采购组织、物料、价格、有效期和等级等数据,是采购价格的重要来源之一。
官方图中的 90 EUR - 10% + 3 EUR = 84 EUR 只是说明计算次序:先从基础价格得到折扣后的 81 EUR,再加 3 EUR 附加费。它不是 RM0000 的固定公式,更不代表视频里的 15.00 EUR。客户系统可以使用不同条件类型、不同计算基础、不同小计和不同运费或税处理方式。
这张图还说明“采购条件”并不只有毛价。供应商可能按材料、供应商子范围或更一般供应商级别给予折扣;运费可能按项目、数量或整张凭证分摊;税费依赖税码和税过程;某些条件只允许手工输入。计算方案把这些不同来源和计算行为放入一个可追溯的顺序中。
SAP 官方教程补充:采购组织与供应商方案组如何确定计算方案

SAP 官方资料说明,采购计算方案可以按采购组织、供应商或两者组合区分。最常见的标准逻辑是:采购组织分配一个“方案组(采购组织)”,供应商在业务伙伴的采购组织数据中维护“方案组(供…2861 tokens truncated…0 EUR / 100 L`,数学上单价相同,但系统显示和舍入可能不同。若采购订单单位与条件单位不同,还依赖物料主数据或信息记录中的单位换算。价格看似放大 10 倍或 100 倍时,第一时间应检查价格单位,而不是直接修改金额。
数量或金额等级
条件记录可以维护等级。例如 0–99 件为 10 元,100–199 件为 9 元,200 件以上为 8 元。SAP Help 的 Maintaining Time-Dependent Conditions 提醒,首个数量档通常应从 0 开始,否则低于首档数量时可能无法确定价格。
等级基础可以是数量、金额、重量或体积,具体由条件类型控制;组条件还可能跨多个项目汇总等级基础。测试等级时至少应覆盖首档以下、每个临界值、临界值正上方以及多个项目汇总场景。
上下限与补充条件
时间相关条件还可以维护上限、下限和补充条件。上下限可用于限制采购订单中手工修改价格的范围;补充条件可以与主条件一起被建议。使用这些功能时,应验证采购订单修改价格后系统给出的是错误、警告还是允许继续,以及补充条件是否正确继承。
条件记录维护入口
不要把 MEK1/MEK2/MEK3 笼统写成所有采购条件的唯一入口。SAP 官方资料区分:
- 信息记录和合同中的时间相关条件通常在相应信息记录或采购凭证中维护;
- 一般时间相关条件通过采购主数据菜单或相应应用维护;
- 采购订单中的条件是非时间相关条件,直接在采购凭证中处理;
- 当前 Fiori 系统还可能提供面向供应商或发票方的一般条件维护应用。
因此,选择维护入口前,应先确认条件类型属于信息记录、合同、一般供应商条件、服务条件还是当前凭证条件,再结合部署版本和授权确定应用。
SAP 官方教程补充:时间相关条件与采购订单条件的区别
SAP Learning 官方教程明确区分:采购订单中的条件始终是非时间相关条件;采购信息记录和采购合同中的条件始终是时间相关条件。两者的存储与维护方式不同。
时间相关条件
信息记录和合同条件可以设置有效期、等级、上下限与补充条件。它们作为长期或阶段性采购协议,在创建采购订单时被价格确定读取。更改主数据条件不会自动改写已存在采购订单中的历史条件,是否重新定价要由凭证操作与配置决定。
非时间相关条件
采购订单条件属于当前凭证。它们随采购订单保存,反映创建或重新定价时采用的条件。用户若在权限和条件类型设置允许的情况下手工修改价格,修改只影响当前凭证,不会自动回写信息记录或合同主数据。
为什么这一区分影响审计
审计采购价格时,要同时保留“当时主数据条件”和“采购订单最终条件”。如果只查看今天的信息记录,可能发现价格已经被新有效期覆盖,却无法解释历史采购订单当时为什么采用旧价。采购订单中的条件快照与条件分析记录是追溯历史决策的重要证据。
视频中的状态
视频草稿没有保存,因此只展示了当时内存中的非时间相关采购订单条件。虽然 PB00 显示找到条件记录,但视频没有打开该记录,无法确认其有效期、来源对象或当前主数据状态。
SAP 官方教程补充:系统在什么日期、哪些来源中寻找价格
SAP Help 的 Price Determination 说明,创建采购订单或带非时间相关条件的计划协议时,系统会寻找有效条件并插入新凭证。对采购订单,系统可以在采购信息记录、合同(合同释放订单)和一般条件中寻找价格。
定价日期控制
采购价格可以按采购订单凭证日期,也可以按配置采用当天、交货日期或收货日期等日期。供应商采购组织数据和采购信息记录都可能影响定价日期类别。若条件记录“明明有效却不命中”,应在行项目条件控制中确认实际定价日期,不要只比较系统当前日期。
信息记录
采购信息记录保存特定供应商与物料在采购组织或工厂层级的采购关系,包括计划交货时间、价格、条件和订单单位等。标准表 017 是 PB00 / 0002 查找信息记录条件的典型入口。若存在工厂级条件,访问顺序可能优先采用更具体记录。
合同
对于合同释放订单,系统可以采用参考合同项目中的条件。合同项目比一般信息记录更具体时,访问顺序应让合同条件优先。若采购订单没有引用合同,就不能仅因合同主数据存在便假设系统一定读取它;必须看当前凭证上下文和访问字段。
一般条件
企业还可以维护对供应商、发票方或其他组合有效的一般折扣和附加费。SAP Learning 提到可通过 Fiori 的供应商条件维护应用或 SAP GUI 的相应采购主数据菜单维护。它们是否进入当前采购订单,取决于计算方案中是否有对应条件类型及其访问顺序。
最后采购订单价格
SAP Help 还说明,如果没有找到条件,而信息记录记录了最后采购订单,系统可以根据采购定制采用最后采购订单条件。这个行为容易让用户误以为系统读取了当前信息记录价格。排错时应检查信息记录中的最后采购订单引用和买方默认设置,并通过定价分析确认实际来源。
参考凭证与手工修改
复制采购订单、参考报价或合同创建时,条件可能从参考凭证带入;用户也可能在条件类型允许时手工修改。价格来源诊断必须把“自动找到条件记录”“从参考凭证复制”“采用最后采购订单”“手工修改”区分开,不能只看最终金额。
SAP 官方教程补充:从零配置自定义采购条件的实施顺序
视频没有演示自定义配置。下面给出依据条件技术依赖关系整理的实施顺序,用于沙箱或开发系统设计;生产系统变更仍应遵循企业传输、测试和审批流程。
第一步:明确业务要素和计算规则
先用业务语言写清楚:这是毛价、折扣、附加费还是运费;按金额、百分比还是数量计算;适用于抬头还是项目;需要自动读取还是只能手工输入;以哪个步骤为计算基础;是否影响净价、打印和会计。若业务规则不清楚,后面的技术对象只会把歧义固化进系统。
第二步:设计条件表关键字段
决定价格由哪些维度区分,例如供应商、采购组织、工厂、物料、物料组或信息记录类别。优先复用标准条件表;只有标准组合无法表达业务时才创建自定义表。字段过多会让维护量爆炸,字段过少又会让不同场景互相覆盖。
第三步:创建访问顺序
把条件表按“更具体优先、更一般兜后”的逻辑排列,设置访问号、要求和排他标识。为每一步记录预期命中案例和不命中案例。不要依赖记忆判断优先级,应把访问顺序作为可测试的搜索策略。
第四步:创建或复制条件类型
选择最接近的标准条件类型作为参考,核对条件类、计算类型、条件类别、正负号、访问顺序、组条件、抬头/项目、手工修改限制、等级基础、删除权限与相关例程。自定义对象通常使用客户命名空间,避免直接改动标准对象导致升级与支持风险。
第五步:把条件类型放入计算方案
为条件类型分配步骤和计数器,设置 From/To、小计、要求、手工、必输、统计、打印、会计键和替代公式。新增折扣时特别检查计算基础;新增运费时特别检查计划交货成本、计提和会计影响;新增税相关条件时必须与税过程共同设计。
第六步:确定计算方案
维护采购组织方案组、供应商方案组及方案确定组合。用至少两类供应商和两个采购组织测试,防止新方案错误影响不相关业务。若只在一个测试供应商上成功,不能证明方案确定全局正确。
第七步:维护条件记录
按条件类型和表组合维护金额、币种、价格单位、有效期、等级及上下限。为每条测试记录保存关键字段清单,避免因为维护在错误采购组织或工厂层级而误判配置。
第八步:用采购订单和条件分析验收
创建测试采购订单,记录所有输入字段、定价日期、确定的计算方案、每个访问的结果、最终条件值、净价和有效价。覆盖命中第一访问、命中后续访问、完全不命中、过期、单位换算、等级临界值和手工覆盖等场景。
第九步:验证下游影响
保存采购订单后,还要验证输出给供应商的条件、收货和发票校验中的价格表现、价格差异、计划交货成本及会计过账。采购订单上“看起来正确”不代表整条业务链已经正确。
SAP 官方教程补充:采购价格异常的七步诊断法

当采购订单价格不符合预期时,建议按固定顺序诊断,避免在多个主数据和配置界面中无目的搜索。
第一步:打开条件分析,确认实际计算方案
先记录过程名称。若预期使用自定义方案却实际得到 RM0000,问题首先在方案组或方案确定,不应直接修改条件记录。
第二步:定位目标条件类型
确认 PB00 或自定义条件类型是否存在于方案中、是否被要求跳过、是否被标记为纯手工或统计。阅读消息文本和消息号,不要只看条件值是否为零。
第三步:检查条件类型的访问顺序
确认目标条件类型是否分配了正确访问顺序。若没有访问顺序,自动条件记录不会被搜索;若分配了错误访问顺序,系统可能查完全不同的关键字段组合。
第四步:展开访问并检查条件表
查看系统实际执行了哪些访问,是否因为字段初始化而跳过,是否在更一般的表提前命中。对比条件表关键字段和当前采购订单字段值。
第五步:检查条件记录
核对供应商、采购组织、工厂、物料、信息记录类别、币种、价格单位和计量单位。不要只查“有一条价格”,要确认它位于系统实际访问的那张表和那组关键字段中。
第六步:检查定价日期、有效期和等级
记录可能因为定价日期不在有效期内而失效,也可能因为数量、金额、重量或体积没有进入预期等级。组条件还可能改变等级基础的汇总范围。
第七步:检查手工修改和价格来源
确认价格是否从参考凭证、最后采购订单、合同或信息记录复制,是否被用户手工覆盖,是否执行过新价格确定。必要时比较条件来源标识和变更记录。
这七步的核心原则是沿“方案 → 条件类型 → 访问顺序 → 条件表 → 条件记录”逐层追溯。只在采购订单里重复输入净价,会掩盖主数据或配置问题,并让后续采购订单继续出错。
SAP 官方教程补充:可复现的测试脚本与验收清单
为了让测试结果可以被复核,建议在开发或质量系统按下面步骤执行,并把每一步截图或导出结果与测试用例关联。
测试数据准备
- 一个有效供应商,已扩展到目标采购组织;
- 一个有效物料,已扩展到目标工厂和采购视图;
- 采购组织、采购组、工厂和公司代码组织关系正确;
- 供应商方案组和采购组织方案组已经维护;
- 目标计算方案和条件类型已传输到测试系统;
- 至少两条具有不同具体程度的条件记录;
- 一条过期记录、一条未来生效记录和一组数量等级记录。
基准场景
创建标准采购订单,输入供应商、采购组织、物料、工厂、数量、交货日期和单位。不要先手工输入价格。打开条件分析,记录计算方案、目标条件类型、访问步骤、命中表、条件记录键、定价日期和最终金额。
基准场景应能回答:系统为什么选择这个方案,为什么在这一访问命中,为什么得到这个金额。若无法回答,测试不能只凭“最终价格正确”判定通过。
优先级场景
同时维护工厂级记录和不含工厂的通用记录,验证更具体记录是否优先。删除或使具体记录失效,再验证系统是否按访问顺序回退到一般记录。每次只改变一个变量,避免无法判断命中变化的原因。
有效期场景
分别把定价日期设置在记录生效前、有效期内和失效后,验证系统选择。若系统支持不同定价日期类别,还应覆盖凭证日期、交货日期或其他配置日期。
等级场景
测试每个数量临界值的前一单位、临界值本身和后一单位。例如等级从 100 件开始,则至少测试 99、100、101。若启用组条件,再用多个项目合计达到等级,检查系统是按单项还是汇总数量计算。
单位与价格单位场景
用基本计量单位、订购单位和替代单位分别创建采购订单,验证换算。测试 1、10、100 等不同价格单位,防止金额放大或缩小。保留物料单位换算和信息记录订单单位截图。
手工修改场景
在条件类型允许的情况下修改价格,验证上下限、消息类型和变更记录。重新执行价格确定,观察手工值是否保留、覆盖或删除。不同的重新定价选项可能产生不同结果,必须写入测试步骤。
保存与下游场景
视频没有保存采购订单,正式验收则应保存并记录采购订单号。随后验证输出、审批、收货、发票校验和会计影响。若条件涉及运费或税,必须检查相应后续凭证,而不能只看采购订单净价。
SAP 官方教程补充:常见问题
为什么条件记录存在,PB00 仍然取不到价格?
可能原因包括:当前计算方案没有 PB00;PB00 未分配正确访问顺序;访问需要的字段为空;记录维护在另一个采购组织、工厂或信息记录类别;定价日期不在有效期;数量未达到等级;单位或价格单位不匹配;访问要求未满足;更早的访问已经排他命中。应通过条件分析逐层定位,而不是盲目重建记录。
为什么系统取到信息记录价格,而不是合同价格?
先确认采购订单是否真正引用合同,再检查 0002 中合同相关访问是否在信息记录访问之前、所需合同字段是否已填充、合同条件是否在定价日期有效,以及前面的访问是否已命中。合同存在于系统中并不等于当前采购订单具备合同上下文。
为什么净价与有效价不同?
有效价可能考虑计划交货成本等额外条件,而物料价格、净价和有效价在方案中可能由不同小计或条件类别控制。应查看条件页签与计算方案,不要假设它们必须相等。视频状态栏显示有效价 15.00 EUR、物料价格 10.00 EUR,正好说明二者可以不同。
PBXX 为什么存在但没有成为价格来源?
视频中 PBXX 显示条件存在但没有条件记录,条件页签中为零且未激活;PB00 则显示找到条件记录并带来 15.00 EUR。在标准设计中,PBXX 常用于不通过条件技术自动找到记录的毛价场景,但具体控制仍应查看条件类型和方案,不能仅凭名称判断。
能否直接修改标准 RM0000、PB00 和 0002?
技术上系统可能允许,但项目实施通常应评估复制到客户命名空间,以降低升级、支持和跨业务影响风险。是否复制取决于企业变更治理与功能需求。无论采用标准还是自定义对象,都必须完整回归方案确定、访问优先级、条件记录、采购订单和下游流程。
MEK1、MEK2、MEK3 是否就是采购条件记录的统一事务?
不能这样概括。采购条件维护依对象而异:信息记录和合同条件通常在对应主数据或采购凭证中维护;一般供应商条件有独立菜单或 Fiori 应用;自定义条件记录也可能使用相应事务。应先识别条件类型的业务对象和访问表,再选择正确入口。
视频里的 15.00 EUR 能否复现?
只有在同一培训系统、相同供应商、采购组织、物料、工厂、定价日期和条件记录下才可能复现。其他系统即使也使用 RM0000 / PB00 / 0002,主数据和条件记录不同,结果仍会不同。本文的目标是复现追溯方法,不是承诺复现同一个金额。
SAP 官方教程补充:本课结论
第 48 课真正有价值的不是记住三个代码,而是掌握一条可验证的采购价格链:
采购订单 → 计算方案 RM0000 → 条件类型 PB00 → 访问顺序 0002 → 条件表 → 条件记录 → 15.00 EUR。
视频已经用 ME21N、条件分析和 SPRO 证明了链路的前三个跳转:采购订单草稿使用 RM0000,PB00 找到条件记录,PB00 分配 0002。视频没有证明后续命中的是哪张表,也没有展示方案组、计算方案明细或条件记录维护。
SAP 官方资料补齐了中断部分:采购组织方案组与供应商方案组共同参与计算方案确定;计算方案控制条件类型顺序、小计、要求和公式;访问顺序按条件表优先级寻找记录;条件记录必须同时满足组织关键字段、定价日期、单位和等级。标准 PB00 / 0002 的典型访问包括 068、016 和 017,但实际系统仍应以当前配置为准。
遇到采购价格异常时,最稳健的方法不是重新输入一个净价,而是打开条件分析,沿着“方案、条件类型、访问顺序、条件表、条件记录”逐层检查。这样不仅能解释当前采购订单,也能找到会影响后续所有采购订单的主数据或配置根因。
SAP 官方教程补充:参考资料
- SAP Learning:Analyzing Price Determination Basics
- SAP Help:Condition Technique
- SAP Help:Price Determination
- SAP Help:Maintaining Conditions
- SAP Help:Maintaining Time-Dependent Conditions
- SAP Help:Conditions in Sourcing Projects and Supplier Quotations
- SAP Help:Calculation Schemas
- SAP Learning:Explaining Pricing Basics


