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


SAP S/4HANA MM 第48课:采购定价过程

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。随后,定价分析显示计算方案 RM0000PB00 显示消息 208 / Condition record has been found。最后,讲师在 SPRO 中打开 PB00 条件类型明细,确认其访问顺序为 0002

但视频到这里突然结束:没有打开 0002 的访问步骤,没有进入条件表,没有维护条件记录,没有演示采购组织与供应商方案组如何确定 RM0000,也没有保存采购订单。因此本文先按时间顺序还原视频真实完成的操作,再从第一处“SAP 官方教程补充”章节开始,依据 SAP Learning 与 SAP Help 补齐缺失内容。官方补充部分不会冒充视频实操,标准示例也不会被写成所有客户系统都必然相同的配置。

视频实录:八项议程与实际完成范围

视频原计划覆盖的八项主题

视频开头列出了八项计划内容:定价过程简介、方案确定、计算方案、方案组、条件记录、条件类型、访问顺序和条件表。从完整课程设计看,这八项内容本应形成一条端到端的采购条件技术链路:

  1. 先说明采购凭证为什么需要定价过程;
  2. 再说明采购组织和供应商如何决定计算方案;
  3. 在计算方案中排列毛价、折扣、附加费、运费和税等条件类型;
  4. 为自动确定的条件类型分配访问顺序;
  5. 由访问顺序按优先级读取一个或多个条件表;
  6. 从命中的条件表中读取有效条件记录;
  7. 把条件值带回采购凭证并继续执行后续计算步骤;
  8. 最终形成净价、有效价以及相关小计。

实际视频只完成了其中一部分。讲师解释了采购价格由多个组成部分构成,在 ME21N 显示了 PB00 毛价,在条件分析中找到了 RM0000,并在 SPRO 的 PB00 明细中看到 0002。视频没有进入方案组、方案确定表、计算方案明细、访问步骤、条件表或条件记录维护画面。

还要特别注意采购订单边界。画面标题始终是 Create Purchase Order,视频没有点击保存,也没有出现采购订单编号。因此,本文只能称它为“采购订单草稿”或“ME21N 示例”,不能写成“已创建并保存采购订单”。同样,系统显示的 15.00 EUR 能证明草稿中完成了价格确定,但不能证明后续保存、审批、输出、收货或发票校验已经发生。

为了避免把课程议程误当作操作证据,本文采用三层标记:

  • 视频已解释:定价过程的含义、价格组成和条件技术链路;
  • 视频已操作:ME21N 条件页签、定价分析、SPRO 条件类型明细;
  • 视频未完成:方案确定、访问步骤、条件表、条件记录以及采购订单保存。

后文凡属于第三层的内容,都明确放在“SAP 官方教程补充”章节中。

视频实录:采购价格为何不是一个孤立字段

采购价格的主要组成部分

视频首先解释,供应商给出的采购价格通常由多个价格要素共同组成。最常见的起点是物料毛价,但企业与供应商之间还可能约定折扣、附加费、运费、税费和现金折扣。SAP 不应把这些要素全部压成一个无法追溯的净价,而是用不同条件类型分别表示,再由计算方案控制处理顺序。

条件类型回答的是“这个价格要素是什么、怎么计算”。例如,毛价可能按数量和价格单位计算,折扣可能按百分比减少某个计算基础,附加费可能是固定金额,运费可能需要计提或单独过账,税费则通常由税码和税过程共同决定。计算方案回答的是“哪些条件允许出现、先处理哪一项、后处理哪一项、形成哪些小计、是否允许手工输入、是否只作统计”。

因此,看到采购订单上的净价时,不应立刻把它等同于某一条主数据价格。更严谨的追溯顺序是:先打开条件页签,看哪些条件类型参与了计算;再打开条件分析,看系统确定了哪个方案、每个条件类型是否执行访问、是否找到记录、是否因为要求未满足而跳过;最后才回到对应主数据或条件记录检查金额、有效期和等级。

