☰
SAP WM配置实战:仓库号D01从主数据到搜索策略完整指南
2026/10/26 7:05:03 网站建设 项目流程

简介:SAP WM配置详解文档是一份面向SAP实施顾问、MM/WM模块顾问及仓库管理人员的完整配置参考,系统梳理了仓库管理中主数据、存储策略与作业活动三大层面的配置要点。内容覆盖仓库号控制参数、编号范围、存储类型与存储段定义、存储箱结构,以及固定货位、开放存储、托盘、FIFO、LIFO等策略设定,并包含活动配置、移动类型及自动补货说明。文档以章节式目录逐项展开,每个配置步骤均描述配置目的与操作要点,可直接用于项目配置蓝图设计、上线前自查或作为内部培训辅助材料。资源包共包含1个doc文件,大小约572KB,并保留版本记录与密件标识,便于追溯和按模块查阅。已有789人学习下载,适合正在实施SAP WM或需要优化仓库流程控制的顾问参考。

1. 开始配置 SAP WM 之前:先把 D01 仓库的地基画对

SAP WM(Warehouse Management)一直是 MM 模块落地时最容易被低估的一环。见过不少项目,物料账跑得顺,一到仓库执行层面就开始翻车:收货找不到仓位、TO 单创建出来库位是空的、盘盈亏永远对不上——追根溯源,十有八九不是业务问题,而是 WM 的配置在主数据阶段就埋了雷。这份 WM Configuration Documentation 最值钱的地方,是它把仓库号 D01 从控制参数到搜索策略的完整配置路径列成了一张 26 页的落地清单。

这篇文章针对的是正准备做 WM 配置、或者已经在 SPRO 里调了半天存储类型的实施顾问和开发人员。我会按配置顺序拆开讲:主数据怎么建、编号范围怎么给、存储类型和存储箱结构怎么设计、搜索策略怎么激活,最后用一套验证方法确认配置真的能跑通。看完你应该能照着 D01 这套思路,独立完成一次 WM 基础配置,而不是被 SPRO 的节点迷宫绕晕。

2. 主数据配置:仓库号、编号范围、存储类型的三板斧

2.1 仓库号控制参数:SPRO 里最容易被跳过的起点

WM 配置的起点在 Materials Management -> Warehouse Management -> Master Data -> Define control parameters for warehouse number,事务代码 SPRO。这个节点直接决定了整个仓库号的行为模式,不是简单填个名字就完事。D01 仓库号的关键参数我整理如下:

参数D01 配置值说明
Warehouse numberD01仓库号命名
Region Codes——区域码,通常留空
Unit of weightKG重量单位
1st default UomL第一默认单位
2nd default UomA第二默认单位
Dec. warehouse active勾选启用小数仓库库存
SU management active勾选启用存储单位管理
Blocking method按需仓位冻结方式
Partial Picking按需是否允许部分拣配

这里的 Blocking method 值得多说一句。D01 场景选择的是按需配置,实际项目中我一般建议先明确仓库是否要做跨仓位冻结——如果启用,后续做库存转移时会多一层检查逻辑,遇到盘点差异时处理路径完全不一样。

EC09 复制模板这一步是整套配置的地基。文档里明确写了 Use EC09 copy template 0001 to D001 at first,意思是配置 D01 之前,先找一套标准模板复制过来做底子,再在它上面改。我自己的血泪经验:跳过这步直接手工建仓库号,后面存储类型、搜索策略的激活界面会少掉一堆系统预置的参照条目,排查起来非常难受。

2.2 编号范围:OMLW 里的四组号码不能共用一段区间

编号范围配置在 Materials Management -> Warehouse Management -> Master Data -> Define number ranges,事务代码 OMLW。WM 里有四类对象需要独立编号:Transfer Requirement(TR)、Transfer Order(TO)、Quant、Posting Change Notice。D01 的实际分配如下:

Assignment 分配关系

对象WhQuantNR-T0NR-TRPosting ChangeRefNoSU
D01010101010101

