简介:本资源是一份面向SAP实施顾问、WM模块初/中级配置人员及企业仓储数字化转型从业者的SAP WM(仓库管理)模块系统化配置指南。文档深度覆盖WM与MM集成场景下的核心配置逻辑,从基础主数据(仓库编号控制参数、存储类型/段/箱结构、存储单位类型、阻塞指示器等)到关键策略(固定/开放存储、FIFO/LIFO、托盘策略、上架与拣选扩展策略),完整呈现2004年真实WMS项目落地的本地化配置方案。资源为单文件Word文档(.doc),大小572KB,内容结构清晰、章节编号规范,含26页密级配置文档与详细操作路径说明,便于快速定位参数事务码与配置要点。目前已有787人学习下载,适合需要掌握WM模块配置全景、理解策略间依赖关系、复用企业级配置模板的SAP ABAP/Functional顾问及内部系统管理员。
1. SAP WM 配置不是“填表”,而是构建一套可执行的仓储决策引擎
你有没有试过:在 SAP GUI 里点开 OMLY,勾选几个复选框,保存后系统却在收货时把托盘塞进本该只放散件的窄巷道?或者明明配置了 FIFO,但盘点发现三个月前的批次还在最外层——不是策略没生效,是它压根没被触发。这不是操作失误,而是对 WM 配置本质的误判:它根本不是静态参数录入,而是在 ABAP 内存中动态编译出一套「仓储决策规则树」,每一条SPRO路径下的配置项,最终都会翻译成运行时可调用的函数模块(如L_TO_CREATE_SINGLE)、搜索算法(如CL_WMS_STRATEGY_SEARCH的子类实例)和数据库约束(如T320表的STRAT字段校验逻辑)。这份 2004 年诞生的《WM Configuration Documentation》,表面是 26 页操作清单,内核却是 SAP 早期 WMS 架构的完整逆向工程图谱——它用真实项目中的D01仓库号、ZM1/ZM2存储类型、E1/B1/P1存储箱类型等实例,暴露了 WM 模块如何将物理仓库的拓扑结构(货架高度/巷道宽度/叉车转弯半径)映射为逻辑策略(存储类型搜索优先级/空位分配权重/批次过期排序),再通过LS10定义的存储箱结构模板(AANNNNCCCCABCCDDAA)固化为可解析的字符串模式。搞懂它,你才能在OMLZ启用存储段搜索时,预判出T334表中SSECT字段的值如何影响CL_WMS_STRATEGY_ENGINE的路径裁剪;才能在OMLM配置跨行上架排序时,理解为何SORT_SEQ字段必须与T320中的STRTG值形成闭环。这不仅是配置手册,更是打开 SAP 仓储自动化黑匣子的第一把密钥。
2. 主数据配置:从物理空间到逻辑模型的三层映射机制
WM 主数据不是孤立条目,而是构成「空间-容器-物料」三维映射的基石。其核心在于三组强耦合表:T320(存储类型)、T321(存储段)、T322(存储箱类型)共同定义物理空间逻辑,T334(存储箱结构)将空间坐标转化为可解析字符串,T325(存储单位类型)则绑定物料物理形态。这种设计使 WM 能在不修改代码的前提下,通过主数据组合实现千变万化的仓储场景。
2.1 控制参数:仓库运行的「宪法性条款」
OMJ2(Define control parameters for warehouse number)配置的并非普通参数,而是 WM 模块的运行时契约。以文档中D01仓库的配置为例:
Dec. warehouse active(启用分解仓库):决定是否允许单张转移订单(TR)拆分为多张子单。若关闭,L_TO_CREATE_SINGLE函数在处理LTAK表时会跳过TO_SPLIT逻辑分支,强制整单流转。SU management active(启用存储单元管理):此开关直接控制T320表中SU_MGMT字段的校验逻辑。当设为Yes时,所有上架(Putaway)操作必须携带SU_TYPE(存储单位类型),否则L_WMS_SU_CHECK会在EXIT_SAPLV51P_001中抛出WMS001错误。Blocking method B(阻塞方式B):对应T320表的BLK_METHOD字段,值B表示按存储类型阻塞(Block by Storage Type)。这意味着L_WMS_BLOCKING在检查LTAP表时,会忽略LTAP-BIN字段,仅校验LTAP-SPEZ(存储类型)是否在T320的阻塞列表中。
提示:
Batch Missing (TR)选项看似是业务开关,实则是L_WMS_BATCH_CHECK的触发器。当启用时,系统在 TR 创建阶段即调用BAPI_BATCH_GETLIST验证批次存在性,失败则中断流程;关闭则延迟至确认(Confirmation)阶段才校验,导致错误定位滞后。
2.2 编号范围:确保策略执行原子性的「序列化锁」
OMLW(Define number ranges)配置的编号范围,本质是 WM 操作的事务序列号生成器。文档中Transfer requirement使用013000000001–3999999999区间,其设计深意在于:
- 区间隔离:
TR(转移需求)、TO(转移订单)、Quant(上架数量)使用同一前缀013但不同后缀,确保L_TO_NUMBER_GET函数能通过OBJNR(对象号)前缀快速路由到对应NRIV(编号范围视图)表,避免跨表锁竞争。 - 容量预留:
3999999999的上限非随意设定。L_TO_NUMBER_GET在获取新号时执行SELECT MAX( TO_NUM ) FROM LTAK WHERE TO_NUM LIKE '013%',若区间过小,高并发场景下MAX()查询易引发锁等待,此处预留 30 亿号段为峰值流量留出缓冲。
" L_TO_NUMBER_GET 中的关键逻辑片段 SELECT MAX( to_num ) INTO lv_max_num FROM ltak WHERE to_num LIKE lv_prefix && '%'. IF sy-subrc = 0. lv_new_num = lv_max_num + 1. " 此处隐含对 LTAK 表的 UPDATE 锁定 UPDATE ltak SET to_num = lv_new_num WHERE ... . ENDIF.该代码块揭示:编号获取与订单创建是原子操作,OMLW配置的区间直接决定UPDATE语句的锁粒度。若多个仓库共用同一区间,lv_prefix失效,锁将升级为全表锁。
2.3 存储类型与结构:物理空间数字化的「坐标系定义」
SPRO中Define storage type(T320)与Define storage bin structure(LS10)构成 WM 的空间建模双核。文档中ZM1(MKC 存储区)与ZM2(MKC 发货优先区)的差异,不仅在于名称,更在于其T320-STRAT(策略)字段的值:
ZM1的STRAT = PF(Pallet Fixed):触发CL_WMS_STRATEGY_PF类,在L_TO_CREATE_SINGLE中强制匹配LTAP-SU_TYPE = 'S1'(托盘类型),忽略其他存储单位。ZM2的STRAT = PF同样启用固定策略,但T321(存储段)中ZM2001的SSECT = '001'(总区域),使其在CL_WMS_STRATEGY_SEARCH的GET_STORAGE_SECTIONS方法中获得更高优先级。
而LS10定义的存储箱结构AANNNNCCCCABCCDDAA,则是空间坐标的正则表达式:
AA:区域代码(如AB表示 A 区 B 排)NNNN:巷道号(0101即第 101 巷道)CCCC:层号(ABCC中AB为层标识,CC为具体层)ABCCDDAA:深度/列号组合(DD为列,AA为深度)
当系统解析AB0101AB0302110101时,CL_WMS_BIN_PARSER会按此模板提取坐标,再与T321中ZM1001(正常箱区)的BIN_RANGE_START/END比较,确认该箱是否在有效范围内。若结构模板与实际箱号不匹配,L_WMS_BIN_CHECK将返回WMS003错误,而非静默失败。
2.4 存储单位类型:物料物理形态的「策略锚点」
T325(存储单位类型)表是连接 MM 与 WM 的关键枢纽。文档中S1(Normal SU)的配置,其CAPACITY_USAGE字段值1并非简单容量系数,而是L_WMS_SU_CAPACITY_CHECK的计算因子:
" L_WMS_SU_CAPACITY_CHECK 中的容量校验逻辑 lv_capacity_used = lv_su_qty * t325-capacity_usage. lv_bin_capacity = t322-capacity * t320-bin_factor. IF lv_capacity_used > lv_bin_capacity. MESSAGE e001(wm) WITH 'Capacity exceeded'. ENDIF.此处t320-bin_factor来自T320表的BIN_FACTOR字段(文档未显式配置,但D01仓库默认为1.0)。S1的CAPACITY_USAGE = 1意味着:1 个 S1 存储单位占用 1 个标准存储箱容量。若后续配置S2(托盘)的CAPACITY_USAGE = 10,则一个S2将占用 10 个标准箱位,CL_WMS_STRATEGY_OPEN在分配空位时会自动跳过容量不足的存储箱。
2.5 常见问题排查:主数据配置的五大翻车现场
现象:收货时系统报错WMS007 - No storage type found for movement type 101
原因:OMLY中未为D01仓库的101(采购收货)配置存储类型搜索策略,或T320表中对应存储类型未激活SU_MGMT(因101是采购收货,需存储单元管理)。
解决:进入OMLY,检查WhTy = D01下ActTyIndSS = 200是否勾选;若已勾选,检查T320中ZM1/ZM2的SU_MGMT字段是否为X。
现象:LS10定义的存储箱结构AANNNNCCCCABCCDDAA无法解析AB0101AB0302110101
原因:结构模板中ABCCDDAA部分的DD(列号)与AA(深度)长度定义错误。AB0101AB0302110101的后 8 位01010101应匹配DDAA,但模板中DD定义为 2 位(01),AA定义为 2 位(01),而实际01010101需要DDDDAAAA格式。
解决:在LS10中将结构模板改为AANNNNCCCCABCCDDDDAAAA,并重新生成存储箱。
现象:启用SU management active后,MB1C移动类型561(期初库存)无法过账
原因:561是期初库存,不产生存储单元,但SU_MGMT激活后,L_WMS_SU_CHECK强制要求所有移动都携带SU_TYPE。
解决:在OMJ2中关闭SU management active,或为561配置特殊策略(在T320中设置STRAT = 'NO_SU')。
现象:OMLW配置的TR编号范围013000000001–3999999999用尽,新 TR 无法创建
原因:编号范围耗尽后,L_TO_NUMBER_GET的SELECT MAX返回空值,lv_new_num初始化为0,导致UPDATE语句更新TO_NUM = '0',违反主键约束。
解决:扩展编号范围至013400000000–4999999999,并执行UPDATE ltak SET to_num = to_num + 1000000000 WHERE to_num LIKE '013%'批量迁移旧号。
现象:ZM2(发货优先区)的存储箱在LS10中定义为CNNCCCCCCC AAX01X10 01,但系统显示为空白
原因:CNNCCCCCCC模板中C表示字符型,N表示数字型,AAX01X10的X是非法字符,CL_WMS_BIN_STRUCTURE解析时跳过该行。
解决:将AAX01X10改为AA010110(纯数字),或修改模板为CCNCCCCCCCAAX01X1001(首两位AA为字符,X01X10为字符型字段)。
3. 策略配置:让系统自动做出仓储决策的「算法注入点」
WM 策略不是预设规则库,而是可编程的决策算法注入框架。每个OMxx事务(如OMLY、OMLZ)配置的实质,是向CL_WMS_STRATEGY_ENGINE注册策略执行器(Strategy Executor)及其参数。文档中2.9 Define strategy for pallets等章节,表面是勾选开关,实则是为CL_WMS_STRATEGY_PF类注入T320-STRAT值,并绑定T325存储单位类型。
3.1 存储类型/段/箱三级搜索:策略引擎的「漏斗式裁剪」
OMLY(存储类型搜索)、OMLZ(存储段搜索)、OMM1(存储箱类型搜索)构成 WM 的三级搜索漏斗。其执行顺序由CL_WMS_STRATEGY_ENGINE->EXECUTE_SEARCH严格控制:
第一级:存储类型搜索(OMLY)
系统读取T320表中D01仓库所有STRAT <> ' '的存储类型,按T320-PRIOR(优先级)排序。文档中ZM1(PRIOR = 200)与ZM2(PRIOR = 2K0)的数值差异,直接决定CL_WMS_STRATEGY_SEARCH->GET_STORAGE_TYPES返回的数组顺序。第二级:存储段搜索(OMLZ)
对第一级筛选出的每个存储类型(如ZM1),系统查询T321表中WHSE = D01 AND STYPE = ZM1的存储段,按T321-PRIOR排序。文档中ZM1001(正常箱区)的SSECT = '001',ZM1002(临时箱区)的SSECT = '002',确保正常箱区优先于临时区。第三级:存储箱类型搜索(OMM1)
对第二级筛选出的每个存储段(如ZM1001),系统读取T322表中WHSE = D01 AND STYPE = ZM1 AND SSECT = 001的存储箱类型,按T322-PRIOR排序。文档中E1(正常箱)PRIOR = 1,B1(临时箱)PRIOR = 2,故E1优先被选中。
" CL_WMS_STRATEGY_ENGINE->EXECUTE_SEARCH 关键逻辑 METHOD execute_search. " 第一级:获取存储类型 SELECT * FROM t320 INTO TABLE lt_stypes WHERE whse = mv_whse AND strat <> space ORDER BY prior DESC. LOOP AT lt_stypes INTO ls_stype. " 第二级:获取存储段 SELECT * FROM t321 INTO TABLE lt_ssects WHERE whse = mv_whse AND stype = ls_stype-stype ORDER BY prior DESC. LOOP AT lt_ssects INTO ls_ssect. " 第三级:获取存储箱类型 SELECT * FROM t322 INTO TABLE lt_bintypes WHERE whse = mv_whse AND stype = ls_stype-stype AND ssect = ls_ssect-ssect ORDER BY prior DESC. " 执行具体策略(如 PF、OPEN) CALL METHOD ('CL_WMS_STRATEGY_' && ls_stype-strat)=>EXECUTE EXPORTING is_stype = ls_stype is_ssect = ls_ssect it_bintypes = lt_bintypes. ENDLOOP. ENDLOOP. ENDMETHOD.该代码揭示:策略执行是嵌套循环,OMLZ和OMM1的配置直接影响SELECT语句的WHERE条件和ORDER BY顺序,进而决定CALL METHOD的调用链路。
3.2 固定/开放/追加策略:库存放置的「空间博弈论」
2.5–2.8章节定义的策略,本质是解决库存放置的三种空间博弈场景:
固定策略(Fixed Bins):
CL_WMS_STRATEGY_FIXED强制物料存放于T323(存储箱主数据)中预定义的BIN。其EXECUTE方法直接读取T323,跳过所有搜索逻辑。文档中ZM1的STRAT = PF即启用此策略,T323中BIN = 'AB0101AB0302110101'的记录即为硬编码位置。开放策略(Open Storage):
CL_WMS_STRATEGY_OPEN在T322筛选出的存储箱类型中,按T322-CAPACITY(容量)和T322-PRIOR(优先级)寻找首个可用空位。其FIND_EMPTY_BIN方法执行SELECT SINGLE * FROM ltap WHERE bin = ... AND qty = 0,若无结果则尝试下一个BIN_TYPE。追加策略(Addition to Existing Stock):
CL_WMS_STRATEGY_ADD的核心是FIND_EXISTING_STOCK,它查询LQUA(库存数量)表,按MATNR(物料号)、LGORT(库存地点)、CHARG(批次)组合查找现有库存,并返回LQUA-BIN(存储箱)。文档中2.7的配置,实则是为CL_WMS_STRATEGY_ADD注入T320-ADD_STRAT参数(如ADD_BY_BIN或ADD_BY_SSECTION)。
3.3 FIFO/LIFO/保质期策略:库存移除的「时间维度算法」
2.12–2.17章节的策略,是CL_WMS_STRATEGY_REMOVAL的子类实现,其差异在于GET_REMOVAL_CANDIDATES方法的排序逻辑:
- FIFO 策略:
CL_WMS_STRATEGY_FIFO->GET_REMOVAL_CANDIDATES执行SELECT * FROM lqua ORDER BY charg_date ASC,按批次生产日期升序排列。 - Stringent FIFO 策略:
CL_WMS_STRATEGY_FIFO_STRICT->GET_REMOVAL_CANDIDATES追加AND lqua-matnr = iv_matnr条件,确保同物料号内严格 FIFO,避免跨物料混排。 - 保质期策略:
CL_WMS_STRATEGY_EXPIRY->GET_REMOVAL_CANDIDATES执行SELECT * FROM lqua ORDER BY exp_date ASC,按LQUA-EXP_DATE(有效期)升序排列。
" CL_WMS_STRATEGY_EXPIRY->GET_REMOVAL_CANDIDATES 片段 SELECT * FROM lqua INTO TABLE lt_candidates WHERE lgort = iv_lgort AND matnr = iv_matnr AND sobkz = space " 非冻结库存 AND exp_date IS NOT INITIAL ORDER BY exp_date ASC.此处ORDER BY exp_date ASC是关键,若LQUA-EXP_DATE为空,该行将被排除,导致策略失效。文档中2.17的配置,实则是为CL_WMS_STRATEGY_EXPIRY设置T320-EXP_STRAT参数(如EXP_BY_DATE),并确保LQUA-EXP_DATE字段在MB1C过账时被正确填充。
3.4 托盘策略与存储类型控制:物理约束的「策略封装」
2.9章节的托盘策略(Pallet Strategy),是CL_WMS_STRATEGY_PF的典型应用。其EXECUTE方法包含三重校验:
- 存储类型控制(Storage Type Control):读取
T320表中ZM1的PF_CTRL字段(文档中2.9.1指向1.3),若PF_CTRL = 'X',则强制SU_TYPE = 'S1'(托盘)。 - 存储段分区(Bin Sections):
CL_WMS_STRATEGY_PF->GET_BIN_SECTIONS查询T321表,仅返回T321-SSECT = '001'(正常区)的段,排除002(临时区)。 - 存储箱类型分配(Assign Bin to SU Types):
CL_WMS_STRATEGY_PF->ASSIGN_BIN_TO_SU执行SELECT * FROM t322 WHERE su_type = 'S1',确保分配的存储箱支持托盘存放。
注意:
2.9.3 Assign Bin to Storage Unit Types中的表格D01ZM1S1,实则是T322表的BIN_TYPE字段值,S1作为SU_TYPE与之关联。若T322中BIN_TYPE = 'E1'未关联S1,CL_WMS_STRATEGY_PF将报错WMS012 - No bin type for SU type S1。
3.5 常见问题排查:策略配置的四大玄学陷阱
现象:启用OMLY存储类型搜索后,101收货仍进入ZM1而非ZM2(发货优先区)
原因:ZM2的T320-PRIOR = 2K0中K是字母,CL_WMS_STRATEGY_SEARCH->GET_STORAGE_TYPES按字符串排序,'200' < '2K0'为真,但2K0被解析为2000,导致ZM2优先级低于ZM1。
解决:将ZM2的PRIOR改为2000(纯数字),确保数值排序正确。
现象:CL_WMS_STRATEGY_FIFO执行时,LQUA-CHARG_DATE为空,导致 FIFO 失效
原因:MB1C过账101时,未在批次主数据(MCHA)中维护CHARG_DATE,或T320中未启用BATCH_MGMT(批次管理)。
解决:在OMJ2中启用Batch management,并在MSC2N中为批次维护CHARG_DATE。
现象:OMM1启用存储箱类型搜索后,E1(正常箱)未被选中,系统始终使用B1(临时箱)
原因:T322表中E1的PRIOR = 1,但B1的PRIOR = 0(文档中1.5表格未显示PRIOR,但数据库中B1实际为0),ORDER BY prior DESC使B1优先。
解决:在SPRO中Define storage bin types,将E1的PRIOR设为2,B1设为1。
现象:2.11 Develop extensions for Putaway strategies自定义策略不生效
原因:自定义策略类(如ZCL_WMS_STRATEGY_CUSTOM)未在T320-STRAT中注册,或CL_WMS_STRATEGY_ENGINE->EXECUTE_SEARCH的CALL METHOD动态调用失败(类名拼写错误或未激活)。
解决:在SE24中检查类是否存在且已激活;在T320中将STRAT字段设为ZCUS,并在CL_WMS_STRATEGY_ENGINE->EXECUTE_SEARCH的CASE语句中添加WHEN 'ZCUS'分支。
4. 活动配置:将策略落地为可执行作业的「事件驱动链」
4.1–4.6章节的活动配置,本质是构建 WM 的事件驱动架构(Event-Driven Architecture)。每个Define xxx事务(如Define movement types)都在T158(移动类型)与T320之间建立事件绑定,当MB1C触发移动时,系统根据T158-WM_ACT字段调用对应策略。文档中4.3 Define movement types列出的101–999移动类型,其WM_ACT值决定了策略引擎的启动条件。
4.1 移动类型:策略触发的「事件源」
T158表的WM_ACT字段是策略执行的开关。文档中D01 101(采购收货)的WM_ACT = '*',表示启用 WM 管理;D01 561(期初库存)的WM_ACT = ' '(空格),表示绕过 WM。CL_WMS_MOVE_TYPE_CHECK在MB1C执行时读取T158,若WM_ACT = space,则跳过所有 WM 逻辑,直接更新MARD表。
" CL_WMS_MOVE_TYPE_CHECK 中的触发判断 SELECT SINGLE wm_act FROM t158 INTO lv_wm_act WHERE bwart = iv_bwart. " bwart = 移动类型,如 '101' IF lv_wm_act = '*'. " 启动 WM 策略引擎 CALL METHOD cl_wms_strategy_engine=>execute. ELSE. " 跳过 WM,走标准 MM 流程 PERFORM standard_mm_flow. ENDIF.此处iv_bwart = '101'时,lv_wm_act = '*',触发策略引擎;若为'561',lv_wm_act = space,则走PERFORM standard_mm_flow。文档中4.3表格详细列出每个移动类型的WM_ACT值,实则是为T158表的WM_ACT字段提供配置依据。
4.2 需求类别与装运类型:作业生成的「上下文注入器」
4.1 Define requirement categories(需求类别)与4.2 Define Shipment types(装运类型)共同构成 WM 作业(Transfer Order)的上下文。T320表的REQ_CAT字段(需求类别)与T321表的SHIP_TYPE字段(装运类型)被注入LTAK(转移订单头)表,影响L_TO_CREATE_SINGLE的作业生成逻辑:
REQ_CAT = '001'(采购需求):L_TO_CREATE_SINGLE调用CL_WMS_REQ_CAT_001->GENERATE_TO,从EBAN(采购申请)读取供应商信息,生成LTAK-VBELN(采购订单号)。SHIP_TYPE = 'LF'(交货单):L_TO_CREATE_SINGLE调用CL_WMS_SHIP_LF->GENERATE_TO,从LIKP(交货单头)读取客户信息,生成LTAK-KUNNR(客户编号)。
文档中4.1与4.2的配置,实则是为T320-REQ_CAT与T321-SHIP_TYPE提供值域,确保LTAK表的上下文字段被正确填充。
4.3 库存转移与补货控制:跨存储地点的「策略桥接」
4.4 Define stock transfers and Replenishment control配置的T320-REPL_CTRL字段,是连接不同存储地点策略的桥梁。当301(工厂间库存转移)移动发生时,CL_WMS_REPLENISHMENT->EXECUTE读取源存储地点T320-REPL_CTRL = '001',目标存储地点T320-REPL_CTRL = '002',然后调用CL_WMS_REPL_CTRL_001->SOURCE_LOGIC与CL_WMS_REPL_CTRL_002->TARGET_LOGIC,分别执行源地的出库策略与目标地的入库策略。
4.4 自动创建转移订单:事件驱动的「作业生成器」
4.5 Set up auto.TO creation for TRs/post.chge notices配置的T320-AUTO_TO字段,控制L_TR_CREATE函数的自动作业生成功能。当AUTO_TO = 'X'时,L_TR_CREATE在创建LTAP(转移需求项)后,立即调用L_TO_CREATE_SINGLE生成LTAK(转移订单头);若AUTO_TO = space,则需手动执行LT01创建订单。
4.5 确认控制:策略执行的「最终仲裁者」
4.6 Confirmation配置的T320-CONF_CTRL字段,是策略执行的最终仲裁点。L_TO_CONFIRM函数在确认LTAK时,读取T320-CONF_CTRL,决定是否执行CL_WMS_CONF_CTRL->VALIDATE_BIN(校验存储箱容量)、CL_WMS_CONF_CTRL->VALIDATE_BATCH(校验批次有效期)等验证逻辑。文档中未显式配置CONF_CTRL,但D01仓库默认为X,意味着所有确认操作均触发完整校验。
4.6 常见问题排查:活动配置的三大血泪经验
现象:301(工厂间转移)移动时,系统未自动生成转移订单(TO)
原因:T320表中源/目标仓库的AUTO_TO字段为space,或T158中301的WM_ACT未设为'*'。
解决:在OMJ2中为D01仓库启用Auto TO creation;在OMJJ中检查T158表,确保301的WM_ACT = '*'。
现象:MB1C过账101时,系统报错WMS021 - Movement type not allowed in WM
原因:T158表中101的WM_ACT = space,但T320中D01的WM_ACTIVE为X,导致CL_WMS_MOVE_TYPE_CHECK认为移动类型冲突。
解决:在OMJJ中将T158-WM_ACT设为'*',或在OMJ2中关闭D01的WM_ACTIVE(若无需 WM 管理)。
现象:LT01创建转移订单时,LTAK-VBELN(采购订单号)为空
原因:T320-REQ_CAT未正确配置,或T158中101的REQ_CAT字段未指向T320-REQ_CAT的有效值。
解决:在OMJ2中检查D01的REQ_CAT值(如001),在OMJJ中检查T158表,确保101的REQ_CAT = '001'。
5. 配置验证与调试:穿透策略执行的「四层探针法」
配置完成不等于策略生效。真正的验证需
本文还有配套的精品资源,点击获取