视频中还提到“净采购价”和“有效采购价”。两者在界面上可能同时出现,但业务含义并不完全相同。净价通常表示采购条件计算后的项目单价;有效价还可能考虑计划交货成本等对采购决策有影响的要素。具体计算仍取决于计算方案和条件类别,不能只根据字段名称在所有系统中套用同一公式。

视频实录:ME21N 草稿中的完整输入与条件结果

ME21N采购订单草稿的条件页签

视频约在 04:18 后进入 ME21N。讲师先选择标准采购订单类型 NB Standard PO,然后输入以下数据:

字段视频值说明
供应商2012 SV enterprises1仅为培训系统示例供应商
凭证日期15.11.2022视频系统日期
物料125000027物料描述 Citric Acid
采购数量10 L订购单位为升
交货日期21.11.2022示例交货日期
工厂0001培训系统工厂
净价15.00 EUR1 L
行项目净值150.00 EUR10 × 15.00

进入行项目“Conditions”页签后,视频可清楚辨认出以下条件:

  • PB00 Gross Price15.00 EUR / 1 L,条件值 150.00 EUR
  • PBXX Gross Price0.00,画面中为未激活状态;
  • NAVS Non-Deductible Tax0.00 EUR
  • SKTO Cash Discount0.000%
  • 页面还显示净值(含折扣)和净值(含税)均为 150.00 EUR

状态栏同时显示:Effective price is 15.00 EUR, material price is 10.00 EUR。这句话说明有效价与物料价格在该示例中是不同概念,也提醒我们不要只盯着采购订单行项目的一个数字。真正排查时,应同时查看条件明细、有效价、物料价格来源以及是否存在计划交货成本。

视频没有修改 PB00,也没有手工输入另一个毛价。因此,能够确认的是:系统根据现有价格确定逻辑自动提出了 15.00 EUR。但仅从条件页签还不能确认它具体来自合同、采购信息记录还是其他一般条件。要回答来源问题,必须继续打开“Analysis”。

视频实录:从采购订单追溯到条件记录的六层链路

采购价格确定追溯链

讲师随后用概念图说明价格确定的大致路径:采购订单先确定计算方案,计算方案中包含条件类型,条件类型分配访问顺序,访问顺序包含条件表,系统按顺序检查条件表中是否存在有效条件记录,命中的值再回到采购订单。

这条链路可以整理成六层:

  1. 采购凭证上下文:供应商、采购组织、物料、工厂、数量、单位、定价日期和参考凭证等;
  2. 计算方案:决定当前场景允许并处理哪些条件类型;
  3. 条件类型:表示毛价、折扣、附加费、运费、税或其他价格要素;
  4. 访问顺序:规定系统从哪里开始找、下一步去哪里找、何时停止;
  5. 条件表:用关键字段组合定义条件记录的适用范围;
  6. 条件记录:保存实际金额或百分比、币种、价格单位、有效期、等级等业务数据。

排错时必须沿着这六层逐层向下,而不是只在采购订单里反复改价格。如果计算方案没有包含预期条件类型,维护再多条件记录也不会被读取;如果条件类型没有访问顺序,系统就不会自动搜索对应表;如果访问顺序缺少需要的组织层级,条件记录即使存在也无法命中;如果关键字段匹配但记录已过期、单位不一致或数量未达到等级,系统同样不会采用。

视频概念图中的访问顺序示例

视频概念图还给出一个独立示例:采购组织 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 命中

定价分析显示RM0000和PB00命中

讲师在 ME21N 条件页签点击“Analysis”。左侧树的顶层显示过程 RM0000,描述为采购凭证相关过程;其下排列 PB00PBXXVA00VA01GAU1GAU2RB00RC00RA00 等多个条件类型。右侧“Overview”列出每个条件类型的处理消息。

画面中最关键的两行是:

  • PB00:消息 208Condition record has been found
  • PBXX:消息 207Condition 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中定义价格确定过程的路径

接下来,讲师从 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条件类型明细显示访问顺序0002

