SAP S/4HANA MM模块培训 44 - 库存确定:库存地点、库存类型与领用策略

SAP S/4HANA MM模块培训 44 - 库存确定:库存地点、库存类型与领用策略
在 SAP S/4HANA 的日常发料、领料和转储业务中,一个很常见的问题是:同一物料在多个库存地点、多个库存类型甚至多种特殊库存中都有数量,系统究竟应该先用哪一部分?如果完全依赖操作人员手工选择,不仅效率低,而且每个人对“先进先出”“先用寄售库存”“先清空某个库位”等规则的理解可能不同。库存确定(Stock Determination)的价值,就是把这些选择规则转化为可重复执行的系统策略。
本课先用一个简化示例解释库存确定,再进入 SAP GUI,用 MM60 选择测试物料、用 MMBE 核对三个库存地点的现有库存,最后在 MIGO 的 201 发料场景中输入 120 L 需求并触发库存确定。系统没有随意从三个地点取货,而是按照预先存在的策略,把 100 L 建议到 RM02,再把剩余 20 L 建议到 RM01。
这篇文章会逐步还原视频中的每一个关键动作,并结合 SAP 官方教程补齐视频没有展开的配置架构、组与规则的关系、策略表头与项目、在线和后台处理、支持的库存类别以及上线测试方法。为了保持事实边界,凡是视频没有实际操作、而是根据 SAP 官方资料补充的内容,二级标题都明确以“SAP 官方教程补充”开头。

一、先明确本课真正解决的问题
库存确定不是简单地“查看哪里有库存”,也不是在所有库存里随便挑一个数量够的地点。它解决的是一个更具体的问题:当某个业务应用已经产生物料需求时,系统如何根据物料、工厂、调用业务和数量等上下文,找到适用的库存确定策略,再按策略定义的顺序提出库存来源建议。
可以把它理解成三层问题。第一层是业务需求,例如成本中心领料、生产订单发料、转储或交货。第二层是策略定位,即这次需求应该使用哪套规则。第三层是策略执行,即在允许的库存地点和库存类别中按顺序查找,第一来源不足时是否继续查找下一来源,以及最终怎样拆成一行或多行建议。
视频的实操只覆盖第三层的可见结果:用户在 MIGO 中输入需求,点击“库存确定”按钮,然后看到系统生成两行库存地点分配。视频没有进入 IMG 展示策略如何创建,也没有保存或过账物料凭证。因此,正确的学习目标不是死记某个按钮,而是看懂“为什么系统能给出这两行建议,以及这两行建议仍然只是待过账项目”。
二、库存确定的核心逻辑

库存确定可以概括为“需求上下文+策略定位+顺序执行”。需求上下文至少包含物料、工厂、业务事务或移动场景、需求数量;在某些应用中还会包含特殊库存、仓库管理或其他业务条件。系统根据这些信息取得物料上的库存确定组,以及调用应用对应的库存确定规则,再用工厂、组和规则的组合找到策略。
找到策略后,系统不是一次性把总库存合并成一个数字,而是按策略项目逐行评估库存来源。每个项目可以代表某个库存地点、某类库存,或者两者的组合。系统先检查优先级最高的项目是否可用、是否有足量库存;不足时根据策略继续检查后续项目,直到满足需求,或者没有更多可用来源。
因此,库存确定的结果可能只有一行,也可能拆成多行。只要第一优先来源足够,系统就不需要访问第二来源;如果第一来源只有部分数量,系统会先使用这部分,再把剩余需求交给下一优先级。这个顺序不是由库存地点代码的字母或数字大小决定的,也不是由 MMBE 的显示顺序决定的,而是由策略配置决定的。
需要特别注意:系统给出建议并不等于业务已经完成。在线场景中,建议通常还会显示在调用应用里,用户可以检查或在允许的情况下调整;只有调用应用执行过账并成功生成凭证,库存数量才真正发生变化。视频在建议出现后结束,所以本文把结果称为“库存确定建议”,不称为“发料完成”。
三、视频中的 ABC123 优先级示例

视频用物料 ABC123 说明最基本的优先级逻辑。假设该物料总共有 100 个单位,分布在三个库存地点:SL1 有 20,SL2 有 50,SL3 有 30。策略规定的查找顺序是 SL3、SL1、SL2。这里的关键不是三个地点的库存总和,而是系统访问它们的次序。
如果需求是 10,SL3 的 30 已经足够,结果只需要从 SL3 建议 10;SL1 和 SL2 不会参与。如果需求是 40,系统先从 SL3 建议 30,仍缺 10,于是继续到 SL1 建议 10。如果需求是 70,系统会依次使用 SL3 的 30、SL1 的 20,再从 SL2 建议 20。若需求超过 100,所有允许来源都被检查后仍然存在缺口,系统如何提示或处理要看调用应用、处理模式和具体配置,不能只凭这个示例推断一定会怎样过账。
这个例子还揭示了一个容易被忽略的事实:库存地点的优先级是一项业务决策。企业可能希望先清理临时库位,可能希望优先使用离生产线最近的库位,也可能希望先用自有库存或先用寄售库存。系统只负责稳定执行已经定义的规则;规则本身是否合理,需要物料、仓储、生产、财务和内控人员共同确认。
四、库存确定可以服务哪些业务应用

