☰
SAP WM 配置核心逻辑:仓库号、存储类型与策略的依赖顺序
2026/10/27 14:02:00 网站建设 项目流程

简介:面向SAP实施顾问与仓储管理人员的一份WM模块配置详解文档,聚焦仓库号控制参数、编号范围、存储类型与存储段等主数据设置,以及存储类型搜索、固定仓位、开放存储、托盘与先进先出等策略的启用逻辑,帮助读者理解WM与MM集成下的仓储配置思路。压缩包内共1个doc文件,约572KB,按主数据、策略、危险品、作业活动等章节组织,目录层级清晰,便于对照系统逐项查阅。已有789人学习下载,适合需要梳理配置路径、查漏补缺或作为项目实施参考的中级读者使用。

1. 仓库号背后那套“先定坐标、再定规则”的配置逻辑

很多人第一次翻 SAP WM 的配置文档,会觉得它像一张填表清单:仓库号、编号范围、存储类型、存储段、策略开关,一项项填过去就完事了。但真正让 WM 跑起来的,不是这些字段本身,而是它们之间的依赖顺序——仓库号(Warehouse Number)是整张配置网的根节点,存储类型(Storage Type)挂在它下面,存储段(Storage Section)再挂在存储类型下面,策略搜索又反过来引用这些层级。顺序错了,后面全是玄学。这份配置文档的价值,就在于它把“先建什么、后建什么、哪些开关一开就改不回来”按章节固定下来,让一个 2004 年建、2022 年还在打印的仓库配置,能被后来的人读懂、复现、迁移。搞懂这套坐标体系,你才知道为什么改一个存储类型的策略标志,会连带影响上架搜索和拣选顺序。

2. 主数据层:仓库号、存储类型、存储段是怎么串起来的

2.1 仓库号控制参数:一个编号决定了整仓的行为基线

配置文档第一章第一件事就是Define control parameters for warehouse number,事务码 SPRO,路径落在物料管理下的仓库管理主数据。这一步填的不是“仓库叫什么”,而是一组行为开关:重量单位默认 KG、第一默认单位 L、第二默认单位 A、分散仓库管理是否激活、SU 管理是否激活(文档里填 Yes)、阻塞方式填 B、部分拣选和容量检查是否开启、批次缺失时 TR 如何处理。这些参数之所以放在最前面,是因为它们决定了后续所有移动的“物理约束”——SU 管理一开,系统就要求每次移动都绑定一个存储单位(Storage Unit),托盘、箱子的容量概念才成立;容量检查一开,上架策略在找空位时才会去比对存储类型的容量上限。

常见的实现思路是,仓库号控制参数相当于给整个仓库定了一套“物理法则”,后面的存储类型和策略都是在这套法则下做局部决策。所以文档里把它列为 1.1 而不是放到策略章节,是有道理的:策略再聪明,也绕不过仓库号层面的开关。我一般会这么理解——如果 SU 管理没开,后面 2.9 那套托盘策略基本是空转,因为系统根本不认“一个存储单位占一个位”这件事。

2.2 编号范围:TR、TO、Quant 的唯一标识从哪来

1.2 节把编号范围拆成 Assignment 和 Intervals 两块,事务码 OMLW。文档给出的分配表很直白:仓库号 D01 下,TR(Transfer Requirement)、TO(Transfer Order)、Quant、Posting Change 各占一个编号段,区间统一从 300000000 到 399999999。这里的关键不是数字本身,而是“编号范围按对象类型隔离”这个设计:TR 和 TO 是两种不同的单据,生命周期和并发量都不一样,共用一段号会互相挤占,排查问题时连单号都分不清是需求还是指令。

从机制上看,编号范围在 WM 里承担的是“单据身份”的职责。TO 是仓库里真正驱动搬运的指令,每一次上架、下架、内部移动都会生成 TO;TR 则是需求侧的记录,可能来自采购收货、生产领料、转储请求。两者编号段分开,意味着你可以只凭单号前缀判断这张单是“要搬”还是“已经安排搬”。文档里把 Posting Change 也单独列一段,是因为过账变更通知在 WM 里是独立对象,和 TR/TO 的生成逻辑不同,混在一起会让后续的自动 TO 创建(4.5 节)难以追踪。

