☰
SAP WM配置实战:从EC09模板复制到策略激活的完整指南
2026/10/31 11:16:14 网站建设 项目流程

简介:面向SAP实施顾问与仓储管理人员的一份WM模块配置参考文档,聚焦仓库主数据与存取策略两大核心配置链路,帮助读者理解如何通过参数设置优化物料流与库存控制。压缩包内共1个doc文件,约572KB,以章节化文档形式组织,涵盖仓库号控制参数、编号范围、存储类型与存储段、存储箱类型及结构等主数据定义,以及存储类型搜索、固定仓位、开放存储、托盘与先进先出等策略的激活与配置。内容按MASTER DATA与STRATEGIES两大板块展开,并附有危险品、作业活动与移动类型等章节,便于按配置节点逐项对照查阅。已有789人学习下载,适合需要梳理WM配置逻辑、搭建测试环境或查漏补缺的初中级顾问参考使用。

1. 从 EC09 复制模板说起:SAP WM 配置环境到底怎么搭

第一次在测试机里点开 SPRO 配 WM,我犯过一个很典型的错:直接在生产客户端里改仓库号 D01 的控制参数,改完保存,系统提示“请求已生成”,我以为没事,结果第二天做 101 收货,转储需求死活带不出存储类型,翻了一下午才发现是编号范围没分配。SAP WM 这套配置的坑,几乎都集中在“先建什么、后建什么”的顺序上——主数据没铺好,策略激活了也是空转;编号范围没分配,单据号直接断档。这篇笔记按一份真实的 WM 配置文档(仓库号 D01、存储类型 ZM1/ZM2、策略 PF)把环境从零搭一遍,适合刚接手 WM 配置的 MM 顾问和运维,也适合需要复现一套测试环境做验证的开发者。装之前先把版本和客户端定清楚,后面每一步才有对照。

2. 环境准备与主数据配置:从仓库号 D01 到存储箱结构

2.1 版本、客户端与传输请求的前置约定

动手之前先把三件事定死,不然后面全是返工。第一是版本,这份文档的配置路径是经典 SAP ERP 的 SPRO 菜单结构(Materials Management -> Warehouse Management),事务码 SPRO、OMLW、LS10 这些在 ECC 和 S/4HANA 的兼容包里都能用,但 S/4HANA 里 WM 已经逐步被 EWM 取代,如果你在 S/4 上做,先确认系统里 WM 组件是否还激活,别配到一半发现菜单是空的。第二是客户端,配置一律在开发客户端(通常 100)做,测试客户端(200)只做验证,生产(300)只收传输,这条线乱了,后面传输号对不上,救都救不回来。第三是传输请求,文档里每一章都留了 Transport Number 一栏,意思很明确:所有配置都挂在同一个请求下,按章节顺序释放。

我一般会先建一个请求,命名带上模块和日期,比如D01WM_CFG_2024,然后每完成一章就进去看一眼对象有没有漏挂。常见做法是配置前用 SE10 查一下有没有别人未释放的同模块请求,避免两个人往一个请求里塞对象,释放时互相打架。

提示:开发客户端里配完不要急着释放请求,先在测试客户端用 SCC1 或 STMS 导入验证一遍,确认收货、转储、拣配三条链路都通,再放行到生产。

2.2 用 EC09 复制模板 0001 到 D001

文档第一句就是“Use EC09 copy template 0001 to D001 at first”,这是整个配置的起点。EC09 是仓库号复制工具,作用是把一个参考仓库号的全部自定义配置(存储类型、策略、移动类型参考等)整体拷到新仓库号,省得你从空白开始一条条建。

# 事务码 EC09 操作路径(在 SAP GUI 命令框输入) # 1. 输入事务码 EC09 # 2. 源仓库号:0001(SAP 标准模板) # 3. 目标仓库号:D01(本项目仓库号) # 4. 勾选 "Copy storage bins" 视需要,测试环境建议不勾,避免带入模板的箱位数据 # 5. 执行,系统生成一个传输请求,记下请求号

这里的关键参数是源仓库号 0001,它是 SAP 交付的标准参考仓库,里面预置了一套完整的存储类型和策略示例。复制过来之后,D01 就有了一个可运行的骨架,你只需要按项目实际改 ZM1、ZM2 这些存储类型,而不是从零建。注意复制时“Copy storage bins”这个勾选项,测试环境我一般不勾,因为模板里的箱位结构和你实际的货架布局对不上,带进来反而要一条条删;生产环境如果箱位已经规划好,可以勾上再批量调整。