PB00 明细画面清楚显示:

  • 条件类型:PB00 / Gross Price
  • 访问顺序:0002 / Gross Price
  • 条件类:B / Prices
  • 计算类型:C / Quantity
  • 条件类别:H / Basic price
  • 组条件已选中;
  • 项目条件已选中;
  • 定价过程字段显示 RM0000

视频讲到“这个访问顺序会包含条件表”时结束。它没有点击 Records for Access,没有返回 Define Access Sequences,也没有显示 0002 中具体有哪些访问。因此,068016017 等后续内容只能由 SAP 官方资料补齐,不能写成视频已展示。

视频实录:课程中断点与不可越过的结论边界

第48课视频实际完成与未完成边界

对完整 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. 访问顺序:规定系统按什么优先级寻找记录

访问顺序是一种搜索策略,由一个或多个访问步骤构成。每个访问通常指向一张条件表。系统按访问号从小到大读取,先检查更具体的组合,再检查更一般的组合;若某一步启用相应停止规则并成功找到有效记录,则不再继续搜索该条件类型的后续访问。0002PB00 的标准访问顺序示例。

4. 条件表与条件记录:定义“适用于谁”并保存“具体是多少”

条件表用关键字段组合描述条件记录的适用范围。例如,供应商、物料、采购组织和采购信息记录类别可以共同构成一条采购条件的关键字段。条件记录在该范围下保存金额或百分比、币种、价格单位、有效期、等级和其他控制数据。表结构是配置,表中的业务数据是条件记录,两者不能混用。

一条完整的自动定价路径

当用户创建采购订单时,系统先根据采购上下文确定计算方案。对方案中的每个自动条件类型,系统读取其访问顺序,再根据当前字段值构造条件表关键字,检查定价日期和等级,取得有效条件记录。取得的条件值返回条件类型,计算方案继续后续步骤,形成净价和小计。

任何一层出错都会导致价格异常:方案不对、条件类型缺失、访问顺序未分配、条件表关键字段不匹配、记录无效、单位不同、日期过期或要求未满足。正因如此,采购定价排错应当是链路排错,而不是只检查一个价格字段。

SAP 官方教程补充:SAP Learning 采购定价关系图的中文解读

SAP官方采购定价关系图中文重制

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 说明,创建采购订单或带非时间相关条件的计划协议时,系统会寻找有效条件并插入新凭证。对采购订单,系统可以在采购信息记录、合同(合同释放订单)和一般条件中寻找价格。

定价日期控制

采购价格可以按采购订单凭证日期,也可以按配置采用当天、交货日期或收货日期等日期。供应商采购组织数据和采购信息记录都可能影响定价日期类别。若条件记录“明明有效却不命中”,应在行项目条件控制中确认实际定价日期,不要只比较系统当前日期。

信息记录

采购信息记录保存特定供应商与物料在采购组织或工厂层级的采购关系,包括计划交货时间、价格、条件和订单单位等。标准表 017PB00 / 0002 查找信息记录条件的典型入口。若存在工厂级条件,访问顺序可能优先采用更具体记录。

合同

对于合同释放订单,系统可以采用参考合同项目中的条件。合同项目比一般信息记录更具体时,访问顺序应让合同条件优先。若采购订单没有引用合同,就不能仅因合同主数据存在便假设系统一定读取它;必须看当前凭证上下文和访问字段。

一般条件

企业还可以维护对供应商、发票方或其他组合有效的一般折扣和附加费。SAP Learning 提到可通过 Fiori 的供应商条件维护应用或 SAP GUI 的相应采购主数据菜单维护。它们是否进入当前采购订单,取决于计算方案中是否有对应条件类型及其访问顺序。

最后采购订单价格

SAP Help 还说明,如果没有找到条件,而信息记录记录了最后采购订单,系统可以根据采购定制采用最后采购订单条件。这个行为容易让用户误以为系统读取了当前信息记录价格。排错时应检查信息记录中的最后采购订单引用和买方默认设置,并通过定价分析确认实际来源。