2.3 存储类型与存储段:逻辑仓位的第一层和第二层切分

1.3 节定义存储类型,事务码 SPRO,文档列出的类型很有代表性:902 收货区(GR Area From Vendor)、911 成本中心领用区、914 生产领用区、916 交货装运区、921 库存转储、922 过账变更区、998 期初库存录入、999 差异区,以及两个实际存储区 ZM1(MKC Storage Area)和 ZM2(MKC Issue Precedence Area),后者标注为 ACTIVE、上架策略 PF、下架策略 PF。这里能看出一个设计取舍:收货、领用、装运、差异这些“功能型存储类型”和真正放货的“存储型存储类型”是分开建的,功能型区域通常不参与常规上架搜索,只在特定移动类型下被引用。

1.4 节定义存储段,事务码 SPRO,文档在仓库号 D01 下建了 ZM1001 正常货位区、ZM1002 临时货位区、ZM1003 仓库作业区、ZM2001 总区域。存储段是存储类型内部的二级切分,作用是让上架搜索在“选哪个存储类型”之后,还能“选这个类型里的哪一段”。为什么需要这一层?因为一个存储类型可能横跨不同的物理区域或作业属性,比如靠近出货口的段和靠近收货口的段,拣选优先级不同。文档在 2.2 节用事务码 OMLZ 激活存储段搜索,配置表里Wh N Ty Ssec Class WPC这一行 D01 / ZM1 / 0001 / 00 / 2,就是把存储类型 ZM1 和存储段 0001 绑定进搜索序列,WPC 列的数字决定搜索优先级。

2.4 货位结构与存储单位类型:物理货位怎么被系统“看懂”

1.7 节定义货位结构,事务码 LS10,这是 WM 里最容易被低估的一步。文档给出的结构模板是AA NNNN CCCC AB CC DD这类格式,配合起始、结束、增量三列,比如 ZM1001 段从 AA0101AB0302110101 到某个结束值,增量 1。这套模板的本质是把货位编号拆成“结构化字符串”:哪几位代表排(Aisle)、哪几位代表架(Rack)、哪几位代表层(Level)、哪几位代表位(Bin),系统按位解析,才能在上架搜索时按“排-架-层-位”的顺序做排序和定位。

1.9 节定义存储单位类型,文档只建了一个 S1(Normal SU),容量使用率填 1。存储单位类型是连接“物料包装”和“货位容量”的桥梁:托盘、箱子、料箱各自对应一个 SU 类型,货位类型(1.5 节的 D01 正常货位、E1 临时货位、B1 重包装区、P1)再和 SU 类型做分配(2.3.3 节,D01 下 S1 分配给 E1、B1、P1)。这个分配关系决定了“什么样的容器能放进什么样的货位”,是容量检查和上架搜索能落地的前提。

提示:货位结构一旦有库存落在里面,再改模板会非常麻烦,因为已生成的货位编号是按旧模板解析的。文档把 LS10 放在主数据阶段而不是策略阶段,就是提醒你这一步要在建库存之前定死。

3. 策略层:上架搜索为什么是“逐级过滤”而不是“一次命中”

3.1 存储类型搜索:移动类型是第一道过滤器

2.1 节激活存储类型搜索,事务码 OMLY,这是整个策略层的中枢。文档的配置表结构是Wh ActTy Ind SS Stor WP Ref,以 D01 为例,200 对应 200、2K 对应 200、2Q 对应 200、A 对应 ZM2/ZM1、AK 对应 ZM1、AQ 对应 ZM1、E 对应 ZM1、EK 对应 ZM1、EQ 对应 ZM1。这里的 ActTy 是“活动类型/移动类型类别”,Ind 是标识,SS 是搜索策略,Stor 是目标存储类型,WP 是参考。

机制上,WM 的上架不是“系统随便找个空位”,而是按移动类型先确定“这类移动允许进哪些存储类型”,再在这些候选里按搜索策略排序。文档紧接着列了一张移动类型引用表:101 采购收货、103 生产收货、201 成本中心领用、261 生产领用、301/311 库存转储、319 生产补货、501 无采购订单收货、521 生产入库、551 报废、561 期初录入、601 交货发货、651 退货、711/712 差异、911/912 返工、919 线边补货、920 生产退料、921/922 手工过账变更、961 包装领用、998/999 仓库监管。这张表的意义在于:每个移动类型在 OMLY 里都有一行搜索序列,收货类移动指向收货区和实际存储区,领用类移动指向领用优先区 ZM2,差异类移动指向 999 差异区。

