news 2026/10/27 5:53:14

SAP MM库存调拨实战:MB1B移动类型与二步转储在途库存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP MM库存调拨实战:MB1B移动类型与二步转储在途库存

简介:围绕 SAP MM 模块库存调拨与发货主题整理的实操型文档,面向已具备一定 SAP 基础、需要厘清库存转移流程与后台配置的顾问、关键用户及企业内部运维人员。内容以 MB1B 为主线,串联库存地之间的一步转储 311、二步转储 313/315,工厂间转储 301/303/305 与 309 物料到物料、344/343 状态转变,并延伸到 MMBE、MB52、MB5T 等库存查看方式及转储订单、工厂装运数据、UB 等后台参数对单据生成的影响。资源包共 1 个 docx 文件,约 2.25MB,属于单文档专题资料,适合按章节查阅流程要点与配置逻辑。已有 1520 人学习,可用于梳理常见转储场景、理解在途库存与 MRP 传递关系,并对照后台设置排查单据与库存差异。

1. 从一次“货发了,库存没动”说起

去年帮一家做机械配件的公司梳理 SAP MM 环境,仓库同事在 MB1B 里敲完 311,单子显示保存成功,可第二天盘点两边库存地对不上。查了半天才发现,他把二步转储当成一步做了——313 发货出去,315 收货没跟上,10 个物料就那么挂在在途里,谁也没注意。库存调拨这事,在 SAP 里不算难,难的是移动类型选错、后台配置漏勾,系统不报错,账却慢慢歪掉。这篇记录按“环境准备—移动类型实操—后台配置—出问题怎么救—装完怎么验证”走一遍,适合刚接手 MM 模块、需要在测试机里把库存调拨跑通的开发者,也适合想把二步转储和在途库存搞明白的老手。版本上以 ECC 6.0 与 S/4HANA 通用逻辑为准,事务代码 MB1B、MIGO、MMBE、MB52、MB5T 全篇贯穿。

2. 环境与前置准备:跑通 MB1B 之前必须先有的东西

库存调拨看着只是 MB1B 一个事务码的事,实际上它压在一堆前置数据上。工厂、库存地点、物料主数据、移动类型允许的科目和字段状态,任何一环没配,保存时要么报“库存地点不存在”,要么报“移动类型 XX 不允许此业务”。所以正式敲命令之前,先把这套最小环境列清楚,比事后一条条排错省事得多。

2.1 版本差异与客户端准备

ECC 6.0 和 S/4HANA 在库存调拨这块的差别,主要在界面和部分移动类型的默认行为上。MB1B 在 ECC 里是经典的四段式屏幕:抬头、移动类型、物料、数量地点。S/4HANA 里 MB1B 仍然可用,但 Fiori 侧的“库存调拨”应用会走 MIGO 的底层逻辑,习惯经典 GUI 的人建议始终用 SAP GUI 或 Web GUI 连接,避免两套界面混着用导致物料凭证号和预期不符。

登录客户端用 SAP GUI for Windows 7.70 或更高,连接参数由 Basis 提供,这里不展开。进系统后先确认三件事:

  • 用户有 M_MSEG_WMB、M_MSEG_BWA 相关权限,没有的话 MB1B 保存会直接抛“没有物料移动的授权”;
  • 客户端是测试客户端,库存调拨会真实改库存,千万别在生产客户端上试;
  • 会计期间处于打开状态,MM 过账跨期会报“期间已关闭”。

2.2 必查的主数据与后台开关

在测试机里我一般先跑一个清单页,把下面这些对象挨个确认一遍,用 MB1B 的 311 做试探性过账看是否报错。

# 在 SAP GUI 事务码栏依次执行,不是系统命令行,仅作检查清单用 MM03 # 查物料主数据:工厂视图、存储视图、会计视图 1 是否齐全 MM01 # 缺视图时补建,物料类型决定哪些视图必须存在 OX09 # 查库存地点是否已在目标工厂下创建 OMJJ # 查移动类型 311/313/315/301/303/305/309/344/343 是否启用 OMWB # 查自动记账科目确定,物料移动是否已分配到科目

MM03 是整套流程的地基。物料主数据在工厂视图里必须维护 MRP 视图、采购视图和工作计划视图中的必要项,存储视图里要有存储条件;会计视图 1 缺失的话,311 过账会报“无法确定科目”。这一步新人最容易跳过,结果在 MB1B 保存时卡在 FI 侧。