视频指出,库存确定并不只属于 MM。课程画面列举了库存管理、交货、仓库管理、重复制造、生产订单、物料暂存和看板等应用方向,但本课只在 MM 库存管理的 MIGO 发料流程中演示。这个限定非常重要,因为不同应用如何取得“库存确定规则”、如何显示建议、是否允许人工干预,都可能不同。
从学习角度看,可以先把 MM-IM 场景掌握清楚:物料在多个库存地点有库存,用户在 MIGO 发料时让系统按策略拆分来源。之后再扩展到生产领料、交货拣配或仓库管理集成。不要把 MIGO 的界面步骤原样套用到所有应用,也不要因为某套策略在 MM-IM 中有效,就假设它会自动覆盖生产、销售和仓储的所有调用点。
应用范围越广,配置治理越需要谨慎。同一个物料可能在成本中心领料时优先使用普通库存,在生产发料时优先使用线边库,在某些供应场景下又需要考虑寄售库存。库存确定组代表物料侧的分类,规则代表调用业务侧的分类,两者组合后才能让同一物料在不同业务里采用不同策略。
五、库存确定组、规则与策略是什么关系

视频在理论部分介绍了三个关键词:库存确定组、库存确定规则和库存确定策略。可以先用一句话记忆:组来自物料,规则来自业务,策略是二者在某个工厂中的交汇结果。
库存确定组用于给物料分类。例如,一组原材料可能遵循“先线边库、再中央库”的顺序;另一组辅助物资可能遵循“先寄售、再自有”的顺序。把物料归入不同组,可以避免为每个物料分别维护一套完全重复的策略。
库存确定规则用于区分调用场景。成本中心领料、生产订单发料、转储或其他应用可能需要不同规则。规则不是库存来源清单本身,而是业务应用带入策略查找过程的一个键。它和物料上的组共同决定使用哪一套策略。
库存确定策略则定义真正的查找与分配逻辑:哪些库存地点或库存类别可以被考虑、先后顺序是什么、采用在线还是后台处理、第一项不足时如何继续等。由于策略还与工厂相关,同一组和同一规则在不同工厂可以有不同的库存布局与优先顺序。
六、视频中的 400 件拆分示意应该怎样读

视频还用较大的需求示意说明,库存确定可以跨多个库存来源拆分数量。示意图的重点不在某个固定代码,而在于系统可以依次评估自有库存、寄售库存、不同库存地点或其他允许来源,把总需求拆成若干建议项目。
理解这类图时,建议逐行问四个问题:当前策略项目代表什么库存来源?该来源在当前业务中是否允许使用?可用数量是多少?使用后还剩多少需求?只要把剩余需求一路往下传,最终结果就很清楚。这样也能快速定位异常:如果系统跳过了本应优先的来源,要检查策略项目和可用量;如果系统选了不应该使用的特殊库存,要检查允许的库存类别和调用规则。
需要避免把“库存存在”与“库存可用于当前策略”混为一谈。MMBE 能显示某些库存数量,并不自动说明库存确定一定会使用它。库存类别、特殊库存标识、业务应用限制、主数据和配置都会影响是否可选。反过来,即使策略列出了某个来源,如果实际没有可用量,系统也只能继续查找下一项或留下缺口。
七、系统演示第一步:用 MM60 选取测试物料

进入实操后,讲师首先选取系统里已经存在的物料。画面中可核对到物料编号为 125000073,工厂为 0001,物料类型为 ROH,物料描述是用于库存确定的测试物料。视频没有创建这个物料,也没有展示库存确定组字段如何维护,只是把它作为已准备好的测试主数据使用。
这一步的意义是固定测试对象。库存确定结果高度依赖物料主数据和工厂,所以在复现实验前,应先确认物料编号、工厂、基本计量单位、物料类型,以及该物料是否已经在相关工厂视图中维护。如果误用另一个相似物料,即使库存地点和数量看起来一样,也可能因为库存确定组不同而得到完全不同的建议。
MM60 在这里主要用于筛选和确认物料。真正判断当前库存要进入 MMBE,判断策略配置则要查看物料相关字段和 IMG 设置。把这三个层次分开,有助于排障:MM60 解决“我选的是谁”,MMBE 解决“它现在在哪里、有多少”,库存确定策略解决“这次业务应该先用哪里”。
八、系统演示第二步:用 MMBE 建立库存基线

讲师随后进入 MMBE,输入同一个物料和工厂。库存概览显示该物料分布在 RM01、RM02、RM03 三个库存地点,每个地点都有 100 L 非限制使用库存,总量为 300 L。这个画面是理解后续结果的基线。
为什么必须先建立基线?因为触发库存确定后看到“RM02 100 L、RM01 20 L”,只有结合基线才能判断策略顺序。三个地点都有相同的 100 L,系统却先选 RM02,说明它不是按库存最多、代码最小或 MMBE 第一行来决定;它是在执行预先维护的优先级。RM02 用完 100 L 后,剩余 20 L 再进入 RM01,进一步证明 RM01 是下一优先来源之一。
视频没有展示 RM03 在策略中的确切位置。我们只能确定这次 120 L 需求没有用到 RM03,不能仅凭结果断言 RM03 一定排在最后,也不能断言它被策略排除。若 RM02 和 RM01 已满足全部需求,系统没有必要继续访问后续项目。要确认 RM03 的真实优先级,必须查看策略配置或设计一个更大的测试需求。
在真实项目中,建议把测试前的 MMBE 快照、测试输入和结果保存下来。否则多人并行操作、后台移动或其他业务过账可能改变库存,导致同一测试重复执行时结果不同。库存确定测试必须建立在可追溯的库存基线上,而不是只记录最后的两行建议。
九、系统演示第三步:在 MIGO 输入发料需求