为什么这么设计?因为仓库作业的“目的”由移动类型表达,而“目的”决定了候选存储类型的集合。101 收货不可能直接进领用区,261 领用也不应该去翻收货区。把移动类型作为第一道过滤器,等于把业务语义前置到搜索入口,后面的策略只负责在合法候选里做优选。常见的实现思路是,OMLY 的搜索序列按序号从小到大尝试,第一个有可用货位的存储类型胜出,所以序号顺序就是业务优先级。

3.2 存储段搜索与货位类型搜索:在候选类型里再切两刀

2.2 节 OMLZ 激活存储段搜索,2.3 节 OMM1 激活货位类型搜索。这两步是“逐级过滤”的第二、第三刀:存储类型选定后,存储段搜索决定进这个类型的哪一段,货位类型搜索再决定用哪种货位。文档 2.3.1 重复列出了货位类型 D01/E1/B1/P1,2.3.3 把 SU 类型 S1 分配给 E1、B1、P1,2.3.4 又把 S1 分配给存储类型 ZM1、ZM2。这一串分配看起来琐碎,实际是在建立“容器—货位—存储类型”的兼容矩阵:S1 这种存储单位能进 ZM1/ZM2 下的 E1/B1/P1 货位,搜索时系统按这个矩阵排除不兼容的组合。

我一般会这么理解这三层搜索的关系:存储类型搜索回答“去哪个区”,存储段搜索回答“去这个区的哪一段”,货位类型搜索回答“用哪种货位放”。三层都命中,才落到具体货位编号。任何一层没配,搜索就会退化——比如 OMLZ 没激活,存储段搜索直接跳过,所有段被视为等价,拣选优先级就丢了。

3.3 上架策略族:固定货位、开放存储、追加库存、空货位、托盘

2.5 到 2.10 节是一组上架策略,文档大多写“See 1.3 or refer directly to customising”,说明这些策略的开关落在存储类型定义里(1.3 节的 Stock placement strategy 列),而不是单独的事务。具体包括:固定货位策略(物料固定放在指定货位)、开放存储策略(在空闲货位里按规则分配)、追加现有库存策略(优先放到已有同物料库存的货位,减少碎片)、空货位策略(只找完全空的货位)、托盘策略(2.9 节,配合 2.9.1 存储类型控制、2.9.2 货位段、2.9.3 货位到 SU 类型分配)、散装存储策略(2.10 节)。

这些策略的共同点是“在候选货位集合上做排序规则”。追加现有库存策略之所以常被启用,是因为它能显著降低同一物料分散在多个货位的概率,后续拣选和盘点都省事;空货位策略则相反,追求整位利用,适合大批量单一物料。文档把托盘策略单独展开到三个小节,是因为托盘上架依赖“货位段(Bin Section)”这个更细的切分——一个货位可能被分成几个段,不同段放不同 SU 类型,2.9.2 定义货位段、2.9.3 做分配,才能让托盘策略知道“这个货位的这一段能不能放这个托盘”。

3.4 下架策略:FIFO、严格 FIFO、LIFO、零头托盘、大小数量、有效期

2.12 到 2.17 节是下架(拣选)策略族:FIFO、严格 FIFO(stringent FIFO)、LIFO、零头托盘数量策略、大/小数量策略、有效期策略。文档同样大多指向 1.3 节的 Stock removal strategy 列。FIFO 和 LIFO 的差别在于排序依据是入库时间正序还是倒序;严格 FIFO 比普通 FIFO 更硬,通常不允许跨批次“插队”;零头托盘策略优先消耗不满托盘的库存,减少零散库存;大小数量策略按需求数量匹配货位上的数量规模;有效期策略按批次有效期排序,先到期先出。

这里有个容易被忽略的机制点:下架策略和上架策略是两套独立的配置列,同一个存储类型可以上架用追加库存、下架用 FIFO。文档在 1.3 节把两列并排放在存储类型定义里,就是在表达这种“上下架解耦”。为什么解耦?因为上架关心的是“怎么放最省空间”,下架关心的是“怎么取最符合业务规则”,两者目标不同,强行统一会牺牲一边。