OX09 决定库存地点。我见过一个典型翻车:A 库存地转到 B 库存地,结果 B 在目标工厂根本没建,系统提示“库存地点 0002 不存在于工厂 1000”。同一工厂内的 311 只需要两个库存地点都存在;跨工厂的 301 则需要两边的工厂和库存地点都齐全。

OMJJ 是移动类型的总开关。进去搜 311,确认“移动类型”处于激活状态,并检查字段选择是否允许输入“接收库存地点”。313 和 315 是一对:313 必须有接收库存地点和接收工厂字段,315 则依赖 313 生成的物料凭证号做收货参照。301/303/305 是跨工厂的那一套,305 收货时同样要参照 303 的凭证。

OMWB 管科目确定,库存调拨本身不产生会计凭证(同一公司代码内),但跨公司代码的转储会走 FI,配置缺失会直接报错。

2.3 移动类型与业务场景对照表

在 MB1B 里选错移动类型,是库存调拨最贵的错误。下面这张表是我自己贴在工位上的速查版,按“同一个工厂内 / 跨工厂 / 物料状态”三档分。

场景移动类型步数在途库存查看事务
同一工厂,库存地到库存地311一步无MMBE、MB52
同一工厂,库存地到库存地,需在途313 + 315二步有MMBE、MB52
跨工厂,直接转储301一步无MMBE
跨工厂,二步转储303 + 305二步有MB5T
物料到物料309一步无MMBE
非限制转冻结344一步无MMBE
冻结转非限制343一步无MMBE

这张表的关键不在移动类型编号,而在“在途库存”这一列。二步转储的核心价值就是让物料在运输途中可见、可控,313 发出后在 MMBE 里能看到 10 个在途,315 收货后才真正落到目标库存地。一步转储省事,但没有在途概念,适合即时完成的内部搬运。

提示:309 物料到物料方式,因为不同仓库或工厂下同一物料的移动平均价可能不同,会产生价值差异,我一般不建议在生产环境使用,除非财务侧明确接受差异科目。

3. 一步转储与二步转储:MB1B 实操全流程

环境确认完,进入正题。这一章按“库存地内一步—库存地内二步—在途查看”的顺序走,每一步都给命令、字段和过账后的验证方法。移动类型选错导致的库存歪账,八成都出在这一章。

3.1 库存地到库存地一步转储:MB1B 311

假设 A 库存地 0001 转 90 个到 B 库存地 0002,同一工厂 1000。进 MB1B,输入移动类型 311,回车后填写抬头和行项目。

事务码:MB1B 移动类型:311 抬头: 凭证日期:当天 过账日期:当天 工厂:1000 行项目: 物料:MAT-1001 数量:90 发出库存地点:0001 接收库存地点:0002

保存后系统生成一个物料凭证,MMBE 查 MAT-1001,0001 减少 90,0002 增加 90,总量不变。这就是一步转储的含义——单个步骤完成库存地点间的转移,没有中间状态。

字段说明上,311 最关键的两个字段是“发出库存地点”和“接收库存地点”,两者必须在同一工厂下,且都已在 OX09 中维护。数量单位取自物料主数据的基本计量单位,如果输入的是非基本单位,系统会按物料计量单位换算。

过账成功后建议立刻用 MB52 查一次该物料在两个库存地点的库存,确认两边一减一增、总数持平。MB52 是库存余额的明细视图,比 MMBE 更适合看库存地点级的数字。

3.2 库存地二步转储:MB1B 313 发货,315 收货

二步转储把“发出”和“接收”拆成两张物料凭证。第一步 313 只减少发出库存地,物料进入在途;第二步 315 参照 313 的凭证,把在途库存落到接收库存地。前面那个翻车案例就是只做了 313,10 个物料一直挂在在途。

先做 313 发货:

事务码:MB1B 移动类型:313 抬头: 工厂:1000 行项目: 物料:MAT-1001 数量:90 # 注意:按整批发货口径过账 发出库存地点:0001 接收库存地点:0002 接收工厂:1000

313 保存后,0001 库存减少 90,但 0002 不会增加,其中 10 个(按业务口径)处于在途。这里原文给的口径是:发货应为 313,总数应为 90,其中 10 个为在途库存。也就是说,如果业务上先发 90、实际只到 80,剩余 10 个要在在途里可查。

然后是 315 收货,两种做法:MB1B 315,或者 MIGO 做物料凭证收货。

# 做法一:MB1B 315 事务码:MB1B 移动类型:315 行项目: 物料:MAT-1001 数量:90 发出库存地点:0001 接收库存地点:0002 收货参照:313 生成的物料凭证号
# 做法二:MIGO 物料凭证收货 事务码:MIGO 操作:A01 收货 参照:物料凭证 输入:313 的物料凭证号 行项目:确认数量与接收库存地点