Intervals 编号区间

Interval NoFromToExt
Transfer Requirement30000000013999999999是
Transfer Order30000000013999999999是
Quant30000000013999999999是
Posting Change Notice30000000013999999999是

注意这里四个对象的号段完全一致——看似省事,实际上是不同对象类型共用同一段数字区间。SAP 在处理时会按对象类型自动区分,所以不会真冲突,但有个隐患:如果外部系统接 SMART 接口,传 TR 号和 TO 号时如果没带对象类型前缀,很容易传串。我在集成测试阶段就遇到过这个问题,后面是靠接口映射表里强制拼上前缀解决的。

Number range 的 Ext 标识全部打勾,意味着外部给号是允许的。这个配置在 D01 场景下没问题,但如果你后续要接 ERP 外围的 WCS(仓库控制系统),外部给号会省去很多来回同步的麻烦;反之如果仓库操作全靠 SAP 内部触发,建议把 Ext 关掉,避免外部系统乱写号段把序列搞乱。

2.3 存储类型:ZM1 收货暂存区、ZM2 拣货优先区的角色差异

存储类型定义在 SPRO -> Define storage type,事务代码还是 SPRO。D01 的存储类型设计非常典型,不是按物理库区分,而是按流程角色分:

存储类型名称SU管理上架策略下架策略
902GR Area From Vendor激活————
911GI Area for Cost Center激活————
914GI Area Production激活————
916Shipping Area Deliveries激活————
921Stock Transfers (StLoc)激活————
922Posting Change Area激活————
998Init. entry of stock bal.激活————
999Differences激活————
ZM1MKC Storage Area激活PF
ZM2MKC Issue Precedence Area激活PF

902 到 999 是系统标准的中间区域,ZM1、ZM2 才是真正干活的仓储区域。P 和 F 分别是 Stock placement strategy 和 Stock removal strategy 的策略代号,D01 里 ZM1 和 ZM2 都指向 P/F 策略,说明收货和发货的主区域走的是同一套查找逻辑。

这里要特别留意 998 和 999。998 用于初始化库存余额,999 用于差异过账,这两个类型平时业务单据不会直接命中,但盘点和期初导入时一定会用到。如果这两个类型的 Storage type indicator 配错,期初导入时系统会把差异库存当成正常库存,导致 Quant 状态混乱。我第一次配置时漏掉了 999 的策略指示器,结果模拟盘点时差异库存全部流入可用库存,账面上凭空多出一批货。

2.4 存储段:ZM1 下拆三个区,ZM2 一个区覆盖全部

存储段在 SPRO -> Define storage sections 配置,D01 的划分如下:

仓库号存储类型存储段区域名
D01ZM1001Normal Bin Area
D01ZM1002Interim Bin Area
D01ZM1003Warehouse Working Area
D01ZM2001Total Area

这种设计把 ZM1 拆成了正常存储、临时存储、作业区三块,ZM2 则只保留一个 Total Area。临时存储段的典型用途是收货后待上架的中转位,作业区则对应拣货工作台附近的缓存位。

存储段的划分直接决定后续搜索策略的粒度。如果你只需要在存储类型级别控制存放位置,那不拆段也行;但 D01 这种拆法,好处是出库时可以只搜 Normal Bin Area,把临时段的库存排除在拣货范围之外,避免仓库工人跑到中转位去拣货。这个设计在文档里只有一张表,但实际项目里我一般会把"哪些存储段参与拣货、哪些只参与收货缓存"做成一张独立的段用途清单,否则配置评审时业务方根本看不出差异。

3. 存储箱结构与存储单位类型:把仓位编码规则一次定对

3.1 存储箱类型:B1 中间箱、P1 换包装区的设计意图

存储箱类型定义路径是 SPRO -> Storage bins -> Define storage bin types。D01 定义了四个标准类型:

存储类型箱类型描述
D01D01Normal Bin Type
D01E1Interim Bin
D01B1Repacking Bin Area
D01P1Picking Bin Area