3.5 策略扩展:什么时候必须写增强

2.11 和 2.18 节分别是上架策略扩展和下架策略扩展,各拆成“开发策略”和“激活策略”两步。文档写“Refer to programming request, if needed”,意思是标准策略覆盖不了时才动增强。什么场景会走到这一步?比如按客户定制化的批次属性排序、按温区做硬约束、按生产线别做专属货位池,这些规则标准策略表里没有对应字段,只能通过增强点插入自定义排序逻辑。文档把“开发”和“激活”分开,是因为增强写完不激活等于没写,激活开关通常落在存储类型或搜索配置里,两步都做才生效。

注意:策略扩展属于改代码,升级时最容易被覆盖或冲突。文档把它放在策略章节末尾而不是主数据里,暗示这是“例外路径”,能靠配置解决就不要走增强。

4. 活动层:移动类型、自动 TO 与确认,把配置变成实际搬运

4.1 需求类型与装运类型:TR 的语义从哪来

4.1 节定义需求类型(Requirement Categories),4.2 节定义装运类型(Shipment Types)。需求类型决定 TR 的来源语义——是采购收货、生产领料还是转储;装运类型则关联出货相关的 TR 分组。这两者在文档里篇幅不大,但它们是 4.5 节“自动 TO 创建”的输入前提:系统要知道这张 TR 属于哪类需求,才能按对应的移动类型去 OMLY 里找存储类型搜索序列。

4.2 移动类型定义:101、261、301 这些数字背后的搬运语义

4.3 节定义移动类型,这是 WM 和 MM 集成的关键接缝。文档 2.1 节的移动类型引用表已经列出了几十个移动类型及其业务含义,4.3 节则是在 WM 侧定义这些移动类型对应的仓库活动。机制上,MM 侧的物料凭证过账会触发 WM 侧的 TR 生成,TR 再按移动类型映射到 OMLY 的搜索序列,最终生成 TO。所以移动类型是“业务事件”和“仓库动作”之间的翻译层:101 翻译成“收货上架”,261 翻译成“生产领用下架”,301/311 翻译成“库存转储移动”。

为什么移动类型要在 WM 里单独定义一遍?因为同一个 MM 移动类型在不同仓库号下可能有不同的仓库动作。比如 101 在某个仓库进 902 收货区再上架到 ZM1,在另一个仓库可能直接进 ZM1。WM 侧的移动类型定义给了这种仓库级差异化的空间。

4.3 库存转储与补货控制、自动 TO 创建、确认

4.4 节定义库存转储和补货控制,4.5 节设置 TR/过账变更通知的自动 TO 创建,4.6 节是确认(Confirmation)。这三节串起来是“配置到执行”的最后一公里:补货控制决定线边库存低于阈值时是否触发补货 TR(文档 2.1 表里 319 生产补货、919 线边补货就是这类移动);自动 TO 创建决定 TR 生成后是否立刻转成 TO,省掉人工转换;确认则决定 TO 执行完后如何回写实际数量和时间。

自动 TO 创建之所以要单独配,是因为它不是无条件开的。如果仓库需要人工审核 TR 再决定是否搬运,自动创建会绕过审核;如果仓库追求高自动化,自动创建能减少等待。文档把它放在活动层而不是策略层,说明这是“执行节奏”的开关,不是“找位规则”的开关。确认环节则关系到库存准确性——TO 确认时回写实际搬运数量,差异会进入差异处理流程,这也是 1.3 节里 999 差异存储类型存在的意义。

5. 避坑与排查:配置顺序错一步,后面全是返工

5.1 现象:上架总是落到 999 差异区,原因:OMLY 搜索序列里没有对应移动类型

现象是收货过账后 TO 的目的地一直是 999。原因通常有两个:一是 OMLY 里该移动类型的搜索序列没配,系统找不到候选存储类型,回落到差异区;二是搜索序列配了但目标存储类型的货位全满或容量检查不通过。解决方法是先用 2.1 节的移动类型引用表核对这个移动类型在 OMLY 里是否有行,再看对应存储类型的可用货位和容量标志。文档把 999 定义为“Warehouse supervision”,本质是兜底区,落到这里说明前面的搜索链断了。