315 保存后,在途减少,0002 库存增加 90。MMBE 查同一工厂的在途库存,可以看到 313 发出、315 没收之前的挂账;MB52 查同一工厂 A 库存地转到 B 库存地的明细余额。这两个事务码在二步转储里是标配,一个看在途,一个看余额。

提示:315 必须参照 313 的物料凭证号,否则系统会当成一笔新的无参照收货,数量对不上时很难追。我一般把 313 的凭证号抄在转储单上再去做 315。

3.3 工厂间转储:301 一步 与 303/305 二步

跨工厂的库存调拨逻辑和同一工厂内一致,只是移动类型换了。A 工厂 1000 转 B 工厂 2000,一步用 301,二步用 303 发货、305 收货。

# 工厂间一步转储 事务码:MB1B 移动类型:301 行项目: 物料:MAT-1001 数量:50 发出工厂:1000 发出库存地点:0001 接收工厂:2000 接收库存地点:0001
# 工厂间二步转储:303 发货 事务码:MB1B 移动类型:303 行项目: 物料:MAT-1001 数量:50 发出工厂:1000 发出库存地点:0001 接收工厂:2000 接收库存地点:0001

303 收货侧的 305 同样可以走 MB1B 或 MIGO 参照收货。这里有一条血泪经验:工厂间转储涉及 MRP 运算,库存需求会在工厂之间传递,如果直接拿 301 做,MRP 会把接收工厂的需求算错。原文写得很明确——考虑工厂间转储涉及 MRP 运算(库存需求传递),工厂间转储应采用转储订单方式操作,实现方式有 MM 功能和 SD 功能两种。

标准做法是:走 MM 侧的库存转储订单(采购订单的一种),凭证类型 NB;或者走 SD 侧的出货单。用 MB1B 301/303 直接转的,只适合应急或 MRP 不敏感的物料。

3.4 在途库存怎么查:MMBE、MB52、MB5T 的分工

二步转储做没做对,看三个事务码就够。

  • MMBE:物料库存总览,能看到同一工厂的在途库存,313 发货后 315 未收货前,在途有数;
  • MB52:同一工厂内 A 库存地转到 B 库存地的余额明细,用来确认库存地点级的增减;
  • MB5T:不同工厂之间的在途库存,301/303 跨工厂场景专用。

这里有个容易混的点:同一工厂内的在途用 MMBE 和 MB52 看,跨工厂的在途必须用 MB5T。有次排查一个跨工厂 303 在途挂账,有人在 MB52 里翻了半天没找到,换成 MB5T 一眼就看到了。

4. 后台配置:转储订单类型与一步/二步的开关

库存调拨能不能走转储订单、会不会生成出货单,全看后台这几处配置。前台 MB1B 报的很多“凭据类型未分配”,根子都在这里。这一章按配置路径走一遍,涉及 SPRO 的采购与装运数据两块。

4.1 分配转储订单的凭证类型

路径:SPRO → 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 分配凭证类型给转储订单。

这一步决定工厂间转储用哪种采购凭证类型。常用的是 NB,配置后创建转储订单时默认带出 NB。原文里提到的 UB 是不同公司代码间的转储订单类型,配置要点在于“是否生成出货单”。

SPRO 路径:物料管理 > 采购 > 采购订单 > 设置库存调拨订单 > 分配凭证类型给转储订单 配置项: 工厂:1000 凭证类型:NB # 标准采购订单类型,用于库存转储订单 补充:若使用 SD 功能,需同时维护"定义工厂的装运数据"

NB 和 UB 的区别要记牢:NB 用于同一公司代码内的工厂间转储,UB 用于跨公司代码的转储(会涉及公司间结算)。选错凭证类型,转储订单创建时会报“工厂 XX 不允许此凭证类型”。

4.2 定义工厂的装运数据:一步还是二步的分水岭

路径:SPRO → 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 定义工厂的装运数据。

这一屏是整套配置里最容易漏勾的。核心字段三个:工厂客户、接收工厂、供货工厂,外加“是否采用一步转储方式”的勾选项。

SPRO 路径:物料管理 > 采购 > 采购订单 > 设置库存调拨订单 > 定义工厂的装运数据 字段: 工厂:1000 工厂客户:填入对应客户编号 接收工厂:2000 供货工厂:1000 一步转储:勾选 = 一步方式;不勾 = 二步方式 转储单类型:NB