视频在 MIGO 中选择“发货/其他”,使用移动类型 201,输入物料 125000073、工厂 0001 和数量 120 L。移动类型 201 通常用于对成本中心发料,因此实际业务还需要完整的账户分配等数据;本课关注库存来源选择,并未展示完整过账验证。
触发前最关键的界面特征,是库存地点没有被用户手工固定。因为本次希望让库存确定策略来决定来源,如果先在项目中指定某个库存地点,就可能改变或限制系统的查找行为。用户完成物料、数量、工厂、移动类型等上下文后,点击界面中的“库存确定”按钮,系统才执行策略并回写建议项目。
数量 120 L 是一个有意设计的测试值。RM02 只有 100 L,如果需求小于或等于 100,结果可能只有一行,无法验证第一来源不足后是否继续拆分。120 L 迫使系统在首选地点之外再查找 20 L,因此能同时验证首选来源和下一来源。
在复现实验时,还应检查计量单位。视频中的库存和需求均以 L 表示,系统会依据物料主数据和输入单位进行数量处理。如果使用替代计量单位,换算关系和舍入可能影响项目数量。本文只还原视频中的 120 L,不延伸推断其他单位下的结果。
十、系统演示第四步:读取库存确定结果

点击“库存确定”后,MIGO 项目区出现两行建议:第一行库存地点 RM02,数量 100 L;第二行库存地点 RM01,数量 20 L。两行数量合计 120 L,恰好覆盖输入需求。结合 MMBE 基线,可得到以下推理链:RM02 是首先被使用的来源;RM02 可用 100 L,小于需求;系统把剩余 20 L 继续分配到 RM01;当前需求因此完全满足。
这个结果验证的是“策略成功被调用并生成了预期拆分”,还没有验证“物料凭证成功过账”。视频没有点击过账按钮,没有显示物料凭证号,也没有返回 MMBE 查看库存是否从 300 L 下降到 180 L。因此,任何培训记录或测试证据都应把“确定结果”与“过账结果”分成两个检查点。
讲师解释,系统先建议 RM02 而不是 RM01,是因为已经存在的策略设置;后续课程才会展示这些设置。这也意味着本课无法从画面反向还原完整策略。例如,我们不知道策略是否还有 RM03 项目、是否允许其他库存类别、采用什么处理模式,也不知道组和规则的实际代码。本文后半部分的配置说明来自 SAP 官方教程,并明确标注为补充。
十一、如何把视频实验变成可复核测试用例
视频内容可以整理成一条非常清晰的测试用例。前置条件是物料 125000073 在工厂 0001 可用,RM01、RM02、RM03 的非限制使用库存各为 100 L,并且相关库存确定配置已存在。输入是 MIGO 发货/其他、移动类型 201、需求 120 L。操作是保留库存地点由系统确定并点击“库存确定”。预期结果是 RM02 100 L、RM01 20 L,总计 120 L。
测试时至少要核对五件事。第一,物料和工厂与基线一致。第二,移动类型及调用业务与规则分配一致。第三,需求数量和单位正确。第四,系统生成的项目行、库存地点、库存类别和数量符合预期。第五,如果计划测试过账,必须另行核对凭证、会计影响、库存变化和冲销路径。
如果结果只出现 RM02 100 L 而剩余 20 L 未分配,可能是后续策略项目不存在、库存类别不允许、RM01 不可用,或调用应用对缺量有其他处理。如果结果从 RM01 开始,则应检查当前物料的库存确定组、业务规则、工厂组合以及策略优先级,而不是先怀疑 MMBE 显示错误。
如果点击按钮后完全没有触发,应先确认当前应用与移动场景是否支持库存确定、规则是否已分配、物料是否有组、工厂+组+规则的策略是否存在。若策略能找到但项目为空,再检查项目明细和库存可用状态。按“调用前提—策略键—策略内容—实际库存”的顺序排查,比在多个配置页面中无目的搜索更可靠。
SAP 官方教程补充:完整配置链路