复制完成后立刻做一件事:用 LS03N 或 LS26 查一下 D01 下有没有生成存储类型,确认复制真的生效了。我见过复制中途报错但界面没明显提示的情况,结果后面配策略时存储类型搜索表是空的,排查半天才发现是复制没跑完。

2.3 仓库号控制参数与编号范围:SPRO 与 OMLW

复制完骨架,第一件要改的是仓库号控制参数,事务码 SPRO,路径 Materials Management -> Warehouse Management -> Master Data -> Define control parameters for warehouse number。文档里给的参数值很具体,我照着列一下对照表:

参数项文档取值说明
Warehouse numberD01本项目仓库号
Unit of weightKG重量单位,影响容量检查
1st default UoML第一默认计量单位
2nd default UoMA第二默认计量单位
SU management activeYes启用存储单位管理,托盘/箱级别追踪
Blocking methodB冻结方式,B 表示按存储箱冻结
Capacity Check视配置容量检查开关,影响上架策略

SU management active 设成 Yes 是个分水岭:开了之后,系统按存储单位(Storage Unit)管理库存,上架时要指定 SU 类型,策略里的“托盘策略”“部分托盘策略”才有意义;不开的话,很多基于 SU 的策略直接失效。这个参数一旦有库存数据就很难改,所以测试环境先按生产预期定好。

紧接着是编号范围,事务码 OMLW,路径 Master Data -> Define number ranges。文档里分了 Assignment 和 Intervals 两块,Assignment 把仓库号和编号范围对象绑起来,Intervals 定义号段。文档给的号段是 01 从 300000000 到 399999999,覆盖 TR(转储需求)、TO(转储订单)、Quant、Posting Change 四类对象。

# 事务码 OMLW # 1. 进入后先看 Assignment 页:确认 D01 已分配到编号范围 01 # 2. 切到 Intervals 页,为以下对象各建一条 01 号段: # - Transfer requirement 300000000 - 399999999 # - Transfer order 300000000 - 399999999 # - Quant 300000000 - 399999999 # - Posting change notice 300000000 - 399999999 # 3. 保存,挂到同一个传输请求

号段起点选 300000000 而不是 000000001,是给标准模板和后续扩展留空间,这个习惯值得保留。Assignment 页如果 D01 没绑上 01,后面做 101 收货时系统会报“编号范围未定义”,单据根本生成不了——这就是我开头踩的那个坑。配完立刻用 MB1B 做一笔 311 转储测试,看能不能生成 TR 号,能生成就说明号段通了。

2.4 存储类型、存储段与存储箱类型:SPRO 与 LS10

主数据的核心是三层结构:存储类型(Storage Type)-> 存储段(Storage Section)-> 存储箱类型(Bin Type)。文档里 D01 下建了 ZM1(MKC Storage Area,激活 SU 管理,上架策略 PF)和 ZM2(MKC Issue Precedence Area,同样激活,策略 PF),另外还有 902、911、914、916、921、922、998、999 这些标准中间区域,这些是 SAP 预置的,复制模板时已经带过来,不用重建,但要确认它们的状态。

存储段在文档里给了四条:ZM1001 Normal Bin Area、ZM1002 Interim Bin Area、ZM1003 Warehouse Working Area、ZM2001 Total Area。存储段是存储类型内的细分,比如一个高架库存储类型下分“正常货架区”和“暂存区”,策略搜索时会用到。

存储箱类型给了 D01、E1、B1、P1 四个:Normal Bin Type、Interim Bin、Repacking Bin Area。箱类型描述的是物理容器的规格,和存储单位类型(SUT)配合使用。

存储箱结构用 LS10 定义,这是最容易配错的一步。文档里 ZM1001 的结构模板是AA NNNN CCCC AB CC DD,起始 AA0101,结束 AB0302,增量 110101。这串字符的含义是:AA 是固定前缀,NNNN 是数字序列,CCCC 是校验位或分区码,后面的 AB、CC、DD 是层级分隔。配错一个字符,生成的箱位号就全乱,拣配时扫描枪扫不出来。

# 事务码 LS10 # 1. 输入仓库号 D01,存储类型 ZM1001 # 2. 结构模板填:AA NNNN CCCC AB CC DD # 3. Start: AA0101 End: AB0302 Increment: 110101 # 4. 执行 "Create bins" 生成箱位,先小范围测试,确认编号规则再批量 # 5. 用 LS03N 抽查几个箱位,核对显示格式