5.2 现象:托盘上架报“无可用货位”,原因:SU 类型到货位类型的分配缺失

现象是明明有空货位,托盘上架却提示无可用货位。原因多半是 2.3.3/2.3.4 的分配矩阵没建全:SU 类型 S1 没有分配给目标货位类型,或者货位类型没有挂到目标存储类型下。系统在货位类型搜索阶段就把不兼容的组合排除了,看起来像“没货位”,实际是“没有兼容货位”。解决办法是按 1.5 → 2.3.1 → 2.3.3 → 2.3.4 的顺序把货位类型、SU 类型、存储类型的三角关系补齐。

5.3 现象:改了货位结构模板后老货位解析错乱,原因:LS10 模板变更影响已生成货位

现象是调整 LS10 的货位结构模板后,已有货位的排/架/层/位解析出现错位,拣选排序乱掉。原因是货位编号是按模板逐位解析的,模板一变,旧编号的位含义就变了。解决办法是模板变更前先确认目标存储类型下没有库存或库存已清空,变更后对受影响货位做一致性检查;如果已有库存,宁可新建存储类型承载新模板,也不要原地改。

5.4 现象:FIFO 不生效,原因:下架策略列没开或批次日期没维护

现象是配置了 FIFO 但拣选还是随机取货。原因通常是 1.3 节存储类型的 Stock removal strategy 列没填 F,或者物料批次上没有可排序的日期字段,FIFO 排序时所有候选并列,等于没排。解决办法是先确认存储类型下架策略列已设,再检查批次主数据的日期是否完整;严格 FIFO 还要确认没有跨批次合并的例外规则在生效。

5.5 现象:自动 TO 创建后无法人工干预,原因:4.5 节开关开得太早

现象是 TR 一生成就自动转 TO,仓库想先审核再搬运却没有机会。原因是 4.5 节的自动 TO 创建在流程还没稳定时就打开了。解决办法是上线初期先关自动创建,用人工转换跑一段时间,确认移动类型映射和搜索序列都正确后再打开;打开后如果发现某类 TR 不该自动转,回到移动类型或需求类型层面做例外,而不是全局关掉。

6. 设计取舍:为什么 WM 把“坐标”和“规则”分成两层

回头看这份配置文档的结构,主数据层(第 1 章)定义的是“仓库长什么样”——仓库号、编号范围、存储类型、存储段、货位结构、SU 类型;策略层(第 2 章)定义的是“货怎么流动”——搜索序列和上下架策略;活动层(第 4 章)定义的是“什么事件触发流动”——需求类型、移动类型、自动 TO、确认。三层分开,本质是把“静态坐标”和“动态规则”解耦。

这个取舍的代价是配置项多、依赖顺序强,好处是变更影响面可控。改一个上架策略,不用动货位结构;加一个存储类型,不用重配编号范围;调整移动类型映射,不用碰搜索序列。对比那种“一个配置页搞定所有事”的设计,WM 这种分层在大型仓库里更抗变更,因为仓库的物理结构几年才变一次,而策略和移动类型可能按业务季度调整。

验证这套配置是否真的自洽,我一般会走一条最小闭环:用一个收货移动类型(比如 101)过账,看 TR 是否生成、TO 是否按 OMLY 序列落到预期存储类型、货位类型和 SU 类型是否兼容、确认后库存是否回写到正确货位;再用一个领用移动类型(比如 261)走一遍下架,看 FIFO/LIFO 排序是否符合预期。两条链路都通,说明坐标和规则对上了。

进阶方向有两个:一是把 2.11/2.18 的策略扩展点摸清楚,知道标准策略的边界在哪,什么时候必须写增强;二是把 4.5 的自动 TO 创建和 4.6 的确认做成可观测的,记录每张 TO 的搜索路径,出问题时能回溯是哪一层过滤把它挡住的。这份文档最值钱的地方不是那些填好的字段值,而是它把“先定坐标、再定规则、最后接事件”的顺序固定下来了——我后来每次接手一个 WM 配置,都会先按这个顺序把三层过一遍,确认没有跨层引用,再动任何策略开关。希望帮到你。

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

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

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

立即咨询