勾了“一步转储”,转储订单收货时一步到位;不勾,则走二步,会有出货单产生。原文里的例子很典型:此处填写则会生成出货单,采用的是 SD 方式;UB 采购订单在同一公司不同工厂一步转储时,发货用 MB1B 351,系统未给转储单分配范围,所以为 4500。

后半句要单独解释:351 是转储订单发货用的移动类型,配置不当或凭证类型未分配范围时,系统会落到 4500 这个默认范围,导致出货单生成不符合预期。检查办法是看转储订单保存后有没有生成出货单,有就是走了 SD 方式,没有就是纯 MM 方式。

4.3 MM 功能与 SD 功能的取舍

工厂间转储用 MM 还是 SD,是架构层面的选择,不是配置细节。

  • MM 功能:用转储订单(NB/UB)加 351 发货,不生成出货单,流程短,适合内部工厂间调拨;
  • SD 功能:走销售订单和出货单,需要维护工厂的装运数据、装运点和路线,流程长,但能和外部客户发货逻辑统一。

我的建议是内部调拨优先 MM 功能,只有涉及对外交付或者需要出货单做运输跟踪时才上 SD。切换方式的核心就是 4.2 里那个“一步转储”勾选和工厂客户字段的组合,改之前先在测试机验证,别在生产上直接动。

5. 避坑与排查:库存调拨最常见的五类翻车

这一章是我自己踩过、也帮别人收拾过的五类问题,每条按“现象—原因—解决”写。库存调拨的坑大多不报错,只在盘点时露头,所以排查时不要只看前台提示,要顺着移动类型和后台配置一起查。

5.1 313 发了 315 没收,在途库存长期挂账

现象:MMBE 里某物料在途库存一直有数,接收库存地不增加,仓库说货已经到了。

原因:只做了 313 发货,315 收货没做或做失败。二步转储的在途库存不会自动清理,必须手工参照 313 的物料凭证过 315。

解决:用 MB5T 或 MMBE 定位在途数量和对应的 313 凭证,再用 MIGO 参照该物料凭证做 315 收货。如果 313 本身做错了(数量、库存地点填错),先冲销 313,再重新发货,不要在错误的 313 上直接 315。

5.2 311 过账报“库存地点不存在”

现象:MB1B 311 保存时提示目标库存地点在工厂下不存在。

原因:OX09 里没有在目标工厂下创建该库存地点,或者工厂填错。

解决:MM03 查物料所在工厂,去 OX09 补建库存地点后重试。注意同一工厂内 311 只需要库存地点存在,跨工厂 301 还需要两边工厂都存在且物料在两边工厂都有主数据。

5.3 工厂间转储后 MRP 需求算错

现象:301 直接转储后,接收工厂的 MRP 需求异常,采购建议跑偏。

原因:MB1B 301 直接转储绕过了转储订单,库存需求传递没走 MRP 正常路径。

解决:停止用 301 做常规工厂间转储,改用转储订单(NB/UB)方式。已经用 301 转错的,需要在 MRP 运行前用 MRP 区域重算,或者由计划员手工调整需求。这条是原文里反复强调的,别图省事。

5.4 转储订单收货后生成了计划外的出货单

现象:工厂间转储保存后多出一张出货单,流程卡在发货环节。

原因:4.2 里“定义工厂的装运数据”中工厂客户填了值,“一步转储”未勾选,系统按 SD 方式处理。

解决:确认业务是否需要 SD 方式。不需要就把工厂客户清空、勾选一步转储,重新测试;需要就走完整出货流程。改配置前先看已有转储订单是否已产生出货单,避免历史单据卡住。

5.5 344/343 状态转换后库存对不上

现象:非限制转冻结用 344 后,冻结库存为 0 或数字不符;343 反向转回时数量异常。

原因:344 是非限制到冻结,343 是冻结到非限制,两者方向搞反,或者数量填成了全部库存而非部分。

解决:先用 MMBE 确认物料当前的非限制、冻结、在途三类库存,再决定用 344 还是 343。部分冻结时数量按实际填,不要默认带出全部库存。原文举例的“冻结库为 0”就是方向或数量填错的典型表现。

6. 装完怎么验证:一条从过账到报表的闭环检查

配置和过账都做完,别急着说“跑通了”。库存调拨的验证要做成闭环:前台过账—在途可见—报表对平—后台配置生效,四步都过才算数。我一般按下面这个顺序走一遍,全程在测试客户端完成,用一套专门的验证物料,避免污染真实库存。

第一步,用 311 做一次同工厂库存地转储,数量取小值比如 10 个。保存后立刻 MB52 查两个库存地点,确认一减一增、总数不变。再用 MMBE 确认没有在途残留。这一步验证的是一步转储和库存地点主数据。