Normal Bin 是普通货位,Interim Bin 是收货暂存位,Repacking Bin Area 是拆箱/换包装区。注意 Repacking 和 Picking 是不同的箱类型,前者服务于换包装作业,后者服务于拣货作业——如果业务上拆箱和拣货在同一区域完成,可以合并,但 D01 把它们分开了。

这个设计的实际意义在于:存储箱类型会参与到上架和下架的搜索策略里。配置搜索策略时,系统可以根据箱类型过滤仓位,比如 P1 类型的仓位在收货上架时可以被跳过,避免把货放到拣货区然后又要人工倒腾。我在项目里见过没配箱类型搜索的仓库,系统把收货货物直接放到拣货口,TO 单打印出来执行人一脸懵。

3.2 存储箱结构:LS10 模板的字符位如何拆分

存储箱结构定义在 SPRO -> Storage bins -> Define storage bin structure,事务代码 LS10。D01 的仓位模板拆法很典型:

存储类型序号模板结构起始结束增量
ZM10001AANNNNCCCCABCCDDAA0101AB0302110101
ZM10002AANNNNCCCCABCCDDBA0101BD0302110101
ZM10003AANNNNCCCCABCCDDCA0101CC0302110101
ZM10004AANNNNCCCCABCCDDDA0101DB0302110101
ZM10005AANNNNCCCCABCCDDPA0101PB0302110101
ZM10006CNNCCCCCCCAAF01F99————01
ZM10007AAACCCCCCCABCJGQJGQ————111
ZM20001CNNCCCCCCCAAX01X10————01

以 ZM1 的 0001 号模板 AANNNNCCCC 为例,结构 ABCCDD 的含义是:

  • 前两位 A(字母区):通道或巷道标识
  • 中间四位 NNNN(数字区):货架列号
  • 后面 CCCC(字母区):货位层次

模板中 A、N、C 分别代表字母字符位、数字字符位、字母字符位。增量值 110101 的含义是:第一位字母每次递增 1(A->B->C),第二位数字每次递增 1,以此类推。这样系统在生成仓位时可以自动从 AA0101 一直推到 AB0302,不需要手工一条条建 bin。

LS10 这里有个容易搞错的地方:模板里的 N 在 SAP 里代表数字位,C 代表字母位,但这个字母位在生成仓位时是支持滚动的——从 A 滚到 Z 后继续 AA、AB。D01 里 ZM1 的前五个模板覆盖了不同的巷道起始字母(AA、BA、CA、DA、PA),本质上是用字母段把立体库的巷道直接编进了仓位号。

至于 0006 和 0007 两个模板,结构串比较特殊,属于自动化库或者特殊区域。0006 的模板 CNNCCCCCCC 用 AAF01F99 作起止值,看起来像是从 F01 到 F99 的区间生成;0007 用 ABCJGQJGQ 做结构,字母位含 J、G、Q 这种非常规字符,这种一般用于高位货架的层位编码。复制这套模板到自己的项目时,务必对照实际的物理货架布局确认起止范围,别把 F01~F99 直接用在只有 20 列的货架上——生成出大量空仓位,后面查询和报表会被干扰。

3.3 存储单位类型与容量占用:S1 默认单位

存储单位类型定义路径为 SPRO -> Material -> Define storage unit types。D01 只定义了一个单位:

存储类型SUT名称容量使用
D01S1Normal SU1

S1 对应标准托盘或标准周转箱。容量使用填 1 意味着一个 S1 占一个仓位容量单位。如果仓库里同时有大托盘、小周转箱,建议按实际体积比例填容量占用,比如大托盘占 2、小箱占 0.5,否则系统在做 Capacity Check 时会把一个仓位塞满为止,容易出现超容量存放。

这里有一个隐性的前后依赖:存储箱类型、存储单位类型、存储箱结构三者必须联动。先定结构(仓位编码规则),再定箱类型(哪些仓位是普通位、哪些是暂存位),最后把存储单位类型分配到存储箱类型和存储类型。D01 在后面的章节里做了明确的分配(S1 分配给 E1、B1、P1,S1 分配给 ZM1、ZM2),顺序不能反。