SAP Learning 的官方课程说明,库存确定的核心配置位于 Materials Management → Inventory Management and Physical Inventory → Stock Determination。典型配置链可以整理为五步:定义工厂相关的库存确定组;定义库存确定规则;把组维护到物料或产品主数据;把规则分配给调用事件或应用;最后为“工厂+组+规则”的组合维护库存确定策略。
这里不能把顺序理解为每次业务运行时的界面点击顺序,而应理解为配置依赖。没有组,系统无法从物料侧确定分类;没有规则,调用应用无法表达业务场景;没有工厂+组+规则对应的策略,即使前两个键都存在,系统也没有可执行的查找清单。
在项目设计阶段,建议先从业务场景反推,而不是先创建大量代码。先列出每个工厂有哪些库存来源、哪些业务需要不同顺序、哪些物料可以共用一套规则,再设计组与规则的最小集合。过度细分会导致组合数量膨胀,维护和测试成本迅速上升;分组过粗又会把本应不同的物料或业务强行放在同一策略中。
官方页面还说明,库存确定不仅可用于库存管理,也可与其他应用结合,因此“规则如何分配”必须按具体应用核对。本文不提供一个万能的规则分配步骤,原因是视频只演示 MM-IM,SAP 官方资料也明确指出不同应用的分配方式不同。
官方参考:SAP Learning:Configuring Stock Determination。
SAP 官方教程补充:库存确定组的设计与主数据责任
库存确定组是物料侧的策略分类键。它最适合表达“哪些物料在库存来源选择上应遵循同一原则”。例如,同一工厂的关键原材料可能优先使用线边库,再使用中央原料库;低价值耗材可能优先清理临时库;某类辅助物资可能优先使用寄售库存。只要它们的来源顺序和控制方式一致,就可以共用一个组。
组通常是工厂相关的,这一点很符合业务现实。同一个物料在不同工厂可能有完全不同的仓储布局和供应模式:A 工厂有线边库和中央库,B 工厂只有一个原料库。即使物料编号相同,也不应假设两个工厂必然使用同一策略。
主数据责任必须清楚。物料主数据团队负责把正确的组维护到正确的物料和工厂;配置团队负责保证该组在目标工厂中有策略;业务团队负责确认分组原则。若只完成配置但漏掉主数据,运行时系统无法定位预期策略;若主数据填错组,系统可能稳定地执行一套完全错误的顺序,这比显式报错更危险。
SAP Help 说明,库存确定组可以在物料主数据的相关工厂视图中维护,例如 MRP 2 或 Plant Data/Storage 2;具体字段位置会因版本、业务对象和界面而异。实施时应以当前系统的字段帮助、配置文档和授权为准,不应只按旧版截图寻找。
SAP 官方教程补充:库存确定规则的设计与业务分配
库存确定规则是业务调用侧的策略分类键。它回答的不是“这是什么物料”,而是“这次为什么要领用或移动库存”。同一个物料在成本中心领料、生产订单发料、交货或转储时,业务目的不同,允许的库存来源和优先顺序也可能不同,因此需要规则参与策略定位。
设计规则时应围绕真正不同的业务逻辑。若两个移动场景始终使用相同来源顺序、相同库存类别和相同处理方式,就没有必要为了代码好看而创建两个规则。相反,如果一个场景允许寄售库存而另一个不允许,或者生产发料必须优先线边库而成本中心领料必须优先普通库,就应明确区分。
规则需要分配给调用事件或应用。对 MM-IM 来说,视频使用移动类型 201,但视频没有展示规则分配页面,也没有显示规则代码。因此本文不声称“201 必然对应某个固定规则”。项目人员应在自己的系统中检查移动类型或相关调用配置,确认实际传入的规则。
排障时可把规则看作“业务来电显示”。物料上的组正确、策略也存在,但如果调用业务带入了另一个规则,系统自然会找到另一套组合,或者根本找不到策略。只检查物料主数据而不检查调用规则,是库存确定问题中常见的盲点。
SAP 官方教程补充:组与规则形成二维策略矩阵

把库存确定组放在行、库存确定规则放在列,就能得到一个二维矩阵。每个单元格代表某个工厂中的一套策略。例如,组 0001 的物料在库存管理规则 IM1 下使用策略 0001/IM1,在生产业务规则 PP2 下可以使用另一套策略 0001/PP2。组 0002 的物料又可以分别使用 0002/IM1 和 0002/PP2。
这套模型的优势是复用。物料不需要知道每个业务应用的具体库存顺序,只需知道自己属于哪个组;业务应用不需要知道每个物料的特性,只需传入代表当前场景的规则。系统在工厂上下文中把两者组合起来,即可取得策略。
矩阵也带来治理要求。假设有 10 个组和 8 个规则,理论上可能出现 80 个组合,但实际业务不一定需要全部维护。应明确哪些组合有效、哪些组合故意留空,并为每个有效组合建立测试用例。否则,一次新增组或规则可能在某些业务里没有对应策略,直到生产运行才暴露。
策略代码本身不是最重要的,重要的是组合语义和责任。建议在设计文档中记录:工厂、组的业务含义、规则的业务含义、策略优先级、允许库存类别、处理模式、测试用例和审批人。这样即使代码名称简短,后续维护者也能理解为什么要这样配置。
SAP 官方教程补充:库存来源与特殊库存类别

SAP Help 列举了库存确定可考虑的库存类别,包括非限制使用库存、供应商寄售库存 K、管道物料 P、销售订单库存 E 和项目库存 Q。这个列表说明库存确定不仅能在多个库存地点间排序,也能在不同所有权或业务归属的库存之间进行策略化选择。
非限制使用库存是最容易理解的普通库存,但“存在数量”仍不等于“当前业务一定允许使用”。寄售库存属于供应商所有,领用会形成相应结算关系;销售订单库存和项目库存带有特定归属,不能像普通自有库存那样随意用于其他需求;管道物料依赖相应主数据和采购条件。策略配置必须与这些业务和财务前提一致。
视频中的 MMBE 与 MIGO 画面展示的是 RM01、RM02、RM03 的普通库存地点分配,没有演示 K、P、E 或 Q。本文列出这些类别是为了完整解释 SAP 官方能力,不代表测试物料 125000073 已配置这些来源,也不代表移动类型 201 在当前系统中会自动使用它们。
配置时应采用“明确允许”思路。对每个策略项目写清库存类别、所有权、账户影响和适用场景,再决定顺序。不要为了提高命中率而把所有类别都放入策略。错误使用特殊库存可能带来结算、成本对象或审计问题,即使数量层面看似满足了需求。
官方参考:SAP Help:Stock Determination。
SAP 官方教程补充:在线处理与后台处理