参考凭证与手工修改

复制采购订单、参考报价或合同创建时,条件可能从参考凭证带入;用户也可能在条件类型允许时手工修改。价格来源诊断必须把“自动找到条件记录”“从参考凭证复制”“采用最后采购订单”“手工修改”区分开,不能只看最终金额。

SAP 官方教程补充:从零配置自定义采购条件的实施顺序

视频没有演示自定义配置。下面给出依据条件技术依赖关系整理的实施顺序,用于沙箱或开发系统设计;生产系统变更仍应遵循企业传输、测试和审批流程。

第一步:明确业务要素和计算规则

先用业务语言写清楚:这是毛价、折扣、附加费还是运费;按金额、百分比还是数量计算;适用于抬头还是项目;需要自动读取还是只能手工输入;以哪个步骤为计算基础;是否影响净价、打印和会计。若业务规则不清楚,后面的技术对象只会把歧义固化进系统。

第二步:设计条件表关键字段

决定价格由哪些维度区分,例如供应商、采购组织、工厂、物料、物料组或信息记录类别。优先复用标准条件表;只有标准组合无法表达业务时才创建自定义表。字段过多会让维护量爆炸,字段过少又会让不同场景互相覆盖。

第三步:创建访问顺序

把条件表按“更具体优先、更一般兜后”的逻辑排列,设置访问号、要求和排他标识。为每一步记录预期命中案例和不命中案例。不要依赖记忆判断优先级,应把访问顺序作为可测试的搜索策略。

第四步:创建或复制条件类型

选择最接近的标准条件类型作为参考,核对条件类、计算类型、条件类别、正负号、访问顺序、组条件、抬头/项目、手工修改限制、等级基础、删除权限与相关例程。自定义对象通常使用客户命名空间,避免直接改动标准对象导致升级与支持风险。

第五步:把条件类型放入计算方案

为条件类型分配步骤和计数器,设置 From/To、小计、要求、手工、必输、统计、打印、会计键和替代公式。新增折扣时特别检查计算基础;新增运费时特别检查计划交货成本、计提和会计影响;新增税相关条件时必须与税过程共同设计。

第六步:确定计算方案

维护采购组织方案组、供应商方案组及方案确定组合。用至少两类供应商和两个采购组织测试,防止新方案错误影响不相关业务。若只在一个测试供应商上成功,不能证明方案确定全局正确。

第七步:维护条件记录

按条件类型和表组合维护金额、币种、价格单位、有效期、等级及上下限。为每条测试记录保存关键字段清单,避免因为维护在错误采购组织或工厂层级而误判配置。

第八步:用采购订单和条件分析验收

创建测试采购订单,记录所有输入字段、定价日期、确定的计算方案、每个访问的结果、最终条件值、净价和有效价。覆盖命中第一访问、命中后续访问、完全不命中、过期、单位换算、等级临界值和手工覆盖等场景。

第九步:验证下游影响

保存采购订单后,还要验证输出给供应商的条件、收货和发票校验中的价格表现、价格差异、计划交货成本及会计过账。采购订单上“看起来正确”不代表整条业务链已经正确。

SAP 官方教程补充:采购价格异常的七步诊断法

采购价格异常七步诊断法

当采购订单价格不符合预期时,建议按固定顺序诊断,避免在多个主数据和配置界面中无目的搜索。

第一步:打开条件分析,确认实际计算方案

先记录过程名称。若预期使用自定义方案却实际得到 RM0000,问题首先在方案组或方案确定,不应直接修改条件记录。

第二步:定位目标条件类型

确认 PB00 或自定义条件类型是否存在于方案中、是否被要求跳过、是否被标记为纯手工或统计。阅读消息文本和消息号,不要只看条件值是否为零。

第三步:检查条件类型的访问顺序

确认目标条件类型是否分配了正确访问顺序。若没有访问顺序,自动条件记录不会被搜索;若分配了错误访问顺序,系统可能查完全不同的关键字段组合。