第二步,用 313 发 10 个、315 收 6 个,故意留 4 个在途。MMBE 查同一工厂在途库存应为 4,MB52 查接收库存地只增加了 6。然后用 MB1B 315 或 MIGO 参照 313 凭证把剩余 4 个收掉,再查在途归零。这一步验证二步转储和在途库存的可见性,也是最容易出问题的一环。

第三步,跨工厂验证。先在测试环境建好转储订单(NB),用 351 发货,确认不生成出货单;再把“定义工厂的装运数据”里的工厂客户填上、取消一步转储勾选,新建一单,确认生成出货单。两次对比就能看出 MM 与 SD 方式的差别。跨工厂在途用 MB5T 查,别用 MB52。

第四步,状态转换验证。选一个物料做 344 非限制转冻结,数量填 5,MMBE 确认冻结库存为 5、非限制减少 5;再用 343 转回,确认数字还原。这一步专治“方向搞反”。

第五步,后台配置回归。OMJJ 里逐个确认 311、313、315、301、303、305、309、344、343 都处于激活状态;OMWB 确认科目确定无报错;SPRO 里查转储订单凭证类型和装运数据是否与测试结果一致。全部对齐后,这套环境才算真的装完。

验证项事务码通过标准
一步转储MB1B 311 + MB52两边一减一增,总数不变
二步转储在途MB1B 313 + MMBE在途数量 = 发货 - 已收货
跨工厂在途MB1B 303 + MB5TMB5T 可见在途,305 后归零
状态转换MB1B 344 / 343 + MMBE冻结与非限制数量互转正确
后台配置OMJJ / OMWB / SPRO移动类型激活,凭证类型与装运数据匹配

这套验证做完,再让仓库同事用真实业务单据跑一遍,比什么文档都管用。从那以后我每次配完库存调拨,都强制走一遍 313 留在途再 315 收掉的闭环,不看到 MMBE 里在途归零绝不签字。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 5:53:02

大模型训练:保存mindir 格式模型

摘要MindIR(MindSpore Intermediate Representation)是昇思 MindSpore 原生中间表示模型格式,注意 MindIR 不是训练过程保存断点的格式,大模型训练阶段输出 ckpt 检查点,训练完成后导出 MindIR 用于推理部署。MindIR 同…

作者头像 李华
网站建设 2026/10/27 5:52:25

OpenMontage:开源AI智能剪辑工具,让视频粗剪自动化

1. 项目定位与核心思路拆解1.1 这个项目到底是干什么的第一次看到“OpenMontage”这个名字,我脑子里闪过的一大堆可能性里,最先成型的是“开源的蒙太奇”。你把它拆开看,Open 对应开源,Montage 对应剪辑、拼接、组合,合…

作者头像 李华
网站建设 2026/10/27 5:52:21

多模态提示工程:提升大模型理解与应用的关键技术

1. 多模态提示工程的价值与挑战在当下大模型应用爆发的时代,提示工程(Prompt Engineering)已经从单纯的文本优化发展为融合视觉、音频等多模态信息的系统工程。作为从业五年的提示架构师,我发现单纯依赖文本提示往往难以突破相关性…

作者头像 李华
网站建设 2026/10/27 5:51:29

B2B企业海外AI获客方案:外贸GEO服务商能力核验清单

出海企业建设获客体系时,不能只增加网页数量,还要让产品知识、应用场景和企业能力成为AI可识别的可信信息。 2026年,外贸行业最大的变化之一,不是平台数量,而是AI搜索开始成为新的获客入口。 GEO(Generativ…

作者头像 李华
网站建设 2026/10/27 5:50:52

AI驱动的智能数据库运维:DAS Agent核心技术与实践

1. 智能数据库运维大脑DAS Agent的核心价值数据库运维领域正经历一场由AI驱动的变革。传统运维模式下,DBA需要手动执行大量重复性工作:监控指标、分析日志、优化SQL、处理告警。这种模式存在三个典型痛点:一是人工响应存在时间延迟&#xff0…

作者头像 李华
网站建设 2026/10/27 5:50:51

Nexus 3.30.0 Win64私有Maven仓库快速部署与运维指南

简介:本资源为Nexus Repository Manager 3.30.0-01正式版Windows 64位安装包,面向Java开发者、DevOps工程师及企业级Maven仓库搭建者,用于快速部署本地或私有化构件仓库,解决依赖代理缓存、多源聚合管理、安全发布与版本控制等核心…

作者头像 李华