SAP Help 对在线和后台处理做了明确区分。在线处理会把库存确定结果展示给用户,用户可以查看,并在系统允许的范围内调整建议;后台处理由系统直接执行确定,用户不能在确定阶段介入。视频中的 MIGO 演示显然属于可见、可检查的在线交互:点击按钮后,两行建议显示在项目区。
在线处理适合策略调试、上线初期和异常需要人工判断的场景。它的优点是透明,用户能看到系统为何拆分,也容易收集问题证据;缺点是依赖用户正确理解结果,如果允许随意修改,还可能削弱策略的一致性。
后台处理适合规则成熟、业务量大、结果稳定的自动化流程。它的优点是效率高、执行一致;风险是错误策略会被快速、批量地执行,而用户在确定阶段没有机会拦截。因此,从在线验证切换到后台处理不只是性能选择,也是一项控制变更。
项目上线时可以按风险分阶段:先在质量系统用完整场景矩阵测试;生产初期保留可观察的处理方式和监控;确认结果稳定后,再根据业务量与控制要求考虑后台化。无论选择哪种模式,都应保留策略版本、传输记录、测试证据和回滚方案。
SAP 官方教程补充:策略表头与项目明细

SAP 官方教程把库存确定策略分为表头控制和项目明细。表头负责整个策略的运行方式,例如在线还是后台处理、与仓库管理的交互、某些特殊领用控制以及用户出口。项目明细负责真正的搜索路径,即哪些库存来源可以被考虑以及它们的优先级。
理解这两个层次可以避免配置错位。若问题是“系统选择了错误的库存地点”,首先检查项目顺序和项目条件;若问题是“系统为什么弹出对话框、为什么不能人工修改、为什么与 WM 交互方式不同”,更可能与表头处理控制有关。把所有问题都归因于项目优先级,会浪费大量排查时间。
项目明细应按业务可解释的顺序维护。每一行都要能回答“为什么这一来源排在这里”。例如,第一行是线边库,因为希望减少生产等待;第二行是中央库,因为它承担补充;第三行是某种特殊库存,因为只有普通来源不足时才使用。若顺序只存在配置人员记忆中,没有业务说明,后续调整很容易破坏原有目的。
策略还应考虑第一来源不足时的行为。视频的 RM02 只有 100 L,需求为 120 L,系统继续找到 RM01 的 20 L,说明当前设置允许拆分并继续搜索。不同应用和配置可能对不足、零库存、特殊库存或后台处理有不同反应,必须在目标系统中按场景测试。
SAP Learning 还提到用户出口 EXIT_SAPLMDBF_002 等扩展点。扩展只应在标准策略无法表达明确业务要求时使用,并纳入代码、传输和回归测试管理。本文不提供自定义代码,因为视频没有涉及扩展,官方资料也只说明其存在。
SAP 官方教程补充:上线前测试场景与治理

SAP Help 特别提醒,错误的库存确定结果一旦已经过账,不能在库存确定功能内部直接改写,只能在调用它的业务应用中通过冲销等方式纠正。因此,库存确定不是“配置后看一眼就上线”的功能,必须用真实业务组合进行系统测试。
第一类是正常足量场景。首选来源库存充足时,系统是否只生成预期项目,数量和单位是否正确。第二类是拆分场景。首选来源不足时,剩余需求是否按正确顺序继续查找,是否出现不允许的来源。视频的 120 L 测试正属于这一类。
第三类是特殊库存场景。寄售、管道、销售订单或项目库存是否只在允许业务中被使用,账户和结算结果是否正确。第四类是缺量场景。所有来源都不足时,系统消息、剩余数量、是否允许继续和后台处理结果是否符合设计。
第五类是冲销回归。若原业务已过账,应该如何在 MIGO、生产、交货或其他调用应用中冲销;冲销后库存、会计和后续单据是否恢复一致。还要验证原移动类型与冲销移动类型、参考凭证和特殊库存的对应关系。
除此之外,还应覆盖物料无组、规则未分配、策略组合缺失、策略项目无库存、单位换算、批次管理、WM/EWM 集成、权限不足、并发领用和后台作业等异常。测试数据要固定,预期结果要逐行写清,不能只写“系统正常”。
治理方面,生产变更应保留需求说明、配置清单、主数据范围、审批、传输、测试证据和回退计划。组、规则或策略优先级的微小变化,可能影响大量物料和多个应用。变更前应分析影响矩阵,变更后应执行关键场景回归。
SAP 官方教程补充:Public Edition 中的原材料主数据示例

上图来自 SAP Learning 的 SAP S/4HANA Cloud Public Edition 官方课程。画面显示原材料 RM014、工厂 1010,以及库存确定组 Z001。它说明库存确定组确实是产品/物料在工厂级的主数据属性,并用于把该物料连接到相应的库存确定策略。
需要明确版本边界:视频使用经典 SAP GUI,物料编号为 125000073、工厂为 0001;官方图片来自 Public Edition 的 Fiori 应用,示例物料和字段布局都不同。本文保留官方原图、原始尺寸和英文界面,不对 SAP 软件截图进行重绘或加字,也不把它当成视频操作画面。
从实施角度看,这张图支持一个重要检查:当某个物料无法触发预期策略时,应在正确工厂层级核对库存确定组,而不是只看物料基本数据。一个产品可以跨多个工厂扩展,各工厂的组值可能不同,空值或错误值都会改变策略查找结果。
图片与教程来源:SAP Learning:Configuring Stock Determination(Public Edition)。图片版权归 SAP 所有。
SAP 官方教程补充:Public Edition 中的辅助物资主数据示例