4. 策略配置:搜索激活是 WM 自动化的核心开关

4.1 存储类型搜索:OMLY 里按移动类型引用定义去向

存储类型搜索激活路径是 Materials Management -> Warehouse Management -> Strategies -> Activate storage type search,事务代码 OMLY。D01 的配置分成两部分:策略定义和移动类型引用。

策略定义里根据S、S 存储类型、WP 引用编号(Ref)的不同组合,把不同场景的搜索顺序钉死。比如 D01 下 200 系列编号,对应的是收货暂存(ZM2)与正式存储区(ZM1)的先后顺序——系统收货后先找 ZM2 暂存,再由后续上架 TO 转到 ZM1。编号 200、K00、Q00 这些不同搜索编号,分别服务于不同移动类型的默认去向。

移动类型引用的范围很长,但核心逻辑是给每一个移动类型分配合适的搜索策略编号。几个常考移动类型的取值:

移动类型含义引用编号
101GR for purchase order101
103GR production order103
201GI to cost center201
261GI to production order261
301Stock transfer plant to plant301
311Stock transfer storage location311
501GR without purchase order501
521GR from production521
601GI to delivery note601
561Initial entry of stock561
711/712Differences negative/positive711/712

实际配置时,我一般建议 101、501、521 这类收货移动类型走同一个上架搜索编号,601 这类发货移动类型走下架搜索编号。D01 里还用 999 做取消类移动类型的引用编号——比如 102(取消 101 的收货)指向 999,这个细节很容易被忽略,但取消操作如果没配搜索策略,系统在处理反向过账时会直接报"找不到存储类型"。

这里再补充一个实战细节:WM 的 Storage type search 是按移动类型逐条配置的,但同一种业务场景可能对应多个移动类型。例如 319 在 D01 里同时出现在 Replenishment for Production 和 Line replenishment 的映射里,这就是同一个补货流程的不同触发点。配置时如果漏了后一个,产线补货会走到默认策略,结果完全不一样。

4.2 存储段和存储箱类型搜索:OMLZ 与 OMM1 的粒度控制

存储段搜索激活路径是 Strategies -> Activate storage section search,事务代码 OMLZ。D01 里 ZM1 对应的存储段 001(Normal Bin Area)被激活,搜索类别和 WPC 参数保持默认。这个配置的业务含义是:系统做上架搜索时,只在 Normal Bin Area 里找仓位,自动跳过 Interim Bin Area 和 Warehouse Working Area。

存储箱类型搜索激活路径是 Strategies -> Activate storage bin type search,事务代码 OMM1。D01 在 2.3.x 小节里把存储箱类型 D01、E1、B1、P1 全部用于搜索,并且做了两轮分配:

  • Assign Storage unit types to Storage bin type:把 S1 分配给 E1、B1、P1
  • Assign Storage unit types to Storage type:把 S1 分配给 ZM1、ZM2

第一轮分配决定了某种存储单位可用的箱类型范围,第二轮决定了可用的存储类型范围。这两轮分配是 WM 自动上架的核心约束:系统在搜索仓位时,先按移动类型找到存储类型,再按存储单位匹配箱类型,最后在匹配的箱类型集合里按仓位结构搜索具体 bin。

这个环节我见过最多的翻车是只配了 Storage bin type search,没配 Storage section search,导致系统在多个存储段之间随机挑位。表面看仓位能生成,但上架到 Interim Bin Area 的货物不会自动参与下架搜索,时间一长临时段的库存变成死库存。所以 OMLZ 和 OMM1 必须成对激活,缺一不可。

4.3 上架与下架策略:FIFO、LIFO、固定仓位到底怎么选

D01 在策略章节里大量使用了 See 1.3 or refer directly to customising 的写法,意思是这些策略不在文档里重复列出,直接沿用存储类型定义中的策略字段。这里真正需要注意的是策略类型的理解。