我一般会先只生成 10 个箱位做抽查,确认编号递增逻辑和实际货架编号对得上,再批量生成。批量生成前务必确认存储段已经分配好,否则箱位会挂到默认段上,后面做存储段搜索策略时全乱。

2.5 存储单位类型与指示器:容易被跳过但影响策略

存储单位类型(SUT)在文档里只建了一个:S1 Normal SU,容量使用率 1。SUT 是托盘、箱这些包装形式的抽象,上架策略里的“托盘策略”“部分托盘策略”都依赖它。指示器类配置(存储类型指示器、存储段指示器、特殊移动指示器、冻结存储指示器)文档里标了“No changes”,意思是沿用模板默认值,不用改。这里我的经验是:标 No changes 的章节不要真跳过,至少进去看一眼默认值是什么,因为复制模板带过来的默认值不一定符合你的业务,比如冻结指示器如果默认是“按存储类型冻结”,而你实际要按箱冻结,就得改。

3. 策略配置:存储类型搜索、上架与拣配策略的激活顺序

3.1 存储类型搜索与移动类型参考:OMLY

策略配置的第一枪是激活存储类型搜索,事务码 OMLY,路径 Strategies -> Activate storage type search。这张表决定了“某个移动类型进来时,系统按什么顺序去哪些存储类型找位置”。文档里 D01 的配置是这样的:

仓库号搜索标识存储类型序列说明
D01200200标准上架搜索
D012K200带 K 的搜索标识
D012Q200带 Q 的搜索标识
D01AZM2, ZM1上架优先 ZM2 再 ZM1
D01AKZM1特定场景只搜 ZM1
D01AQZM1特定场景只搜 ZM1
D01EZM1退货类搜索
D01EKZM1退货类搜索
D01EQZM1退货类搜索

搜索标识(Search Indicator)是移动类型和存储类型序列之间的桥梁,移动类型通过配置关联到搜索标识,搜索标识再指向存储类型序列。文档后半段列了一大串移动类型参考,101 收货、103 生产收货、201 成本中心发料、261 生产发料、301/311 转储、551 报废、601 发货,每个都标了对应的搜索标识。这张表是策略能不能跑通的总开关,配错一个移动类型的搜索标识,那类业务就找不到存储类型。

# 事务码 OMLY # 1. 输入仓库号 D01 # 2. 在搜索标识列依次建:200、2K、2Q、A、AK、AQ、E、EK、EQ # 3. 每个标识后填存储类型序列,多个类型用空格分隔,按优先级从左到右 # 4. 切到 "Movement Type Reference" 页,把 101/103/201/261/301/311/551/601 等 # 逐个关联到对应搜索标识 # 5. 保存,挂同一请求

这里有个取舍:搜索标识 A 配了 ZM2 在前、ZM1 在后,意思是上架时先试 ZM2(发料优先区),满了再进 ZM1(主存储区)。如果你的业务是“主存储区优先”,就把顺序反过来。这个顺序不是拍脑袋定的,要结合仓库实际动线——收货口离哪个区近、哪个区周转快,顺序就按动线来。

3.2 存储段搜索与箱类型搜索:OMLZ 与 OMM1

存储类型搜索决定“去哪个区”,存储段搜索决定“去区里的哪一段”,箱类型搜索决定“用哪种箱子”。三个搜索是串联的,前一个没结果,后一个不会触发。

存储段搜索用 OMLZ,文档里 D01 配了一条:存储类型 ZM1,存储段 0001,搜索标识 002。意思是 ZM1 下按存储段 0001 搜索,标识 002 关联到具体的段序列。箱类型搜索用 OMM1,文档里这一步的表格是空的,说明项目里没有启用箱类型搜索,或者沿用默认。空表不代表不用配,我一般会进去确认一下“是否激活”的开关状态,如果业务需要按箱型区分(比如大箱只能进大货架),就得把 SUT 和箱类型的分配表填上。

文档 2.3.3 和 2.3.4 两节标题几乎一样(Assign Storage unit types to Storage unit type / to Storage bin types),这是原文档的笔误,实际是“SUT 分配给箱类型”和“SUT 分配给存储类型”两张表。D01 下 ZM1 和 ZM2 都分配了 S1,箱类型 E1、B1、P1 也分配了 S1。这个分配决定了上架时系统知道“这个存储类型接受哪种包装”,没分配的话,带 SU 管理的上架会报“存储单位类型不匹配”。

3.3 上架策略:固定箱、空箱、托盘与散装

上架策略这一大块,文档里很多节写的是“See 1.3 or refer directly to customising”,意思是策略参数在存储类型定义(1.3 节)里已经配了,这里只是确认。真正需要单独动的是托盘策略(2.9 节),事务码 SPRO,路径 Strategies -> Putaway strategies -> Define strategy for Pallets。

