简介:面向SAP实施顾问与仓储管理人员的一份WM模块配置详解文档,聚焦仓库号控制参数、编号范围、存储类型与存储段等主数据设定,以及存储类型搜索、固定仓位、开放存储、托盘与先进先出等策略的激活与定义,帮助读者理解WM与MM集成下的物料流与库存控制逻辑。压缩包内共1个doc文件,约572KB,按主数据、策略、危险品、作业活动等章节组织,目录层级清晰,便于对照系统逐项配置与查阅。已有789人学习下载,适合需要系统梳理WM配置要点、查漏补缺的初中级顾问参考,也可作为项目实施中的配置核对清单。
1. 从 EC09 复制模板说起:SAP WM 配置环境到底怎么搭
第一次在测试客户端里点开 SPRO 配仓库号,很多人会直接新建一个 D01,然后发现后面存储类型、编号范围、策略搜索全都要从零填,填到一半还发现编号范围跟已有工厂冲突。血泪经验是:SAP WM 配置不要从空白开始,标准系统里已经有一套模板仓库号 0001,正确做法是先用 EC09 把 0001 复制成项目仓库号,再在副本上改参数。这套环境几乎每个上 WM 模块的项目都会碰到,配不好轻则 TO 创建失败,重则库存和 MM 对不上账。这篇笔记按一份真实的 WM 配置文档结构走一遍:先列环境与版本前提,再逐章落到 SPRO 路径和事务码,最后给验证和排错。适合刚接手 WM 配置的顾问,也适合想复现一套可运行仓库模型的开发者。
2. 环境与版本前提:客户端、仓库号与复制模板
2.1 先确认客户端和模块状态
动手之前先把环境列清楚,不然后面每一步都可能白做。SAP WM 依附于 MM 的库存管理,所以第一件事是确认当前客户端里 MM 的工厂、存储地点已经配好,物料主数据能正常做收货。常见做法是在测试客户端操作,传输目标单独记录,避免直接在生产客户端点 SPRO。
需要确认的几项:
| 检查项 | 怎么看 | 合格标准 |
|---|---|---|
| 客户端类型 | 系统状态 | 测试或定制客户端,非生产 |
| MM 工厂/存储地点 | OX10 / OX09 | 至少一个工厂下有存储地点 |
| 物料主数据 | MM01/MM03 | 有可用的物料,工厂视图已扩展 |
| 仓库号是否已存在 | OVL3 或表 T300 | 目标仓库号未被占用 |
| 用户权限 | SU53 查权限对象 | 有 SPRO 与 WM 事务码权限 |
这份配置文档里仓库号定为 D01,重量单位 KG,第一默认单位 L,第二默认单位 A,SU 管理激活,阻塞方式 B,容量检查开启,批次缺失时按 TR 处理。这些参数不是随便填的,后面会逐项解释。
2.2 用 EC09 复制模板仓库号 0001
文档第一句就写了:Use EC09 copy template 0001 to D001 at first。这是整套配置的起点,也是最容易被跳过的一步。EC09 的作用是把一个已有仓库号的完整定制(存储类型、存储段、策略、移动类型参考等)整体复制到新仓库号,省掉大量手工建表。
# 事务码 EC09 操作顺序(在 SAP GUI 中执行,此处为步骤记录) # 1. 输入事务码 EC09 # 2. 源仓库号:0001 # 3. 目标仓库号:D01 # 4. 选择“复制全部”相关选项,执行 # 5. 检查日志,确认无报错后再进入 SPRO 逐项调整逻辑说明:EC09 复制的是仓库号级别的定制对象,包括存储类型、存储段、存储箱类型、策略配置等。参数上源仓库号必须是系统里已完整配置的模板,0001 是标准系统自带的参考仓库号;目标仓库号填项目实际要用的 D01。执行后一定要看日志,如果目标仓库号已存在或有依赖对象,复制会部分失败,这时候不要硬改,先清理目标仓库号再重来。
我一般会在复制完成后立刻用 OVL3 看一眼仓库号视图,确认 D01 已经出现在列表里,再往下走。复制成功不等于配置正确,它只是把骨架搬过来,真正的参数取舍在下面几章。
3. 主数据配置:仓库号参数、编号范围与存储结构
3.1 仓库号控制参数:SPRO 路径与关键字段
仓库号控制参数是整个 WM 的入口,路径是 Materials Management -> Warehouse Management -> Master Data -> Define control parameters for warehouse number,事务码 SPRO。文档里 D01 的参数如下:
| 字段 | 取值 | 含义与取舍 |
|---|---|---|
| Warehouse number | D01 | 项目仓库号,与 EC09 目标一致 |
| Unit of weight | KG | 重量单位,影响容量检查 |
| 1st default UoM | L | 第一默认计量单位 |
| 2nd default UoM | A | 第二默认计量单位 |
| SU management active | Yes | 启用存储单位管理,托盘/箱级管理必需 |
| Blocking method | B | 阻塞方式,决定冻结库存的处理逻辑 |
| Capacity check | 开启 | 收货时校验存储类型容量 |
| Batch missing (TR) | 按 TR 处理 | 批次缺失时的传输需求行为 |
这里最容易被误改的是 SU management active。如果关掉,存储单位类型那一章就白配了,后面托盘策略也跑不起来。Blocking method 选 B 是文档给定值,不同项目可能选 A 或 C,改之前要跟业务确认冻结库存的处理方式,不要照抄。
3.2 编号范围:OMLW 下的分配与区间
编号范围决定 TR(传输需求)、TO(传输订单)、Quant、Posting Change 这些对象的流水号。路径是 Materials Management -> Warehouse Management -> Master Data -> Define number ranges,事务码 OMLW。文档给了两组信息:分配表和区间表。
分配部分,仓库号 D01 对应 NR-TR、NR-TO、Posting Change、RefNo、SU 等对象,编号都指向 01。区间部分:
| 区间 | 从 | 到 | 对象 |
|---|---|---|---|
| 01 | 300000000 | 1399999999 | Transfer requirement |
| 01 | 300000000 | 1399999999 | Transfer order |
| 01 | 300000000 | 1399999999 | Quant |
| 01 | 300000000 | 1399999999 | Posting change notice |
# OMLW 操作要点(SAP GUI 步骤记录) # 1. 进入 OMLW,选择“Assignment”页签 # 2. 为 D01 的各对象指定编号范围编号 01 # 3. 切到“Intervals”页签,维护 01 区间的起止值 # 4. 保存后检查是否有区间重叠告警逻辑说明:分配是把仓库号和编号范围编号绑起来,区间是定义这个编号能取到的数值边界。参数上起止值要留足余量,文档里从 300000000 开始是为了避开其他仓库号已用的号段。常见坑是两个仓库号共用同一个区间导致号码重复,保存时系统可能只给警告不报错,事后 TO 号冲突很难查。
3.3 存储类型、存储段与存储箱类型
存储类型是仓库的逻辑分区,路径 Materials Management -> Warehouse Management -> Master Data -> Define storage type,事务码 SPRO。文档里 D01 下建了这些:
| 存储类型 | 名称 | SU 管理 | 入库策略 | 出库策略 |
|---|---|---|---|---|
| 902 | GR Area From Vendor | - | - | - |
| 911 | GI Area for Cost Center | - | - | - |
| 914 | GI Area Production | - | - | - |
| 916 | Shipping Area Deliveries | - | - | - |
| 921 | Stock Transfers (StLoc) | - | - | - |
| 922 | Posting Change Area | - | - | - |
| 998 | Init. entry of stock bal. | - | - | - |
| 999 | Differences | - | - | - |
| ZM1 | MKC Storage Area | ACTIVE | P | F |
| ZM2 | MKC Issue Precedence Area | ACTIVE | P | F |
902/911/914/916 这些是标准中间区域,一般不需要改策略;ZM1、ZM2 是项目自建的实际存储区,SU 管理激活,入库策略 P(托盘策略),出库策略 F(FIFO)。这里 P 和 F 的选择直接决定第 4 章策略能不能生效,改之前先想清楚业务是按托盘入库还是按先进先出出库。
存储段路径是 Define storage sections,文档里 D01 下 ZM1 分了 001 Normal Bin Area、002 Interim Bin Area、003 Warehouse Working Area、2001 Total Area。存储箱类型在 Define storage bin types 下建了 D01 Normal Bin Type、E1 Interim Bin、B1 Repacking Bin、P1 Area。存储箱结构用 LS10 维护,模板串如 AANNNNCCCC 配合起止值和增量,决定货位编码怎么生成。
# LS10 维护存储箱结构(步骤记录) # 1. 事务码 LS10 # 2. 仓库号 D01,存储类型 ZM1001 # 3. 模板 AANNNNCCCC,起始 0101,结束 0302,增量 1 # 4. 保存后到 LS11 查看生成的货位逻辑说明:模板串里 A 代表字母位、N 代表数字位、C 代表固定字符,起止值定义编号范围,增量决定步长。参数上起始和结束不要跨得太大,否则 LS10 生成货位时会一次建出海量记录,测试环境容易卡住。我一般先在 ZM1001 小范围试生成,确认编码符合预期再铺开。
3.4 存储单位类型与指示器
存储单位类型路径是 Materials Management -> Warehouse Management -> Master Data -> Material -> Define storage unit types,文档里 D01 下 S1 Normal SU,容量使用率 1。存储类型指示器、存储段指示器、特殊移动指示器、阻塞存储指示器这几项文档标注 No changes,意思是沿用模板 0001 的配置,不额外改。
这里要提醒一句:No changes 不等于不用看。复制模板后这些指示器是带过来的,如果项目业务和模板假设不同,比如有危险品或特殊移动,就得回头补。文档里危险品章节整章 NA,说明这个项目不涉及,照做即可。
4. 策略配置:搜索激活与入库出库策略落地
4.1 激活存储类型搜索:OMLY 与移动类型参考
策略章的第一件事是激活存储类型搜索,路径 Strategies -> Activate storage type search,事务码 OMLY。文档给了 D01 下按移动类型配置的搜索顺序,比如 101 收货对应 200、K00、A00 等,202 对应 999,261 对应 261 等。
# OMLY 配置要点(步骤记录) # 1. 事务码 OMLY,输入仓库号 D01 # 2. 按移动类型维护存储类型搜索顺序,如 101 -> 200, K00, A00 # 3. 对取消类移动类型(102、104、202 等)单独指定,如 202 -> 999 # 4. 保存并检查搜索顺序是否有空档逻辑说明:OMLY 决定一个移动类型进来后,系统按什么顺序去找可用存储类型。参数上搜索顺序的第一个是首选,找不到才往后走。文档里把取消类移动类型指向 999(差异区),这是常见做法,避免冲销时又回到正常存储区。容易翻车的是漏配某个移动类型,收货时系统报“未找到存储类型”,这时候回 OMLY 补对应行即可。
4.2 存储段搜索与存储箱类型搜索
存储段搜索用 OMLZ,文档里 D01 下 ZM1000 对应存储段 01、002。存储箱类型搜索用 OMM1,配合 2.3.1 到 2.3.4 的分配:存储单位类型 S1 分配给存储箱类型 E1、B1、P1,存储类型 ZM1、ZM2 分配给 S1。
| 事务码 | 作用 | 文档中的关键配置 |
|---|---|---|
| OMLZ | 激活存储段搜索 | ZM1000 -> 段 01、002 |
| OMM1 | 激活存储箱类型搜索 | S1 分配 E1/B1/P1 |
| 2.3.3 | SU 类型分配给箱类型 | D01 下 S1 -> E1/B1/P1 |
| 2.3.4 | SU 类型分配给存储类型 | ZM1/ZM2 -> S1 |
这几步是链式的:存储类型搜索找到 ZM1,存储段搜索在 ZM1 里找段,存储箱类型搜索再按 SU 类型找合适的箱型。任何一环没配,系统就退回到更粗的粒度或者直接报错。常见做法是配完一层就用一个测试物料走一遍收货,看 TO 里带出的存储类型和货位对不对。
4.3 入库策略:托盘、固定箱与空箱
文档 2.5 到 2.10 覆盖固定箱、开放存储、追加现有库存、空存储箱、托盘、散装存储等策略,多数标注 See 1.3 或 refer directly to customising。真正有独立配置的是托盘策略,路径 Putaway strategies -> Define strategy for Pallets,事务码 SPRO,下分 2.9.1 存储类型控制、2.9.2 Bin Sections、2.9.3 分配 Bin 到 SU 类型。
# 托盘策略配置顺序(步骤记录) # 1. SPRO 进入 Define strategy for Pallets # 2. 2.9.1 确认 ZM1/ZM2 的存储类型控制,入库策略为 P # 3. 2.9.2 维护 Bin Sections,划分托盘存放区段 # 4. 2.9.3 把 Bin 分配给存储单位类型 S1 # 5. 用测试物料做 101 收货,检查 TO 是否落到托盘货位逻辑说明:托盘策略的核心是存储类型控制里的入库策略标记 P,加上 Bin Section 和 SU 类型分配,系统才能判断哪个货位能放一个整托盘。参数上 Bin Section 的划分要和实际货架一致,分配错了会出现“货位容量不足”的报错。我一般先在一个存储类型上验证通过,再复制到其他存储类型。
4.4 出库策略:FIFO、LIFO 与批次相关策略
出库侧文档列了 FIFO(2.12)、严格 FIFO(2.13)、LIFO(2.14)、部分托盘(2.15)、大小数量(2.16)、到期日(2.17)等,多数指向 1.3 的存储类型配置。ZM1、ZM2 的出库策略是 F,即 FIFO,这意味着出库时系统按入库时间先后找库存。
这里的关键取舍:FIFO 依赖 Quant 的入库日期,如果收货时日期没正确写入,FIFO 就变成随机取。常见做法是收货移动类型 101 正常过账后,用 LS24 看 Quant 的入库日期字段。LIFO 和到期日策略同理,选哪个由业务定,但选了就要保证对应日期字段有值,否则策略形同虚设。
4.5 策略扩展与激活
2.11 和 2.18 是入库、出库策略的扩展开发,文档写 Refer to programming request,说明这个项目没有自定义策略需求,跳过即可。如果项目要做自定义策略,流程是先开发策略程序,再在存储类型控制里激活对应策略标识,两步缺一不可。没开发就激活,系统会报策略不存在;开发了没激活,策略不生效。
5. 避坑与排查:WM 配置里最容易翻车的五件事
5.1 现象:EC09 复制后 D01 部分对象缺失
原因:目标仓库号在复制前已存在残留配置,或者复制时选了部分对象。解决:先用 OVL3 确认 D01 状态,清理残留后重新执行 EC09,复制完逐项对照模板 0001 的存储类型列表,缺的补上。
5.2 现象:收货时提示未找到存储类型
原因:OMLY 里对应移动类型没有维护搜索顺序,或者搜索顺序里的存储类型不存在。解决:回 OMLY 按移动类型补行,确认引用的存储类型在 SPRO 里已建且激活。取消类移动类型尤其容易漏。
5.3 现象:TO 创建成功但货位不对
原因:存储段搜索或存储箱类型搜索没配全,系统退回到默认货位。解决:依次检查 OMLZ 的段分配、OMM1 的箱型分配、2.3.3/2.3.4 的 SU 类型分配,用 LS24 看实际落位后反推是哪一层没生效。
5.4 现象:编号范围保存时报区间重叠
原因:多个仓库号共用同一编号区间,或区间起止值与其他对象交叉。解决:在 OMLW 里给 D01 分配独立区间,起止值留足余量,保存前用区间检查功能扫一遍。
5.5 现象:FIFO 出库取到的不是最早库存
原因:Quant 入库日期为空或错误,FIFO 排序失效。解决:检查收货移动类型的日期写入逻辑,用 LS24 抽查 Quant 日期字段,必要时补数据或调整策略为其他可用策略。
6. 装完怎么验证:用一张收货单跑通全链路
配置做完不等于跑通,验证要按一条完整链路走:物料主数据扩展 WM 视图 -> 101 收货生成 TR -> TR 转 TO -> TO 确认 -> 库存落到预期货位 -> 出库按策略取货。这条链路任何一环断了,前面的配置都要回头查。
先准备一个测试物料,MM01 扩展工厂和 WM 视图,WM 视图里指定存储类型 ZM1、存储段 001。然后做 101 收货:
# 验证链路(SAP GUI 步骤记录) # 1. MIGO 做 101 收货,工厂 + 存储地点,数量 1 托盘 # 2. LB10 查看生成的 TR,确认仓库号 D01 # 3. LT04 把 TR 转成 TO,观察系统建议的存储类型和货位 # 4. LT12 确认 TO,回 LS24 查看 Quant 落位和入库日期 # 5. MIGO 做 261 出库,观察 TO 是否按 FIFO 取最早 Quant逻辑说明:MIGO 收货触发 TR,LB10 是 TR 的查询入口,LT04 转 TO 时系统会按 OMLY 的搜索顺序给出建议存储类型,这一步最能暴露策略配置问题。LT12 确认后库存才真正落到货位,LS24 能看到 Quant 的存储类型、货位、入库日期。最后用 261 出库验证出库策略,如果取的不是最早入库的 Quant,回第 4 章查 FIFO 相关配置。
验证时重点看三个字段:TO 里的存储类型是否符合 OMLY 预期、货位编码是否符合 LS10 模板、Quant 入库日期是否有值。三个都对,基本可以认为这套 WM 配置跑通了。我一般还会补一个冲销测试,做 102 取消收货,确认取消类移动类型指向 999 差异区而不是回到正常存储区。
从那以后我每次配完 WM,都不看配置清单,而是强制走一遍 101 到 261 的完整链路,链路通了才算装完。希望帮到你。
本文还有配套的精品资源,点击获取