简介:一套专门梳理企业资源计划系统中物料管理模块库存调拨与发货流程的DOCX技术文档,适合处理采购、仓储、生产供料等日常业务的实施顾问、物料管理关键用户及供应链相关岗位人员参考,目的在于澄清不同调拨方式的差别、后台参数对业务流程的影响,以及实际操作中容易遇到的配置盲点。文档共一个文件,压缩包大小约二点二五兆字节,已吸引超过一千五百人次下载学习。正文以移动类型为主线,详细介绍库存地间直接调拨与分步调拨,明确在途库存的生成、查询与冲销;进而分析不同工厂间调拨对物料需求计划的影响,并指出采用转储订单方式可以更准确传递库存需求;同时补充物料到物料方式因移动平均价差异可能带来的价值变动,以及限制库存与冻结库存之间的状态转换。后台设置部分逐一说明库存调拨订单的凭证类型分配、销售与分销功能下工厂装运数据的配置、不采用销售与分销功能时避免生成出货单的相关操作,并配有具体事务代码与查询报表,帮助读者将操作步骤与实际场景对应起来。对于需要规范库存调拨、优化企业供应链的从业者,这份资料能提供较完整的实施参考,也可作为项目上线培训或内部知识传递的补充材料。
1. 库存调拨这件事,90% 的新手栽在“移动类型背不下来”
SAP 库存调拨与发货,听起来就是 MB1B 里敲两个移动类型,实际跑起来却是一堆在途库存、两步过账、转储订单范围、MRP 联动的问题。我刚接触 MM 模块时,以为 311、313、315 就是“三个数字选一个”,结果第一次做工厂间转储就用错了 311,把本厂库存调到了另一个工厂,MRP 却把需求算在了调出方头上,整个计划订单乱成一锅粥。这篇梳理的是 SAP MM 模块里库存调拨的完整玩法,包括 MB1B 一步/二步转储、工厂间 301/303/305、物料到物料 309、状态转变 343/344,以及后台配置里最容易翻车的 NB/UB 与工厂装运数据设置。适合正在做库存调拨、发货过账,或者被 MMBE 里的在途库存折腾过的 SAP 从业者。
2. MB1B 五种移动类型拆解:311/313/315、301/303/305、309、343/344 的适用边界
2.1 库存地到库存地:311 一步与 313/315 二步的取舍
库存地到库存地的调拨,是 SAP 库存管理中最高频的操作。同一工厂下,A 库存地转到 B 库存地,MB1B 里敲移动类型 311,是一步转储。一步的意思是:发货过账的同时,接收方库存立刻增加,系统在同一个物料凭证里完成出和入,中间没有任何“在路上”的状态。
311 的适用场景非常明确:两个库存地在物理上离得近、运输时间可以忽略、财务上不需要区分在途。比如同一个厂区内从原材料仓转到线边仓,用 311 最干净。MB1B 界面里填好物料、数量、工厂、A 库存地、B 库存地,过账后 MMBE 里看到的是 A 减少、B 增加,数量完全对得上。
但注意,如果两个库存地之间存在运输时间差,或者你希望财务能追踪“货已经发了但还没到”的这部分库存,就必须用二步转储。二步的移动类型组合是 313 发货 + 315 收货。313 过账后,物料从 A 库存地扣除,进入“在途库存”,这个状态在 MMBE 里是看不到的,要用 MB5T 或者特定报表才能查到。等货物实际到达 B 库存地,再做 315 或 MIGO 收货,B 的库存才增加。
用 313 发货时,系统会自动生成一张后续的收货凭证,凭证里已经带好了 315 的移动类型提示。我在项目里见过很多用户 313 做完就忘了 315,导致调出方库存一直挂在“已发货未到货”,月底盘点对不上账。所以二步转储不是“多敲一次”这么简单,它是一张完整的在途库存凭证链:313 创建转储需求,315 完成转储收货。你可以把 313/315 理解成“先把货发出去,物流信息挂在那,到了再确认”。
2.2 工厂间的一步/二步:301 与 303/305 的操作差异
工厂间转储比库存地之间多了一层复杂性:跨工厂意味着跨评估范围,库存价值、科目、MRP 归属都会跟着变。MB1B 里工厂间一步转储用 301,二步转储用 303 发货 + 305 收货。
301 操作时,MB1B 里要填转出工厂和转入工厂,系统要求指定转出库存地和转入库存地。过账后,转出工厂库存减少,转入工厂库存增加,同一个凭证里完成跨工厂库存转移。301 看起来方便,但它有一个隐含要求:两个工厂之间必须有运输关系,而且财务上要把这次移动当做一个直接调拨处理,不区分在途。
303 + 305 则是二步转储:303 转出方发货后,货物进入“跨工厂在途库存”,这部分在途库存挂在转出工厂名下;305 由转入方收货后,在途库存消失,转入工厂库存增加。和 313/315 的区别在于,跨工厂的二步转储牵扯到两个工厂的评估范围,所以在途库存的成本归属、科目确定逻辑都会更复杂。
我的实践经验是:如果公司内部有物流时间,或者两个工厂之间存在月底结账的时间差,303/305 是标配。否则一到月底,货物还在货车上的时候,你根本没法回答“这批货到底算哪个工厂的库存”。使用 303/305 后,在途库存可以通过 MB5T 跨工厂查询,这一点在月底对账时非常有用。MB5T 看到的在途记录,数量正好等于 303 发货总数减去 305 收货总数,月末盘点时可以直接把这张报表拉出来,作为跨工厂在途库存的账面依据。
2.3 309 和状态转变:价值差异不得不防
物料到物料方式,移动类型 309,意思是把一个物料的库存直接转成另一个物料的库存。SAP 里这个功能定位很特殊:它处理的是“同一个实物,但主数据维护成了两个物料号”的场景。
309 的坑在于移动平均价。不同仓库或不同工厂里,同一个物料可能因为收货价格不同而有不同的移动平均价;如果做 309 把 A 物料转成 B 物料,系统会用 B 物料的当前价格来评估这笔库存移动,与 A 物料原账面价值之间的差异会直接影响库存金额。这个差异发生时,很多财务同事会认为是系统算错了,实际上它只是因为两个物料号的价格不同步。
所以 309 我一般不建议常用。如果真的遇到物料号合并、替换的场景,优先考虑先做 311 调拨到同一库存地,再在物料主数据层面做后续处理。项目上如果有这种需求,最好先问清楚:这两个物料号是否还需要并存?财务是否接受价值差异?如果你的回答是“要并存”,那 309 就不是好方案,因为它在物料主数据层面会产生一笔永久性的价值差异。
状态转变相关的 343/344 则相对单纯。344 是把非限制库存转成冻结库存,343 是冻结转非限制。这两组移动类型不改变库存总量,只改变库存状态。操作时 MB1B 里选择对应的移动类型,填好物料和数量即可。需要注意的是一旦物料被冻结,MRP 不会把它纳入可用库存计算。所以排产前要检查是否有一批物料被误冻结,否则计划员会看到产能不足,而仓库里明明有货。这类误操作在项目中特别常见,尤其是批号管理启用的工厂里,仓库人员在做质检冻结时容易把整个批次都冻结掉。
3. 工厂间转储为什么必须走转储订单:MRP 联动与 NB/UB 配置路径
3.1 工厂间转储涉及 MRP:为什么 311 会被误用
很多用户做完工厂间转储后,发现 MRP 计算结果很奇怪:转出工厂老是在生成采购申请,转入工厂却在报缺料。原因很简单,直接使用 301 这类移动类型做工厂间调拨时,MRP 无法识别这是一笔“工厂间需求传递”。
MRP 在跑计划时,会查看每个工厂的独立需求和依赖需求。如果 A 工厂向 B 工厂转储了 100 个物料,从库存角度,A 减少 100、B 增加 100,但 MRP 并不会自动理解成“B 的需求应该传递到 A 的供应计划里”。结果就是 B 工厂依旧按自己的需求跑 MRP,A 工厂也看不到这块新增需求,最后可能两个工厂都缺料或都多采。
这正是工厂间转储必须采用转储订单方式的原因。转储订单的本质是一张采购订单,只不过供应商和收货工厂都来自公司内部。当你在后台配置好转储订单类型后,系统会把“转出工厂”当作供应商,“转入工厂”当作收货方,这样 MRP 在计算时会把转储订单当成真正的供应来源,需求就能在工厂之间正确传递。
3.2 转储订单的核心配置:分配凭证类型与转储单类型 NB
转储订单的后台配置入口在 IMG 路径:物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 分配凭证类型。这个配置的作用是告诉系统:在工厂间转储场景下,使用什么采购订单类型来处理。
SAP 标准的转储订单类型一般是 NB(标准采购订单),但实际项目中很多公司会自定义一个专用类型,比如 ZUB。配置时需要为“库存调拨订单”分配对应的凭证类型,同时指定转出工厂和转入工厂的工厂范围。
这里有一个容易混淆的点:转储单类型 NB 和“是否勾选一步转储”是两回事。NB 只是采购订单类型,它决定了这张转储单的号码范围、审批策略、科目确定规则。而一步/二步的行为,由“定义工厂的装运数据”里的配置决定,两者互不替代。
3.3 一步还是二步:由“定义工厂的装运数据”决定
后台配置路径:物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 定义工厂的装运数据。这个配置点非常关键:它按“发货工厂 + 收货工厂”的组合,决定转储订单过账时是直接完成一步转储,还是先生成出货单再走二步。
配置界面里,每一行代表一个工厂组合。关键字段有两个:一是“工厂客户是否采用一步转储方式”,勾选则一步,不勾选则二步;二是接收工厂、供货工厂的对应关系。举个例子,A 工厂发给 B 工厂,如果勾选了一步,那么转储订单在 A 工厂发货时,系统会自动完成 B 工厂的收货,不需要 B 工厂再操作。如果不勾选,A 工厂发货后,货物进入在途状态,B 工厂需要针对这张转储订单做收货。
和 303/305 的“纯库存移动”二步不同,基于转储订单的二步转储,在途库存是有采购订单依据的,MRP 能看到这张单子。如果项目里要求每一次工厂间调拨都有据可查、可追溯,转储订单是正确选择。那些只做库存实体调拨、不需要 MRP 传递的场景,才考虑直接用移动类型。
4. 后台配置把调拨逻辑写死:凭证类型、工厂装运数据与一步/二步开关
4.1 配置入口:采购→采购订单→设置库存调拨订单
在做任何工厂间调拨项目前,先检查这条配置路径:SPRO → 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 分配凭证类型。这一步决定了系统用什么单号类型来生成转储订单。
我建议项目上线前,把这个配置做成一张对照表,按“发货工厂/收货工厂/转储单类型/是否一步”四个维度列清楚。实际配置中,最常见的问题是凭证类型分配错误导致转储订单生成时打不开“出货单”界面,或是系统提示“此订单类型不允许装运”。遇到这类问题,优先检查分配凭证类型里是不是用了错误的采购订单类型。
凭证类型分配时需要注意,转储订单类型与普通采购订单类型最好不要混用。如果公司有标准 NB 采购订单,又有内贸转储需求,建议单独复制一个 Z 类型。这样报表统计时,可以轻易区分外部采购和内部调拨,避免月底财务对账时,把内部转储当成外部采购来查。
4.2 工厂装运数据:勾选一步就一步,不勾选就走二步
“定义工厂的装运数据”配置点是工厂间转储的核心开关。进入配置后,系统会显示工厂组合列表。每一行代表一个调拨关系,需要维护的字段包括:发货工厂、收货工厂、是否一步转储、装运数据相关参数。
实际操作中,配置一步转储最怕的是勾错方向。比如 A 工厂发给 B 工厂用一步,B 工厂发给 A 工厂可能因为距离远要用二步,这两个方向是两行不同的配置。很多项目上线时只配了一个方向,导致反向调拨时,转储订单发货后 B 工厂看不到在途库存,货到了才入库,中间状态完全不可控。
还有一个细节值得注意:装运数据配置里包含“转储单类型”字段,常见值为 NB 或 Z 开头自定义类型。这个字段与 4.1 的凭证类型分配不同,它决定的是转储订单在装运时使用的单据类型。如果这里填了不正确的类型,可能导致发货时系统要求创建出货单,而实际上你并不需要 SD 功能介入。
4.3 UB 场景实测:351 不走 SD 时不生成出货单
UB 指的是不采用 SD 功能、不走出货单流程的工厂间转储配置。在这种配置下,做 MB1B 351 发货,系统不会生成出货单,而是直接过账库存移动。351 是工厂间一步转储的移动类型,它和 301 的区别在于:351 必须在后台配置了转储订单的情况下使用,而且它的逻辑是基于转储订单来做的,不是单纯的库存移动。
项目上最常见的现象是:配置 UB 后,MB1B 351 过账时报错“系统未给转储单分配范围”,提示范围 4500。这个 4500 其实是系统默认的转储单范围,出现这个提示,基本说明后台没有给对应的工厂组合分配有效的转储单范围。
解决思路是先确认发货工厂、收货工厂在“定义工厂的装运数据”中已正确维护;再检查“分配凭证类型”里,工厂组合对应的凭证类型是否有效;最后看是否存在多个工厂组合共用一个范围,导致系统列表模糊,无法自动确定唯一值。我一般在项目里会建议在配置中按工厂组合分别创建独立范围,不要复用标准的 4500,这样可以显著降低调拨单据交叉的问题。
5. 调拨踩坑排查:五个高频异常的现场还原与处理
5.1 现象一:313 发货后库存与账面对不上
现象:313 过账成功,但 MMBE 里库存没有减少,用户以为系统出错了。
原因:313 是二步转储的第一步,过账后库存进入在途状态,MMBE 的当前库存不体现在途。用户看的是当前库存,自然觉得没变化。
解决:用 MB5T 查看在途库存,确认数量已挂在调出工厂名下;待货物到达后做 315 或 MIGO 收货,库存才会在接收方出现。如果月底盘点,这部分在途库存要单独编制对账表,不能和实物库存混在一起。从那以后,我每次做 313 都会顺手开一张 MB5T 截屏发给财务,作为在途依据。
5.2 现象二:接收时 MIGO 无法过账
现象:做 315 或 MIGO 收货时,系统提示“物料凭证不完整”或“移动类型不允许”。
原因:二步转储的收货,系统要求参照 313 生成的转储凭证去操作。如果用户新建了一个物料凭证而不是参考原凭证,系统不知道这票货对应的发货是哪一笔,就无法完成过账。
解决:MIGO 里选择“收货 → 采购订单”,或者在 MB1B 里输入 315 后,直接回车让系统带出原 313 的凭证号。不要手工新建。若还是报错,检查移动类型 315 是否在后台“定义库存管理的移动类型”中已授权给该用户的操作范围。
5.3 现象三:跨工厂调拨 MRP 跑出了奇怪计划订单
现象:两个工厂之间做调拨后,MRP 在调出工厂生成了很多计划订单,而这些订单没有对应的真实需求。
原因:直接用了 301 调拨,没有走转储订单,MRP 无法识别跨工厂需求,把调拨视为单一工厂的库存移动,从而忽略了转入工厂的供应需求。
解决:改成转储订单流程。先创建工厂间转储订单(含 NB 类型),再做 301 或 351 发货,让 MRP 能看到这张内部采购订单,并将需求正确传递到转出工厂。如果已经跑乱了,可以在 MD04 里单个需求逐个删掉不正确的计划订单,再重跑 MRP。
5.4 现象四:转储单范围报“4500”
现象:做工厂间转储发货时,系统提示“系统未给转储单分配范围,所以为 4500”,单子没法继续。
原因:后台“定义工厂的装运数据”中,没有为当前发货工厂和收货工厂的组合配置有效的转储单范围。4500 只是系统默认值,不代表它被分配到当前组合。
解决:进 SPRO 检查工厂组合对应的范围编号,如果没有则新增;如果有但系统选择不到,检查范围是否被停用或权限对象是否限制了该范围。注意,不同工厂组合可以共用一个范围,但如果存在多值匹配,SAP 会出现选择列表,如果列表为空,就回到 4500 提示。
5.5 现象五:309 调拨之后标准价被带偏
现象:物料到物料 309 调拨完成后,MB51 里看到一笔价值差异,财务要求冲销。
原因:两个物料号移动平均价不同,309 过账时系统按接收物料的当前价格评估,导致库存金额跳动。这是 309 的业务逻辑决定的,不是系统故障。
解决:尽量避免 309。如果确实要用,先核对两个物料的价格差异;差异大时,先做一笔库存价值调整,再做 309。另外检查物料主数据的“价格控制”字段,如果是 V 价格控制,309 的差异会直接进入库存金额;如果是 S 价格控制,价格差异会进差异科目,处理方式完全不同。
6. 调拨后的验证与进阶:用 MMBE/MB52/MB5T 联动检查在途库存与价值
6.1 用报表组合追踪调拨链路
调拨不是过完账就结束了,至少要验证三件事:数量对得上、在途挂得清、MRP 看得见。
同一工厂内,库存地到库存地的调拨,用 MMBE 按工厂查看,选择“库存地级别”,能直接看到 A 库存地和 B 库存地的数量变化。如果做了 313/315 二步,MMBE 看不到在途,这时切到 MB5T 查看同一工厂、不同库存地的在途记录。
跨工厂调拨,用 MB52 查看库存时会发现每个工厂的库存只体现本厂库存,跨厂在途要通过 MB5T 选择“转出工厂”和“转入工厂”来查。MB5T 报表里会把每一步 303、305 的凭证列出来,最后汇总出在途数量和金额。这套组合查法,我每次做完调拨都会跑一遍:第一步 MMBE 看库存地状态,第二步 MB52 看工厂总数,第三步 MB5T 看在途明细。三步对上了,才敢说这票调拨闭环了。
6.2 一个可复核的后台校验动作
配置校验方面,我习惯用事务代码 ME05 或直接看配置表 T16LB 来核对工厂组合的装运数据。重点核对三项:发货工厂、收货工厂、一步转储标记。
如果发现某个工厂组合配置缺失,补充完成后,要重新测试。测试方法是创建一张该工厂组合的转储订单,然后做 301 发货,观察发货过账后收货工厂的库存是否自动增加。如果自动增加,说明一步配置生效;如果没增加,说明系统把它当成了二步,需要接收方做后续收货。这一个测试动作,能同时验证转储订单类型、装运数据、移动类型三个环节是否串联正确。
最后提一个习惯:从那以后,我每次做工厂间调拨配置,都会强制自己走一遍“先建转储订单 → 301 发货 → MMBE/MB5T 验证 → ME05 核对配置”的完整链路,确认无误后才让用户开始操作。这个习惯救过我好几次,希望帮到你。
本文还有配套的精品资源,点击获取