第二张 SAP Learning 官方图展示辅助/运营物资 HB01、工厂 1010 和库存确定组 Z002。它与前一张原材料图形成对照:不同物料类别可以被分配到不同组,从而在同一业务规则下取得不同策略。
例如,原材料可能优先使用指定生产供应库存地点,辅助物资可能优先使用寄售或通用仓库。真正的顺序必须由项目业务确认并配置,图中的 Z001、Z002 只是官方示例代码,不能直接复制成企业的生产设计。
这两张图也说明,组是对物料行为的分类,不是库存地点本身。把物料分到 Z001 并不会自动创建库存,也不会自动决定具体顺序;还需要工厂、规则和策略组合。反过来,仅创建策略而没有给产品分配正确组,同样无法得到预期结果。
在主数据批量维护或迁移时,应把库存确定组列为受控字段。需要校验目标工厂、物料范围、允许值、变更审批和生效时间,并在迁移后用代表性业务场景验证,而不是只检查字段是否非空。
图片与教程来源同上,图片版权归 SAP 所有;保留原图,不裁剪、不放大、不添加中文覆盖层。
SAP 官方教程补充:管道物料与特殊前提
SAP 官方资料提到策略表头可以涉及管道领用,SAP Help 也把管道物料 P 列为可能的库存来源。管道物料并不是普通库存地点中的一批现货,它有自己的主数据、采购和结算前提。即使策略允许 P,如果业务前提不满足,系统也不一定能像普通非限制库存那样使用。
因此,设计包含管道物料的策略时,至少要联合采购、物料管理和财务确认:物料是否按管道方式管理,信息记录或价格条件是否完备,领用业务是否允许,数量和价值如何记录,失败时怎样处理。本文不把管道库存写成“缺货时自动无限补足”,因为官方能力受明确前提约束。
同样的原则适用于寄售、销售订单和项目库存。库存确定可以把它们纳入查找策略,但不会消除各库存类别原有的业务规则。策略是选择机制,不是绕过所有权、账户分配和可用性控制的工具。
SAP 官方教程补充:与 WM、生产和销售应用的集成边界
SAP Help 列出的相关组件包括 MM-IM、LE-WM、PP-SFC、PP-REM、PP-KAB、LO-BM 和 SD。这表明库存确定是一项跨应用能力,但每个组件的调用点和结果处理并不相同。MM-IM 可以在发货或转储中确定来源;生产场景可能在订单领料、重复制造或看板补给中调用;销售与装运场景又有自己的业务对象。
集成时应逐应用确认三个问题:谁提供库存确定规则,系统在什么时候调用策略,结果回写到哪个业务对象。只有这三个问题都回答清楚,才能设计正确的组、规则、策略和测试。把一个 MM-IM 的规则代码直接用于其他组件,而不检查调用逻辑,可能导致策略不命中或选择错误来源。
SAP Learning 还提到策略表头中的 WM 交互控制。对于启用仓库管理的库存地点,库存确定决定的“库存地点/库存类别”与仓库内部的储位、量化和拣配策略不是同一层。前者解决 IM 层从哪里取,后者解决仓库内部如何执行。两层需要一致衔接,但不能相互替代。
SAP 官方教程补充:库存确定与相邻功能不要混淆