固定仓位策略(Fixed bins):适用于长期绑定 SKU 的货位,比如某些大件或高价值物料固定在指定仓位。D01 的场景里,固定仓位不是全局启用的,而是通过部分物料的仓位绑定来实现。

开放存储策略(Open storage):跟固定仓位相反,只要仓位为空或容量足够,系统可以在整个存储段内自由分配。这是 D01 里 ZM1 的主要工作方式。

现有库存追加策略(Addition to existing stock):允许新收货的物料加到已有同批次库存的仓位里。如果这个策略没配,系统会把同一 SKU 的货分散到多个仓位,等出库时才发现一个个仓位都是半托,拣货效率极低。

FIFO 策略:按入库时间先后出库。注意 D01 里 FIFO 和 "stringent FIFO"是两个不同策略,后者不仅按入库时间,还要求库位顺序必须严格遵守时间排序,连同日同批入库的物料也要按仓位号顺序出库。这种严格模式适合保质期敏感的物料,但代价是 TO 单生成时间会变长。

LIFO 策略:后进先出,适用于非保质期敏感的物料或某些特定的翻转场景。部分托盘数量策略(Partial pallet quantity):控制当一个仓位内的库存不足以满足出库需求时,是否允许拆托。如果关闭这个策略,系统只会挑选整托仓位,可能出现有库存但拣不出的情况。

配置策略时最重要的原则是:上架策略和下架策略不是同一个概念。上架策略决定货物放到哪个仓位,下架策略决定从哪个仓位取货。D01 里 ZM1 的上架和下架都指向 P/F,但如果业务上有单独的整托出库区和拆零拣货区,就一定要拆成两套策略,否则拣货员会频繁在整托区拆零,打乱整个库位规划。

5. 配置避坑:WM 实施里最常踩的五个坑

5.1 坑一:跳过 EC09 模板复制,导致搜索策略界面缺系统条目

现象:手工创建仓库号后,进入 OMLY 配置存储类型搜索,界面里没有系统预置的移动类型引用,每个移动类型都要手工建。

原因:EC09 copy template 0001 to D001 不仅复制了仓库号的基础参数,还把所有系统预置的移动类型引用、搜索策略序号一起带过来。跳过这一步,相当于从零开始,SAP 不会有任何默认参考。

解决:先执行 EC09 复制模板,再检查 OMLY 里移动类型引用完整性。文档明确写了 Use EC09 copy template 0001 to D001 at first,这一步不是建议,是强制前提。

5.2 坑二:存储段搜索未激活,临时段库存变成死库存

现象:上架 TO 单正常生成,但部分物料被放到 Interim Bin Area,之后这些物料再也搜不到,下架流程一直跳过它们。

原因:OMLZ 里存储段搜索没激活,系统在存储类型级别搜索时,把 ZM1 下所有存储段都当成可搜索区域,包括临时段。临时段的设计目的是收货缓存,不应参与常规下架,但系统并不知道这一点。

解决:按 D01 的配置,在 OMLZ 里激活 ZM1 下的 001(Normal Bin Area)存储段搜索,并确认 002、003 段没有参与搜索。改完后重新生成 TO 单,临时段的库存会被正确排除。

5.3 坑三:移动类型 999 引用丢失,取消收货直接报错

现象:执行 MBST 取消物料收货时,系统报错“无法确定存储类型”,或生成的冲销 TO 单没有仓位信息。

原因:OMLY 的移动类型引用里漏配了 999。101 收货有引用,对应的取消移动类型 102、以及通用取消 999 没有引用,导致系统反向过账时找不到去向。

解决:在 OMLY 里把 999 分配给所有取消类移动类型。D01 的引用表里 999 出现了很多次——102、202、256、262、302、312、322、332、452、502、522、552、562、602、856、964,这些全部指向 999,不要只配主移动类型忘了对应的冲销类型。