第四步:展开访问并检查条件表

查看系统实际执行了哪些访问,是否因为字段初始化而跳过,是否在更一般的表提前命中。对比条件表关键字段和当前采购订单字段值。

第五步:检查条件记录

核对供应商、采购组织、工厂、物料、信息记录类别、币种、价格单位和计量单位。不要只查“有一条价格”,要确认它位于系统实际访问的那张表和那组关键字段中。

第六步:检查定价日期、有效期和等级

记录可能因为定价日期不在有效期内而失效,也可能因为数量、金额、重量或体积没有进入预期等级。组条件还可能改变等级基础的汇总范围。

第七步:检查手工修改和价格来源

确认价格是否从参考凭证、最后采购订单、合同或信息记录复制,是否被用户手工覆盖,是否执行过新价格确定。必要时比较条件来源标识和变更记录。

这七步的核心原则是沿“方案 → 条件类型 → 访问顺序 → 条件表 → 条件记录”逐层追溯。只在采购订单里重复输入净价,会掩盖主数据或配置问题,并让后续采购订单继续出错。

SAP 官方教程补充:可复现的测试脚本与验收清单

为了让测试结果可以被复核,建议在开发或质量系统按下面步骤执行,并把每一步截图或导出结果与测试用例关联。

测试数据准备

  • 一个有效供应商,已扩展到目标采购组织;
  • 一个有效物料,已扩展到目标工厂和采购视图;
  • 采购组织、采购组、工厂和公司代码组织关系正确;
  • 供应商方案组和采购组织方案组已经维护;
  • 目标计算方案和条件类型已传输到测试系统;
  • 至少两条具有不同具体程度的条件记录;
  • 一条过期记录、一条未来生效记录和一组数量等级记录。

基准场景

创建标准采购订单,输入供应商、采购组织、物料、工厂、数量、交货日期和单位。不要先手工输入价格。打开条件分析,记录计算方案、目标条件类型、访问步骤、命中表、条件记录键、定价日期和最终金额。

基准场景应能回答:系统为什么选择这个方案,为什么在这一访问命中,为什么得到这个金额。若无法回答,测试不能只凭“最终价格正确”判定通过。

优先级场景

同时维护工厂级记录和不含工厂的通用记录,验证更具体记录是否优先。删除或使具体记录失效,再验证系统是否按访问顺序回退到一般记录。每次只改变一个变量,避免无法判断命中变化的原因。

有效期场景

分别把定价日期设置在记录生效前、有效期内和失效后,验证系统选择。若系统支持不同定价日期类别,还应覆盖凭证日期、交货日期或其他配置日期。

等级场景

测试每个数量临界值的前一单位、临界值本身和后一单位。例如等级从 100 件开始,则至少测试 99、100、101。若启用组条件,再用多个项目合计达到等级,检查系统是按单项还是汇总数量计算。

单位与价格单位场景

用基本计量单位、订购单位和替代单位分别创建采购订单,验证换算。测试 110100 等不同价格单位,防止金额放大或缩小。保留物料单位换算和信息记录订单单位截图。

手工修改场景

在条件类型允许的情况下修改价格,验证上下限、消息类型和变更记录。重新执行价格确定,观察手工值是否保留、覆盖或删除。不同的重新定价选项可能产生不同结果,必须写入测试步骤。

保存与下游场景

视频没有保存采购订单,正式验收则应保存并记录采购订单号。随后验证输出、审批、收货、发票校验和会计影响。若条件涉及运费或税,必须检查相应后续凭证,而不能只看采购订单净价。

SAP 官方教程补充:常见问题

为什么条件记录存在,PB00 仍然取不到价格?

可能原因包括:当前计算方案没有 PB00PB00 未分配正确访问顺序;访问需要的字段为空;记录维护在另一个采购组织、工厂或信息记录类别;定价日期不在有效期;数量未达到等级;单位或价格单位不匹配;访问要求未满足;更早的访问已经排他命中。应通过条件分析逐层定位,而不是盲目重建记录。