托盘策略的核心是“存储类型控制”和“箱区段(Bin Sections)”。存储类型控制决定这个类型下托盘怎么放,箱区段把存储类型再切成几个物理区段,托盘按区段分配。文档 2.9.2 和 2.9.3 的表格是空的,说明项目里没启用箱区段细分,托盘直接按存储类型整体管理。如果你的仓库有“重货区/轻货区”之分,这里就得填箱区段,并把箱位分配到区段。

固定箱策略(2.5)、开放存储策略(2.6)、追加现有库存策略(2.7)、空箱策略(2.8)这几节,文档都指向 1.3 节的存储类型定义。我的做法是:在存储类型定义里把“上架策略”字段填上对应标识(比如 P 表示托盘策略、F 表示固定箱),然后回到策略章节确认搜索链路上这个标识能被触发。策略标识填了但搜索表里没有对应条目,等于白填。

3.4 拣配策略:FIFO、LIFO、严格 FIFO 与有效期

拣配策略和上架策略是两套逻辑,上架找“哪里能放”,拣配找“先拿哪个”。文档 2.12 到 2.17 列了 FIFO、严格 FIFO、LIFO、部分托盘、大小数量、有效期这几类,大部分写“See 1.3”,也就是在存储类型的“库存出库策略”字段里配。

FIFO 和严格 FIFO 的区别值得说清楚:普通 FIFO 按收货日期先进先出,允许同一批次内混拣;严格 FIFO 要求整批次出库,不允许拆批。食品、医药类通常用严格 FIFO,普通物料用 FIFO 就够。LIFO 是后进先出,适合堆放式存储、不关心批次时效的场景。有效期策略按到期日排序,和 FIFO 可以叠加使用。

# 拣配策略配置位置(SPRO) # Materials Management -> Warehouse Management -> Strategies -> Stock removal strategies # 1. 进入对应策略节点(如 FIFO) # 2. 确认存储类型 ZM1/ZM2 的 "Stock removal strategy" 字段已填 F(FIFO)或 L(LIFO) # 3. 若用有效期策略,确认物料主数据的有效期字段已维护,否则排序无依据 # 4. 保存后做一笔 601 发货测试,看系统选的批次是否符合预期

这里有个隐藏依赖:有效期策略依赖物料主数据里的有效期,主数据没维护,策略排序就是空的,系统会退回到默认顺序。我见过配了有效期策略但拣配还是乱序的案例,查到最后是物料主数据没填保质期。

3.5 移动类型与自动 TO 创建:活动配置收尾

第 4 章 Activities 是配置的收尾:需求类别(4.1)、装运类型(4.2)、移动类型(4.3)、库存转储与补货控制(4.4)、自动 TO 创建(4.5)、确认(4.6)。移动类型这块文档列了 101、102、103、104、201、202、261、262、301、302、311、312、319、321、331、332、451、452、453、454、501、502、521、522、551、552、561、562、601、602、651、711、712、855、856、861、862、911、912、919、920、921、922、961、962、963、964、998、999,基本覆盖了 WM 相关的全部标准移动类型。

自动 TO 创建(4.5)是让转储需求(TR)自动生成转储订单(TO),不用人工干预。配置位置在 SPRO 的 Activities -> Set up autom. TO creation for TRs/post. change notices,按移动类型和仓库号设开关。开了之后,101 收货生成 TR 的同时自动出 TO,仓库直接可以执行。这个开关在测试环境建议先关,手工确认 TR 内容正确后再开,否则错误数据会自动流转到 TO,清理起来很麻烦。

4. 避坑与排查:WM 配置里最容易翻车的五个点

4.1 现象:101 收货后没有生成 TR,单据号为空

原因:编号范围没分配,或者 OMLW 里 D01 没绑到 01 号段。这是最高频的坑,尤其在新客户端里复制模板后忘了检查 Assignment 页。

解决:进 OMLW 看 Assignment 页,确认 D01 对应 01;再看 Intervals 页四类对象的号段是否都存在且未被占用完。改完用 MB1B 做一笔 311 测试,能出 TR 号即通。

4.2 现象:上架时系统提示“未找到存储类型”,但 OMLY 里明明配了

原因:移动类型的搜索标识没关联,或者搜索标识指向的存储类型序列里,那些存储类型没有激活 SU 管理/容量检查不通过。搜索是逐级过滤的,第一级存储类型搜索过了,第二级存储段搜索没结果,整体也会报找不到。