库存确定经常与批次确定、可用性检查、仓库拣配、ATP 或供需计划混淆。最简单的区分方法是看它回答的问题。库存确定回答“当前业务需求应从哪个库存地点或库存类别取”;批次确定回答“在允许来源中选哪个批次”;仓库拣配回答“在仓库内部从哪个储位或量化执行”;ATP 回答“对需求承诺多少、何时可用”;MRP 回答“未来缺口如何补充”。
这些功能可以串联,但顺序和集成取决于业务场景。库存确定找到某个库存地点后,批次确定可能继续选择批次,WM/EWM 可能继续创建仓库任务。不能因为库存确定给出了 RM02,就认为具体储位、批次和拣配路径都已经确定。
排障时要先判断问题属于哪一层。如果错误是“从 RM01 而非 RM02 取”,检查库存确定策略;如果库存地点正确但批次错误,检查批次确定;如果 IM 来源正确但仓库任务找不到储位,检查仓库策略和库存同步;如果根本没有足量承诺,则可能涉及 ATP 或补货计划。分层定位能避免在错误模块里反复调整配置。
SAP 官方教程补充:一套可执行的实施设计方法
第一步是盘点库存来源。按工厂列出库存地点、库存类别、所有权、是否受 WM/EWM 管理、适用物料范围以及业务限制。没有这张清单,就无法判断哪些来源应该进入策略。
第二步是盘点调用场景。列出成本中心领料、生产订单发料、转储、交货、重复制造、看板等实际使用场景,记录其移动类型或业务对象、调用应用、预期规则和是否允许人工干预。只列移动类型而忽略应用上下文,可能不足以支撑跨模块设计。
第三步是归并物料组。把来源顺序和控制要求一致的物料归为同一库存确定组,避免按单个物料创建组。对每个组给出业务名称、适用工厂、纳入条件、排除条件和主数据负责人。
第四步是归并业务规则。把真正需要不同策略的调用场景分开;相同逻辑尽量共用。对规则记录来源应用、分配位置、适用事务和责任团队。
第五步是建立工厂+组+规则矩阵。每个有效单元格维护策略表头和项目顺序;无效单元格明确标注“不支持”,避免后续人员误以为漏配。项目顺序要写出业务理由,而不仅是代码。
第六步是设计测试矩阵。每个策略至少覆盖首选足量、首选不足拆分、全部不足、特殊库存、在线或后台模式,以及冲销。跨 WM、生产或销售的策略还要覆盖相应集成单据。
第七步是受控上线。先完成配置和主数据的一致性检查,再传输配置、安排主数据生效、执行上线后验证并监控异常。不要在配置已生效但主数据尚未同步,或主数据先改而策略尚未到位的窗口中运行关键业务。
SAP 官方教程补充:常见故障的定位顺序
1. 完全找不到库存确定功能或不能触发
先确认当前事务、业务事件和移动场景是否支持库存确定,再确认调用规则是否已经分配。视频能在 MIGO 中看到按钮,是因为测试系统和场景已经准备好;这并不代表任何 MIGO 组合都会显示或成功调用。
2. 系统提示找不到策略
依次检查工厂、物料上的库存确定组、调用业务带入的规则,以及三者组合是否存在策略。不要只检查策略表,因为错误的组或规则会让系统访问另一个组合。
3. 找到策略但没有建议数量
检查策略项目是否定义、库存来源是否允许、实际库存是否可用、单位是否正确,以及特殊库存或账户前提是否满足。MMBE 只能作为库存事实的一部分,不能替代策略与业务可用性检查。
4. 建议的第一库存地点不对
检查策略项目顺序、当前命中的组和规则、工厂,以及是否存在增强或用户出口影响。也要确认用户没有在触发前手工固定库存地点。视频中 RM02 优先不是因为它有更多库存,而是策略结果。
5. 数量没有按预期拆分
检查第一来源可用量、后续项目、处理模式、调用应用对缺量的反应和数量单位。设计一个像视频 120 L 那样必然跨越首选来源的测试,比只用小数量更容易暴露问题。
6. 在线结果正确,后台结果异常
核对策略表头的处理方式、后台调用上下文、用户权限和不可交互条件。后台流程没有人工修改机会,任何依赖用户确认的假设都必须从设计中移除。
7. 过账后发现来源错误
先停止扩大影响,保留物料凭证和策略版本证据,再在原调用应用中按业务规则执行冲销。不要直接通过表修改库存或试图在库存确定界面改写已过账结果。冲销后修正配置,重新执行完整回归测试。
SAP 官方教程补充:测试数据怎样设计才可重复
库存确定测试最容易出现的误区,是只记录操作步骤,不控制测试数据。假设第一次测试前 RM02 有 100 L,执行并过账后只剩 0 L;第二次仍输入 120 L,系统自然会从其他地点开始。两次结果不同并不一定是配置变化,而可能只是库存基线已经改变。因此,每个测试用例都要把前置库存写成明确数据,而不是笼统写“库存充足”。
一条可重复的测试记录至少包含物料、工厂、库存地点、库存类别、特殊库存标识、批次条件、数量、计量单位、调用应用、事务或业务对象、移动类型、库存确定组、库存确定规则、策略版本、处理模式和预期项目。对于视频用例,还应写明 RM01、RM02、RM03 各 100 L,需求 120 L,预期 RM02 100 L+RM01 20 L,并注明只验证确定结果还是继续验证过账。
测试数据准备与结果验证应分开记录。准备阶段通过受控方式建立库存,并保存 MMBE 或对应库存报表;执行阶段记录输入和触发时间;结果阶段逐行比较系统建议;若完成过账,再记录凭证号和过账后的库存。这样出现差异时,能够判断问题发生在库存准备、策略确定还是业务过账。
数量应覆盖边界值。可以针对同一策略设计“首选来源少 1、刚好相等、多 1”三组数据。若 RM02 为 100 L,需求 99 L 应只使用 RM02;需求 100 L 应验证是否恰好一行;需求 101 L 应验证是否从下一来源补 1 L。边界用例比只测一个大数量更容易发现继续搜索、舍入或单位换算方面的问题。
还要设计顺序辨识用例。视频中三个地点库存相同,因此 RM02 首选非常容易识别。如果不同地点数量相差很大,观察结果时可能误以为系统按数量选择。测试时让候选来源都有足够且可区分的数量,再逐步制造不足,可以更清楚地证明真正的优先级。
特殊库存测试必须隔离。普通库存、寄售、销售订单和项目库存应分别建立可识别的数据,并明确哪些业务允许使用。若一次测试同时存在太多未受控来源,系统即使给出结果,也很难判断是否符合设计。先验证单一来源,再验证跨来源组合,最后验证缺量与冲销,测试证据会更清晰。
并发也是生产场景的重要变量。两个用户或后台任务可能同时请求同一首选库存,前一个处理完成后,后一个可用量已经变化。质量系统可以用受控并发验证系统消息、剩余数量和后续来源行为,但不能只根据单用户静态测试推断高并发结果。测试范围应与真实业务量和自动化程度相匹配。
每次策略变更后,应重置或重新准备数据再做对比,而不是沿用已经被前一轮过账改变的库存。若为了避免库存变化而只执行到建议,也要清楚记录没有过账;若需要端到端验证,则必须安排冲销或重新补充,并核对冲销本身没有留下后续影响。
最后,测试用例应可由另一名人员独立复现。描述“按正常步骤操作”“系统自动取货”都不够精确;应写出每个关键字段、预期行和判断标准。只有当不同测试人员在相同基线下得到相同结果,库存确定策略才真正具备可验证性。
SAP 官方教程补充:权限、职责与变更控制
库存确定涉及配置、物料主数据和实际库存业务,三类权限不宜无边界地集中在同一个日常角色。配置人员能够定义组、规则和策略,主数据人员能够把组分配给大量物料,业务操作人员能够触发并可能过账。任何一层的错误都可能改变最终来源,因此职责和审批链应覆盖整条路径。
配置变更应说明业务原因、受影响工厂、组、规则、物料范围和调用应用。仅提交“调整 RM02 优先级”不足以评估影响,因为同一策略组合可能被多个物料和业务共用。审批人需要看到旧顺序、新顺序、预计数量影响、特殊库存影响以及回归测试范围。
主数据变更同样需要控制。把一个物料从组 A 改到组 B,表面上只是一个字段变化,实质上可能让它在多个规则下同时切换策略。批量变更前应生成影响清单,确认每个目标工厂存在所需策略;变更后抽样执行代表性业务,避免出现字段已改但组合未配置的断点。
业务用户的在线调整权限也要与流程设计一致。在线模式的价值是可见和可干预,但如果用户经常绕过系统建议,企业最终得到的仍是人工选择。应明确哪些异常允许修改、修改是否需要原因、如何监控修改率,以及何时应把高频例外反馈给配置与主数据团队。
后台处理对变更控制要求更高。由于用户无法在确定阶段拦截,策略变更上线前必须完成足量、拆分、缺量、特殊库存和冲销回归,并安排上线后的监控窗口。发现异常时,应有暂停相关作业或业务流程、评估已生成单据、执行应用内冲销和恢复旧配置的明确步骤。
审计记录应把配置传输、主数据生效和业务验证连接起来。只保存传输请求不能证明所有物料已经获得正确组,只保存测试截图也不能证明生产使用了同一策略版本。完整证据应能回答:谁批准、何时生效、影响哪些对象、测试了什么、实际结果是什么,以及异常时如何恢复。
SAP 官方教程补充:生产运维应监控什么
库存确定上线后,不能只监控技术报错。更有价值的业务指标包括:系统建议被人工修改的比例、找不到策略的次数、缺量导致未完全分配的次数、特殊库存被使用的频率、同一组在不同工厂的异常差异、冲销率以及策略变更后的结果变化。
人工修改率持续偏高,说明策略可能不符合实际业务,或者用户没有理解设计。找不到策略集中出现在某批新物料,通常指向主数据组漏维护。某个工厂频繁使用后备库存地点,可能说明首选库存补货不足,也可能说明策略顺序需要复核。把库存确定数据与补货、仓储和生产指标结合,才能判断问题是配置还是供应执行。
策略变更应有生效前后的对比。至少保留受影响物料、工厂、规则、旧顺序、新顺序、预计业务影响和验证结果。若只记录“调整优先级”,后续很难解释某批物料凭证为何从另一个库存地点出库。
SAP 官方教程补充:本课操作复盘
把整段视频压缩成一条可记忆的业务链就是:选择已准备好的物料 125000073;在工厂 0001 用 MMBE 确认 RM01、RM02、RM03 各有 100 L;在 MIGO 以移动类型 201 输入 120 L 需求;点击库存确定;系统按照既有策略建议 RM02 100 L 和 RM01 20 L。
这里最重要的不是事务代码,而是证据链。MM60 确认对象,MMBE 固定库存基线,MIGO 提供业务上下文,库存确定按钮触发策略,两行建议证明策略顺序和拆分逻辑。任何一环发生变化,结果都可能不同。
第二个要点是严格区分“建议”和“过账”。视频只到建议,没有凭证号、没有库存扣减复核。实际项目测试必须根据目的决定是否继续过账;如果过账,还要追加凭证、库存、会计和冲销验证。
第三个要点是组、规则和策略三者缺一不可。组从物料侧表达分类,规则从业务侧表达场景,策略在工厂中定义真实来源顺序。只记住“RM02 优先”没有迁移价值,理解三者如何组合,才能在自己的系统里设计和排障。
SAP 官方教程补充:学习检查清单
完成本课后,可以用下面的问题自测:
- 能否用一句话说明库存确定与 MMBE 的区别?
- 为什么视频中 RM02 比 RM01 先被使用?
- 为什么 120 L 会生成两行,而不是一行?
- 能否说明库存确定组、规则、策略分别来自哪里、负责什么?
- 为什么同一物料在不同业务应用中可能采用不同策略?
- 为什么 MMBE 有库存,策略仍可能不使用它?
- 在线处理和后台处理的控制差异是什么?
- 哪些特殊库存类别可能进入策略,为什么不能随意启用?
- 视频是否完成了 201 发料过账?用什么证据判断?
- 如果系统先选 RM01,应按什么顺序排查?
如果能够准确回答以上问题,就已经掌握了本课的主体。下一步学习配置时,应继续保持同样的边界意识:先看清工厂、组、规则和策略组合,再验证项目顺序与库存基线,最后才讨论过账和跨模块集成。
SAP 官方教程补充:参考资料与版权说明
- 本课原始视频
- SAP Learning:Configuring Stock Determination(SAP S/4HANA On-Premise)
- SAP Help:Stock Determination
- SAP Help:Creating Stock Determination Strategies
- SAP Learning:Configuring Stock Determination(SAP S/4HANA Cloud Public Edition)
本文中的视频 SAP GUI 截图按原始 1920×1080 分辨率提取,没有裁剪、放大或加注;SAP Learning 官方软件截图保留原始尺寸和内容,版权归 SAP 所有;其余非 SAP 界面视觉均依据课程与官方资料重新制作成中文图。不同 SAP S/4HANA 版本、部署模式和已启用业务范围可能存在界面与配置差异,实际实施请以目标系统和对应版本的 SAP 官方文档为准。