为什么系统取到信息记录价格,而不是合同价格?

先确认采购订单是否真正引用合同,再检查 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 证明了链路的前三个跳转:采购订单草稿使用 RM0000PB00 找到条件记录,PB00 分配 0002。视频没有证明后续命中的是哪张表,也没有展示方案组、计算方案明细或条件记录维护。

SAP 官方资料补齐了中断部分:采购组织方案组与供应商方案组共同参与计算方案确定;计算方案控制条件类型顺序、小计、要求和公式;访问顺序按条件表优先级寻找记录;条件记录必须同时满足组织关键字段、定价日期、单位和等级。标准 PB00 / 0002 的典型访问包括 068016017,但实际系统仍应以当前配置为准。

遇到采购价格异常时,最稳健的方法不是重新输入一个净价,而是打开条件分析,沿着“方案、条件类型、访问顺序、条件表、条件记录”逐层检查。这样不仅能解释当前采购订单,也能找到会影响后续所有采购订单的主数据或配置根因。

SAP 官方教程补充:参考资料

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
MCP自动发表文章
上一篇:SAP S/4HANA MM模块培训 47 - 分割评估:评估类别、类型与部分库存计价
下一篇:SAP S/4HANA MM模块培训 49 - 自动科目确定:MM-FI集成、事务键与OBYC
评论列表

发表评论

评论内容
昵称:
验证码:
验证码
关联文章

SAP S/4HANA MM模块培训 48 - 采购定价过程计算方案PB00访问顺序
SAP S/4HANA MM模块培训 55 - 新输出管理:BRFplus、OPD采购订单输出
SAP S/4HANA MM模块培训 51 - 采购用户参数:SU3默认值MSV、EVO、EFB
SAP S/4HANA MM模块培训 09 - 供应来源采购信息记录(PIR)
SAP S/4HANA MM模块培训 32 - MM组织结构定制:公司代码、工厂采购组织
SAP S/4HANA MM模块培训 46 - 采购输出确定:消息条件、打印预览Output Management
SAP S/4HANA MM模块培训 08 - 外部服务采购流程服务主数据
SAP S/4HANA MM模块培训 43 - 制造商零件编号MPN:主数据、采购控制AMPL
SAP S/4HANA MM模块培训 16 - MRP控制参数:处理键、计划模式过程控制
SAP S/4HANA MM模块培训 42 - 版本管理:采购申请、采购凭证变更追踪
SAP S/4HANA MM模块培训 57 - MM-PP集成:MRP采购、生产预留、外部加工货物移动
SAP S/4HANA MM模块培训 56 - 灵活工作流:采购订单审批、场景激活My Inbox
SAP S/4HANA MM模块培训 35 - 采购事务定制:凭证类型、编号范围字段控制
SAP S/4HANA MM模块培训 52 - 预付款履约保留款
SAP S/4HANA MM模块培训 18 - 优化采购采购申请供应源分配转单入口
SAP S/4HANA MM模块培训 01 - 介绍ERP SAP MM模块
SAP S/4HANA MM模块培训 03 - 企业结构采购组织配置
SAP S/4HANA MM模块培训 58 - MMQM集成:采购收货检验、检验批质量信息记录
SAP S/4HANA MM模块培训 06 - 库存物料采购询价创建
SAP S/4HANA MM模块培训 19 - 采购订单监控:供应商确认、交期MRP