解决:按 OMLY -> OMLZ -> OMM1 的顺序逐级查。先确认移动类型在 OMLY 的 Movement Type Reference 页有记录,再确认搜索标识对应的存储类型序列非空,最后确认存储段和箱类型分配表有数据。用 LS24 查一下目标存储类型下有没有可用空箱,空箱为零也会报这个错。

4.3 现象:LS10 批量生成箱位后,编号跳号或格式不对

原因:结构模板的字符位和起始/结束值不匹配,或者增量值设错。文档里 ZM1001 的模板AA NNNN CCCC AB CC DD有固定位和序列位,起始 AA0101、结束 AB0302、增量 110101,增量不是简单的 +1,而是按层级进位。

解决:先只生成 5 到 10 个箱位,用 LS03N 逐个核对显示格式,确认序列位递增逻辑正确再批量。已经生成错的箱位,用 LS10 的删除功能清掉重来,不要手工改箱位号,手工改会破坏结构一致性。

4.4 现象:策略配了但拣配顺序还是乱的

原因:拣配策略依赖的排序字段没数据。FIFO 依赖收货日期,有效期策略依赖物料主数据有效期,部分托盘策略依赖库存数量。字段为空时系统退回默认顺序,看起来就像策略没生效。

解决:抽查几笔库存,用 MMBE 或 LS24 看收货日期、批次、有效期是否完整。物料主数据缺字段的补维护,历史库存缺日期的做一次数据修正。策略本身不用改,改数据源。

4.5 现象:传输到测试环境后策略全部失效

原因:传输请求漏挂了对象。WM 配置的对象分散在多个表里,OMLY 的搜索表、LS10 的箱位结构、SPRO 的存储类型定义可能挂在不同的请求下,释放时只放了一部分。

解决:释放前用 SE10 展开请求,逐个检查对象清单,对照文档章节核对有没有漏。测试环境导入后用 SPRO 逐章抽查关键表,重点看 OMLY 搜索表、存储类型定义、编号范围三处。养成“一章一检查、释放前全量核对”的习惯,比事后救火省事得多。

5. 装完怎么验证:三条链路跑通才算配置落地

配置全部挂上请求、导入测试客户端之后,别急着宣布完成。我验证一套 WM 配置,固定跑三条链路,每条都从业务单据走到库存变化,任何一条断掉都说明配置有缺口。

第一条是收货链路:MB1B 做 101 收货,看是否生成 TR,TR 是否自动或手工生成 TO,TO 确认后库存是否落到 ZM1 的某个箱位。用 LS24 查箱位库存,用 MMBE 查物料总库存,两边数字要对得上。这条链路验证的是编号范围、存储类型搜索、上架策略、自动 TO 创建四块配置。

第二条是转储链路:MB1B 做 311 库存地点转储,看 TR 生成后 TO 是否按策略选到目标箱位,确认后源箱位减、目标箱位增。这条验证存储段搜索和箱类型搜索。

第三条是发货链路:VL01N 建交货单,VL02N 做 601 发货,看拣配时系统选的批次是否符合 FIFO 或有效期策略预期。这条验证拣配策略和移动类型参考。

三条链路跑完,再补一个边界测试:做一笔 551 报废,确认 999 差异存储类型能被正确触发;做一笔 921 手工过账变更,确认过账变更通知能生成。边界测试能暴露主流程覆盖不到的配置空洞。

验证项事务码预期结果失败时先查
101 收货MB1B生成 TR 和 TO,库存入 ZM1OMLW 号段、OMLY 搜索表
311 转储MB1BTO 选到目标箱位OMLZ 存储段、OMM1 箱类型
601 发货VL02N按 FIFO/有效期选批物料主数据有效期、拣配策略字段
551 报废MB1B触发 999 差异类型移动类型参考、存储类型定义
921 过账变更MB1B生成过账变更通知活动配置 4.4/4.5

验证过程中如果某条链路失败,回到对应章节的配置表逐项核对,不要凭记忆改。我习惯把每次验证的单据号记在一个小本子上,下次环境重建时直接照着单据号复现,比翻配置表快得多。

从那以后我每次配完 WM,不管多赶时间,三条链路加两个边界测试都强制走一遍,宁可多花半天验证,也不在生产环境里被“单据号为空”这种问题追着跑。这套配置文档的价值不在于它列了多少张表,而在于它把“先复制模板、再改主数据、最后激活策略”的顺序固定下来了,照着顺序走,坑就少一半。希望帮到你。

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

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

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

立即咨询