5.4 坑四:存储箱结构起止范围配太宽,生成大量空仓位

现象:LS10 配置完成后,用 LS11 批量生成仓位,结果仓位数量远超实际货架数,报表里全是空位。

原因:模板里的起止值没有按实际物理货架收敛。比如 ZM1 的 0005 号模板从 PA0101 到 PB0302,如果仓库实际只有 P 巷道 1 排,就会多出一倍仓位。

解决:配置 LS10 前,先拿物理货架图纸画出巷道、列、层的最大最小值,再对应填起止值。仓位编码规则宁缺毋滥,仓位不够可以后续手工补,仓位太多清理起来非常麻烦。

5.5 坑五:SU 管理激活后没做容量检查,仓位超量存放

现象:WM 库存显示仓位占用率超过 100%,甚至同一仓位出现多个不同物料直接摞放。

原因:仓库号控制参数里 SU management active 勾选了,但存储单位类型 S1 的容量使用没配,或者 Capacity Check 逻辑没在仓位里体现。系统认为一个仓位可以无限放。

解决:确认 S1 的 Capacity usage 为 1,存储箱结构里每个 bin 的最大容量按实际物理容量设好。D01 的场景比较简单,但如果你的仓库有大小托盘混用,一定要按体积比例把容量占用填准确。

6. 验证配置:用一个 101 收货跑完全链路再放行

配置做得再完整,不跑一个实际的仓储流程,你永远不知道主数据、策略、编号范围之间是否真的咬合。D01 文档里没有专门写验证章节,但作为实施习惯,我每次做完 WM 配置都会强制走一遍下面的验证链路。

第一步,先做最基础的号段检查。进入事务代码 OMLW,查看 TR、TO、Quant、Posting Change 四类对象的外部给号是否打开。然后执行一个 101 收货过账,用 MM 物料凭证生成一个 TR 号,确认号段落在 3000000001~3999999999 区间。如果 TR 号是空的或者落在其他区间,说明编号范围分配 (Assignment) 没绑定到正确对象上,后续所有 WM 单据都会有问题。

第二步,验证存储类型搜索。手工创建一个 TR,然后进事务代码 LT03 或直接由系统自动创建 TO。观察 TO 单的仓位建议:如果收货移动类型 101 对应的是上架到 ZM1 的 Normal Bin Area,说明 OMLY 里存储类型搜索的引用编号生效了。如果 TO 的仓位落在 Interim Bin Area,不要急着改配置,先回 OMLZ 看一眼存储段搜索是否只激活了 001 段。

第三步,验证下架流程。做一个 201 发货或 601 发货单,生成拣货 TO 单,检查系统是否优先从 ZM1 的 Normal Bin Area 拣货,而不是跑到 ZM2 或者临时段。同时观察 FIFO 策略是否生效:如果同一物料有两个批次,系统应该优先推荐先入库的批次仓位。

第四步,验证存储单位类型分配。在 WM 屏幕上查看 S1 存储单位对应的仓位类型,确认当前仓位允许 S1 存放。这个步骤很多人会漏,但实际上常见错误是存储单位类型分配了,但存储箱类型分配没做,导致系统能找到仓位但不允许存放。

第五步,也是最后一步:做一次盘点差异。用 711/712 移动类型做盘盈盘亏过账,检查 999 存储类型是否被正确引用,差异库存是否进入 999 区域,而不是混入 ZM1 的正常库存。这一步能同时验证 OMLY 里的移动类型引用、999 存储类型配置、以及存储段搜索是否把 999 区域正确隔离。

上面五步走完,WM 配置的主链路才算真正验证通过。不夸张地说,这套验证流程我每次做新项目都强制走一遍,不为别的——上次跳过第二步直接上量,结果 100 多个 TO 单全部落到临时段,仓库工人抬了一整天的货,这个教训让我后来再也不敢省略链路验证。希望这些配置方法和验证习惯能帮你在 WM 实施路上少踩几个坑,跑通一次之后,后面的优化就有底气了。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询