热门标签
.NET Core .NET Reactor ag-grid AI发布 api安全 ASP.NET Core C#DLL加密 C#播放声音 C#代码混淆 C#代码加密 ChromeDriver Codex DateTime DBeaver devexpress devTool DLL混淆 edge.js EF EFCore Electron element-ui el-form el-table excel FastReport FileStream FolderBrowerDialog FolderSelectDialog form提交 git gridcontrol gridview input javascript json字符串 JS转换对象JSON jwt JWT授权 linq log Math MCP mitmproxy MVC MySQL Navicat netstat nginx node_modules NSwag Nuget Nuget镜像 number PowerShell pyinstaller python pythoncom python爬虫 python抓包 pywin32 redis Requests-html RestSharp Selenium sql SQL Server Swagger to-cms Visual Studio VSCode vue VueRouter vue路由 VUE页面通讯 Webpack Windows Windows服务 winform wmi xlrd yaml YESCMS YESWEB开发框架 白象 表单提交 播放声音 打开URL 代码混淆 弹窗提醒 端口占用 对象转换 分布式 公共字典 机器码 进程排查 静态资源 开发指南 路由参数 密钥 配置教程 配置文件 权限 人工智能 任务 任务调度 日期间隔 日志 日志记录 省市区 授权验证 数据库 四舍五入 文案 文件读取 文件夹选择 文件目录选择 问题排查 行政区域数据 页面通讯 中间件 CSharp 事务锁 工单系统 并发控制 重复提交 CMS Markdig Markdown markdown-it marked 技术选型 VS Code 开发工具 源代码管理 版本控制 Docker PostgreSQL 时区 部署排查 CMS架构 EF Core 主题系统 二次开发 插件系统 容器 运维命令 镜像清理 Linux NAS 远程挂载 飞牛 fnOS S/4HANA SAP GUI SAP HANA SAP R/3 SAP入门 SAP版本 ERP SAP SAP MM 库存管理 物料管理 采购管理 入门教程 SAP S/4HANA SPRO 企业结构 采购组织 MM01 物料主数据 物料类型 BP分组 业务伙伴 供应商主数据 ME41 RFQ 库存物料 采购流程 ME51 消耗性物料 科目分配 采购申请 AC03 ML81N 外部服务 服务主数据 Business Partner SAP培训 ME51N MM模块 Lean Services MM-SRV 外部服务采购 PIR 供应来源 采购主数据 采购信息记录 ME31K 框架协议 计划协议 采购合同 ME01 供应来源确定 货源清单 MEQ1 供应源确定 配额安排 配额评分 MD04 MD21 MRP 计划文件 需求计划 批量程序 MD01N MD02 MRP Live MD05 MM 物料计划 优化采购 供应源 采购订单 ME2A 供应商确认 采购监控 Flexible Workflow 凭证释放 采购审批 释放策略 实地盘点 物料凭证 货物移动 MIGO 收货 移动类型 已撤回 供应商退货 货物发出 STO 库存转储 转移过账 生产订单 预留 GR/IR MIRO 供应商发票 物流发票校验 OMR2 税码 FI PP SD 实操教程 MRBR OMR6 发票差异 交货成本 后续借记 MI01 实物盘点 盘点差异 公司代码 工厂 组织结构 OMS2 主数据定制 自动科目确定 BP角色 CVI 伙伴确定 编号范围 凭证类型 字段选择 FBN1 OMBT OMC2 会计凭证 OMJJ BOM 委外加工 项目类别L MRKO 供应商寄售 特殊库存K MRKON PIPE Pipeline 特殊库存P ERS MRIS 发票计划 周期性结算 里程碑付款 变更追踪 版本管理 采购凭证 SFTP WebDAV 网盘 飞牛fnOS AMPL HERS MPN 中文教程 库存确定 可用性检查 缺件检查 Output Management 消息确定 输出确定 分割评估 库存计价 评估类别 评估类型 PB00 RM0000 条件技术 采购定价 MM-FI集成 OBYC 库存估价 文本类型 文本采用 EFB EVO MSV SU3 用户参数 发票校验 合同参照 履约保留款 特别总账 预付款 Fiori Launchpad SAP Fiori 应用导航 用户体验 LSMW LTMC Migration Cockpit 数据迁移 BRFplus OPD Output Control My Inbox 审批流程 灵活工作流 SAP PP 外部加工 SAP QM 检验批 质量信息记录 采购收货 SAP PM 维护BOM 维护订单 SAP SD SAP Service 端到端流程
联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码