简介:《SAP系统关于Segmentation(细分策略)方案介绍》是一份面向SAP MM顾问、供应链计划及数字化实施人员的学习型PPT,聚焦如何在物料管理基础上,按来源、质量、颜色、尺码等属性实现更小颗粒度的销售、需求、采购与库存管理。资源包仅含1个pptx文件,约10.27MB,已有691人学习。课件按“细分简介—行业应用—系统实现—业务演示”四部分组织,并结合服装白衬衫、电子产品库存与销售区域、机械制造产品结构及光伏组件电池效率等案例,说明特征、细分结构、细分评估与主数据、库存数据之间的关联。读者可借此理解细分策略如何减少物料编号膨胀、细化ATP与需求传递,并用于方案沟通和业务场景梳理。
1. 从 CT04 那个灰掉的下拉框说起:SAP S/4HANA 细分策略(Segmentation)装不动的第一步
SAP S/4HANA 的细分策略(Segmentation)在方案文档里看着像纯配置活:CT04 建特性、SGTS 建细分结构、SGTC 建细分策略、MM01/MM02 把策略挂到物料、SPRO 收尾,五步走完。真上手第一天就会被打回来——CT04 里“特征组”下拉框翻遍也找不到 SGT_SAP-C,下面“相关性”整块是灰的,特性建了也用不上,后面的结构根本立不起来。这不是手滑,是环境前置没对齐,我第一次在测试机复现这套方案时就在这里耗掉了大半天。这套东西适合谁:一个物料号要同时管颜色、产地、效率档、销售渠道,又不愿意为每种组合开一个新料号的团队。装不好的代价很直接——结构一锁就改不动,测试机配通了传生产机全崩,业务侧下单才发现值选不出来。下面按我实际装过一遍的顺序写,从环境对齐到结构搭建,再到坏了怎么救。
2. 环境先对齐:S/4HANA 版本、特征组 SGT_SAP-C 与配置权限三张底牌
2.1 版本这一关:ECC 上别折腾,S/4HANA 上先确认事务码能不能进
细分策略是 S/4HANA 才有的东西,这一点必须先说死。在 ECC 6.0 上翻 SGTS、SGTC 找不到是正常的,不是权限问题也不是补丁问题,那套系统里就没有这两个事务码。我见过有人在 ECC 上折腾一整天,最后发现方向从一开始就错了。所以拿到这套方案的第一件事,是确认目标系统到底是不是 S/4HANA。
确认完大版本,第二件事是确认事务码能不能进得去。做法很简单,在命令框里依次敲 SGTS、SGTC、CT04,能进得去(哪怕进去是空列表)就说明功能集在系统里是激活的;如果直接报“事务代码不存在”,那先别往下配,去找 BASIS 确认这套功能有没有被激活。
第三件事是版本差异。不同 S/4HANA 版本里,SGTS 和 SGTC 的事务码名字基本稳定,但 SPRO 里的 IMG 路径会挪位置——同一个配置活动,在较早的版本里挂在“跨应用组件 → 分类系统”下面,在较新的版本里可能挪到了物料管理或者独立的细分节点下。硬记路径是最容易翻车的地方,我一般的做法是进 SPRO 之后直接用左上角的搜索框搜关键词,搜“Segmentation”或“细分”,能搜出来的活动就是当前版本该走的入口,比翻树靠谱得多。
下面这张表是我每次开新环境都先过一遍的核对清单,五分钟能跑完,能省掉后面两小时。
| 检查项 | 怎么查 | 期望结果 | 不对怎么办 |
|---|---|---|---|
| 系统大版本 | 系统状态里看组件版本 | 是 S/4HANA | ECC 上放弃这套方案 |
| SGTS 可进入 | 命令框输入 SGTS | 进得去,显示细分结构列表 | 找 BASIS 确认功能是否激活 |
| SGTC 可进入 | 命令框输入 SGTC | 进得去,显示策略列表 | 同上 |
| CT04 可进入 | 命令框输入 CT04 | 进得去,能新建特性 | 检查账号权限 |
| SPRO 搜索命中 | SPRO 搜“细分” | 至少有一条 IMG 活动 | 功能未激活,先做初始化 |
| 传输通道 | 开发机建一个空特性,传测试机 | 能传过去且不报缺失 | 先修传输,再谈配置 |
提示:这张表里的“传输通道”一项最容易被跳过。开发机配得再漂亮,传输过去报对象缺失,等于白干。
2.2 特征组 SGT_SAP-C:为什么它选不到,以及 SPRO 里要搜什么
SGT_SAP-C 是 SAP 预置的特征组,细分这套逻辑完全挂在它上面。CT04 里“特征组”字段只有选中它,下面“相关性”区域才是可编辑的;选成别的特征组(比如默认的 001 通用组),特性可以保存,但相关性维护不了,到了 SGTS 那一步会直接卡住——特性选得进去,却挂不成能用的结构。
选不到的原因通常只有一个:这个特征组在系统里还没被初始化出来。此时去 SPRO 搜索框里搜“细分”或者“Segmentation”,会命中一条细分配置说明类的 IMG 活动,进去执行一次,把特征组和细分相关的底层对象生成出来。执行完之后回到 CT04,在“特征组”字段按 F4,列表里能看到 SGT_SAP-C 就说明搞定了。
这里有个顺序上的讲究:先做 SPRO 初始化,再回 CT04 建特性。反过来做的后果是,前面建的那批特性全都挂在错误的特征组上,改起来要逐个进 CT04 重新保存,量大的时候非常难受。我吃过一次这个亏,二十几个特性全部重建,从那以后每次新环境第一步都是先把 SPRO 搜一遍。
另外一点经验:初始化这类 IMG 活动,在开发机执行一次就行,然后通过传输请求带到测试和生产。不要在每个环境手工点一遍,手工点的结果是三个环境的底层配置对象编号对不上,后面传输细分结构的时候会报一堆看不懂的错。
2.3 权限与命名:配置账号、业务账号、命名前缀
权限这块分两类账号看。配置账号要能做三件事:进 SPRO 执行 IMG 活动、维护 CT04 特性、维护 SGTS/SGTC。很多“保存失败”的报错其实是权限不足,尤其是在生产机上按最小权限授权的时候,看着能进事务码,点保存就弹权限对象缺失。测试阶段我一般给配置账号放得宽一点先跑通,上生产前再收紧,别反过来。
业务账号的要求不一样:要能 MM01/MM02 维护物料主数据里细分相关的那部分,要能 VA01 建销售订单并在行项目上选到细分值,要能 MIGO 收货时把细分带进库存。这三件事任何一件做不了,验证阶段都会卡住,而且报错信息往往很含糊,让人以为是配置问题。
命名规范是给后面传输留的后悔药。我的习惯是特性名统一 Z_SGT_ 前缀加业务含义,比如 Z_SGT_EFF 表示效率档;细分结构名用 ZSGTS_ 开头;细分策略名用 ZSGTC_ 开头,并且和结构名保持一一对应。这样在 SGTC 里选结构的时候不会选错,跨系统传输的时候也不会因为命名撞车被拦下来。命名乱掉的项目我见过,两年后没人说得清哪个策略对应哪个结构,只能整个重建。
3. CT04 建特性:细分的地基,五个字段填错后面全塌
3.1 CT04 逐个字段:特性名、数据类型、值检查、特征组
CT04 建特性是整个细分的地基,这一步的字段填法直接决定后面 SGTS 能不能挂、SGTC 能不能限值。进去之后填特性名回车,系统会问是新建还是显示,选新建,然后进到明细界面。下面按顺序说每个字段该怎么填,以及填错会怎样。
特性名和描述。特性名走前面说的 Z_SGT_ 前缀规范,用英文大写加下划线,别用中文。描述字段写清楚业务含义,比如“电池片转换效率档”。描述写不清楚的后果是三个月后自己都不认识这个特性是干什么的,SGTS 里选特性的时候全靠猜。
状态。特性有状态字段,建完要置成“发布”或等效的可用状态。状态没置对的特性,在 SGTS 里选不到,或者选到了保存时报错。这个字段最坑的地方是它默认值不一定是你想要的那个,建完顺手检查一遍。
数据类型。文本类属性(颜色、产地、销售渠道、质量等级)用 CHAR;数值类属性(效率值 23.5、功率档位)用 NUM。这里选错的影响很隐蔽:CHAR 类型存 23.5 没问题,但后面在 SGTC 里想按区间限制就不好使;NUM 类型在建间隔值的时候要额外注意小数位设置。
字符数和小数位。CHAR 类型填字符长度,比如颜色代码给 10 位足够;NUM 类型要同时填整数位和小数位,效率值这种小数点后一位的,小数位给 1 到 2 位。
值检查。这是决定 SGTC 能不能精细控制的关键字段。选“单个值”表示业务只能从预设清单里挑;选“间隔值”表示允许按数值区间来;选“表”表示值来自一张自定义表。光伏组件那种场景,效率档通常用间隔值,比如 23.0–23.4 一档、23.5–23.9 一档,销售下单时按档选,计划和采购按档执行,物料号还是一个。
特征组。填 SGT_SAP-C,这是整套逻辑的入口。前面 2.2 说过选不到的排查,这里再强调一次:填完这个字段,“相关性”区域才会从灰色变成可编辑。相关性用来做什么?用来表达特性之间的约束关系,比如“产地是 A 的,只能配效率档 X”。复杂的组合规则基本都靠相关性兜住,不填也能跑,但业务上很容易选出不合法的组合。
相关性页签。CT04 的“相关性”页签里可以维护前置条件、动作这类内容。这一步不是必须的,看业务复杂度决定。我的建议是第一版先不填,把主流程跑通,验证完成之后再回来加约束,否则一旦规则写错,报错信息会指向一堆不相关的地方,排查成本极高。
| 字段 | 该填什么 | 填错的典型后果 |
|---|---|---|
| 特性名 | Z_SGT_ + 业务含义,英文大写 | 传输撞名、后期无法辨认 |
| 描述 | 清晰的中文业务含义 | SGTS 选特性靠猜 |
| 状态 | 发布/可用 | SGTS 里选不到该特性 |
| 数据类型 | 文本用 CHAR,数值用 NUM | 间隔值建不了或精度丢失 |
| 字符数/小数位 | 按业务精度给,别刚好卡满 | 值录不进去或被截断 |
| 值检查 | 单值/间隔/表,按业务复杂度选 | SGTC 限不住值,业务乱选 |
| 特征组 | SGT_SAP-C | 相关性不可维护,结构挂不上 |
3.2 值域设计:单值、多值、间隔值,以及“启用空值”的前置条件
值域设计是最容易被当成“随便填填”的一步,但它决定了后面 SGTS 里勾“启用空值”能不能生效,也决定了业务端下单时到底能看到几个选项。
先说单值和多值的区别。单值意味着一个物料在某个细分下,这个特性只能有一个确定值;多值意味着可以同时挂多个值,比如同一批组件里同时存在 23.3 和 23.6 两种效率的电池片,需要“搭配使用”的场景就得用多值。选单值还是多值,取决于业务上会不会出现“同物料号、同结构、多个特征值并存”的情况。这个判断做错的后果是业务端保存订单时报错,或者更糟——不报错,但库存扣减扣到了错的批次上。
再说间隔值。数值型特性用间隔值的场景是这样的:业务不完全按精确值管理,而是按档位管理。23.0–23.4 是一档,23.5–23.9 是一档,下单时选档,收货时按实际值落进对应档位。间隔值的好处是颗粒度可控,不会因为 23.51 和 23.52 这种微小差异把配置撑爆;坏处是档位边界必须有明确的业务定义,边界模糊的时候,同一个值可能落进两个档,系统会直接报“值不唯一”。
然后是“启用空值”。这个开关在 SGTS 里勾,不在这里。但能不能勾得动,取决于特性这边的设置。如果特性被设成必须填值的强约束,SGTS 里勾“启用空值”时可能保存报错或者勾了不生效。为什么要启用空值?因为现实业务里不是每一批货都能确认特性值——来料还没检验、效率还没测出来、颜色还没定版,这些情况下如果强制必填,订单和收货全部卡死。我去过的项目里,相当一部分“单据保存不了”的问题根源就是没启用空值。
注意:启用空值不是“随便不填”,它的含义是“这个特征值在当前业务节点允许为空,后续节点补齐”。业务上要约定清楚哪些节点必须补齐,否则等到出货才发现值缺失,追不回来。
值域里还有一类是“表值”,值来自一张自定义配置表。这种适合值集经常变、又要集中维护的场景,比如销售大区的划分。用表值的代价是每次改值都要维护表数据并传输,不如间隔值轻。我的取舍是:值集稳定就用固定清单,值集是按业务规则算出来的就用间隔值,值集频繁变动才用表。
3.3 保存后自检:用一段 ABAP 把特性捞出来核对
CT04 保存完了不代表对了。界面上的字段和实际落库的字段有时候不一致,尤其是状态和小数位这类字段。我习惯在建完一批特性之后,直接用一段 ABAP 把落库结果捞出来看一眼,比一个个点开快得多,也比等到 SGTS 那一步才发现问题省事。
REPORT zsgt_feature_audit. " 目的:CT04 建完特性后批量核对,避免到 SGTS 才发现选不到或值域不对 " CABN 是特性主表:ATINN 内部号、ATNAM 特性名、ATFOR 数据类型、ANZST 字符数、ANZDE 小数位 " 只查自定义前缀,避免把系统标准特性一起捞出来导致列表几百行 SELECT atinn, atnam, atfor, anzst, anzde FROM cabn INTO TABLE @DATA(lt_cabn) WHERE atnam LIKE 'Z_SGT%'. " CAWN 是特性值表:ATWRT 是值本身,ATWTB 是值的描述文本 " 用 FOR ALL ENTRIES 一次把值也带出来,省得再进 CT04 一个个点开看 IF lt_cabn IS NOT INITIAL. SELECT atinn, atzhl, atwrt, atwtb FROM cawn INTO TABLE @DATA(lt_cawn) FOR ALL ENTRIES IN @lt_cabn WHERE atinn = @lt_cabn-atinn. ENDIF. " 打印:重点看 ATFOR 是不是预期类型、ANZDE 是不是够用、CAWN 里值有没有真的建进去 cl_demo_output=>display( lt_cabn ). cl_demo_output=>display( lt_cawn ).这段代码的逻辑很直白:先从 CABN 按前缀捞出所有自定义特性,再用 FOR ALL ENTRIES 把 CAWN 里对应的值一起带出来,最后分行显示。重点看三处:ATFOR 是不是预期的数据类型,ANZDE 小数位够不够业务精度,CAWN 里的值清单是不是和业务给的清单一一对上。
参数上要改的只有一处,就是LIKE 'Z_SGT%'这个前缀。如果命名规范不是这个前缀,改成自己的即可;如果只想查某几个特性,把 LIKE 换成IN列表更精确。另外注意 FOR ALL ENTRIES 必须先判lt_cabn IS NOT INITIAL,内表为空不判直接查会拉出全表,生产机上跑一次能被 DBA 找上门。这段代码跑在测试机,实测下来两百多个特性也就一两秒,没什么性能顾虑。
4. SGTS 与 SGTC:细分结构怎么搭,细分策略怎么落到物料上
4.1 SGTS 建结构:挂特性、勾“启用空值”、锁定
SGTS 是搭结构的地方。进去输结构名回车,选新建,进到明细界面。这个界面不复杂,但顺序上有个强约束:先把特性挂全,再勾“启用空值”,再保存,最后锁定。顺序乱了就得回来重做。
第一步,填结构描述和有效日期。有效日期这块,我一般给一个宽范围,避免业务跑着跑着结构突然失效。见过因为有效日期只填了一年,第二年年结之后结构失效,订单带不出细分值的情况,排查了很久。
第二步,挂特性。从 CT04 建好的特性里选,一个结构可以挂多个特性,业务上就是“这个物料在这几个维度上做细分”。挂的时候要注意特性之间的组合关系,挂了三个特性不等于业务上允许所有组合,组合的合法性靠 SGTC 的段策略去限,不是靠这里挂多少。
第三步,勾“启用空值”。这个字段在结构层面,勾上之后,业务单据上该结构下的特征值允许为空。前面 3.2 说过为什么要勾,这里说操作顺序:先挂完特性再勾,勾完保存。如果先勾再挂特性,某些版本里勾会被重置掉。
第四步,保存。保存成功之后界面上能看到结构已经落地。
第五步,后退,点“锁定”。这一步是很多人会漏掉的。SGTS 的结构状态有两种:解锁和锁定。新建出来的结构默认是解锁状态;一旦被 SGTC 引用、或者被物料主数据引用,系统会自动把它置成锁定。锁定之后结构不允许修改——不能加特性、不能减特性、不能改“启用空值”。
为什么要主动锁定?因为锁定不是坏事,它是在告诉你“这个结构已经在用了,别动”。主动锁定的意义是把自己从“以为还能改”的幻觉里拉出来。我吃过一次亏:结构建好没锁,以为后面还能加特性,结果业务已经在测试机上建了一批订单,再想加特性发现加不进去,只能新建一个结构然后把测试数据全部重来。
下面这个配置块是我每次建结构时对照的字段清单,照着勾一遍基本不会漏。
SGTS 新建结构时的字段顺序(按这个顺序走,别乱): 1. 结构名 ZSGTS_xxx,回车 → 新建 2. 描述 写清楚业务含义,比如「电池片效率细分结构」 3. 有效日期 给宽范围,别只给一年 4. 特性清单 从 CT04 选,按业务维度挂全 5. 启用空值 勾上(允许业务节点上特征值暂缺) 6. 保存 看状态栏提示,确认落地 7. 后退 → 锁定 主动锁定,防止误改这里要说清楚一个反直觉的点:锁定不是终态,中间还有一个“被引用”的阶段。结构刚建好是解锁;被 SGTC 或物料引用之后自动变成锁定;锁定之后想改,唯一的路是新建一个结构,把老结构上的数据迁移过去,而不是想办法解锁。所以第一版结构设计的时候,特性尽量挂全,别想着“先跑起来后面再加”。
4.2 SGTC 建段策略:先锁结构再“新输入”
SGTC 是把结构变成可用策略的地方。结构只是一组维度的定义,策略才决定“每个维度允许取什么值、取几个值”。业务端下单时看到的选项,就是策略里定义的东西。
进 SGTC,先建策略头:填策略名、描述、有效日期,然后选结构。选结构的时候要特别注意——下拉列表里可能有多个名字相似的结构,选错的话后面全部白做。我一般会先在 SGTS 里把结构名抄下来再过来选,不靠记忆。
选完结构,如果结构当前还是解锁状态,SGTC 里会提示先锁定。有些版本里这个动作是显式的,需要点一下“锁定结构”;有些版本是选完结构自动带过去。不管哪种,规则是一样的:结构不锁定,段策略建不了或者建了不生效。
结构锁好之后,点“新输入”建段策略。段策略是策略下的明细行,一个策略可以有多条段策略。每条段策略里,给结构上的每个特性指定允许的取值或者区间。比如效率这个特性,段策略一允许 23.0–23.4,段策略二允许 23.5–23.9。业务端下单时,选到某个值,系统按值去匹配对应段策略,匹配不上就报错。
| 段策略字段 | 含义 | 我一般怎么填 |
|---|---|---|
| 段策略编号 | 策略下的明细行号 | 按业务顺序编,别乱跳 |
| 特性值 | 该特性在此段允许的取值 | 区间型就填上下限,清单型就填具体值 |
| 有效性 | 该段的起止日期 | 和策略头保持一致或更窄 |
| 空值处理 | 空值是否落进此段 | 结合“启用空值”一起定 |
匹配规则这块有个容易踩的点:多个段策略之间存在重叠的时候,系统按什么顺序匹配、匹配到哪一条,不同版本的表现不完全一样。稳妥的做法是段策略的区间不要重叠,边界值(比如 23.5)明确归属某一侧,别让同一个值同时落进两段。测试阶段一定要拿边界值单独跑一遍,这个坑我在两个项目上都见过,都是 23.5 这个边界惹的祸。
段策略建完保存,回到策略头再保存一次。有些版本的段策略是独立的保存动作,只保存段策略不保存策略头,退出之后发现策略还是空的,白忙一场。
4.3 MM01/MM02 分配策略与 SPRO 里的三处开关
策略建好之后还没完,得挂到物料上。这一步在 MM01/MM02 里做,进物料主数据,找到细分相关的字段,把 SGTC 建好的策略填进去。
MM01 是新建物料,MM02 是修改。新建的时候,物料类型、行业这些基础信息先填,然后进到细分相关视图,把策略名填上。这里有个细节:细分策略字段可能不在你直觉认为的那个视图里,找的时候用物料主数据的视图概览先看一遍,别一个个视图翻。填完之后保存,系统可能会做一次校验,如果策略和物料的某些属性冲突,保存会报错。
MM02 修改的时候要格外小心。一个物料如果已经有库存、有未清的销售订单、有在途采购单,改细分策略的后果不可控——历史单据带的是旧值,新单据带的是新值,库存的归属说不清楚。我的原则是:物料一旦有业务数据,细分策略只增不改;确实要改,先清掉业务数据再动,或者直接换新物料。
SPRO 这边有几处开关要确认。第一处是细分功能本身的激活,前面 2.1、2.2 说过,用 SPRO 搜索框找对应的 IMG 活动。第二处是特征组相关的前置配置,就是让 SGT_SAP-C 能被 CT04 选到的那一步初始化。第三处是编号范围类的配置——如果你们的细分结构或策略需要编号范围,得先建好,否则保存时报“编号范围不存在”。
还有一个隐性的检查点:细分相关的检查规则。有些版本里可以配置“某类业务单据必须带细分值”这类强制规则。这个规则默认关着,配不配看业务要求。配了的后果是历史单据或者其他不涉及细分的业务会被拦住,得配合例外规则一起用;不配的后果是有人可以绕过细分值下单,库存归属说不清。
| SPRO 相关项 | 作用 | 不做会怎样 |
|---|---|---|
| 细分功能激活 | 生成底层对象 | SGTS/SGTC 相关对象缺失 |
| 特征组初始化 | 让 SGT_SAP-C 可选 | CT04 里选不到特征组 |
| 编号范围 | 结构和策略的编号 | 保存报编号范围不存在 |
| 强制检查规则 | 单据必须带细分值 | 有人绕过细分下单,库存归属乱 |
| 权限与角色 | 配置/业务账号可用 | 能进事务码但保存失败 |
5. 避坑与排查:五个把我卡到半夜的细分配置坑
5.1 配置阶段的三条血泪记录
坑一:CT04 里特征组选成了默认组,相关性整块是灰的。
现象:特性建得很顺,保存也没报错,但回到界面上发现“相关性”页签点不进去,到 SGTS 里挂特性的时候选得到、挂上去保存报错,提示结构不完整。
原因:特征组字段填了默认的通用组,不是 SGT_SAP-C。细分这套逻辑只认 SGT_SAP-C,挂在别的组上的特性,系统不认为它是细分特性,所以相关性不可维护、结构里也用不了。
解决:回 CT04 改特征组。注意不是所有情况下都能直接改——特性如果已经被别处引用过,改特征组可能被拦。稳妥做法是复制一份新特性,重新命名,把旧特性废弃。这也是为什么我反复强调建特性之前先把 SPRO 初始化做好。
坑二:结构建完没锁,等想加特性的时候加不进去了。
现象:结构第一天建好,测试跑了几天,业务说“还得再加一个产地维度”。回 SGTS 想加特性,发现加不了,状态显示已锁定。
原因:结构一旦被 SGTC 引用或者被物料引用,系统自动置成锁定,锁定之后禁止结构变更。这是设计如此,不是 bug。
解决:没有解锁这条路。只能新建一个结构,把老结构的特性复制过去再加上新的,然后新建策略、重新分配物料,最后把老结构上的测试数据清掉。所以第一版结构设计时,特性一定要挂全,别给自己留后患。
坑三:忘了勾“启用空值”,收货的时候卡死。
现象:销售下单没问题,生产订单也没问题,到 MIGO 收货那一步报错,说特征值必须填写,但来料检验还没出结果,值填不出来。
原因:结构里没勾“启用空值”,业务节点上特征值不允许为空,于是收货过不去。
解决:回 SGTS 勾“启用空值”再保存。前提是结构还没被引用(没锁),锁了就按坑二处理。勾之前先确认特性那边的值检查设置没有强约束,否则可能勾了不生效。
5.2 业务与迁移阶段的两条
坑四:段策略区间重叠,边界值下单报错。
现象:大部分订单能正常建,唯独效率值刚好是 23.5 的那些,保存时报“细分值不唯一”或者类似的错。
原因:段策略一填了 23.0–23.5,段策略二填了 23.5–23.9,23.5 同时落进两段,系统匹配不出唯一结果。
解决:把边界划清楚,一段闭一段开,比如 23.0–23.4 和 23.5–23.9。改完必须拿三个值回归:下边界、上边界、中间值。我现在的习惯是段策略建完先跑一遍边界清单,这个动作花五分钟,能挡住后面一堆单子报错。
坑五:开发机配通,传到生产机报对象缺失。
现象:开发机上全流程跑通了,传输请求放到生产机,进 SGTS 一看结构是空的,或者进去直接报对象不存在。
原因:细分相关的底层对象里,有一部分是环境相关的(比如特征组的初始化对象、编号范围),只传自定义配置不传这些底层对象,生产机上就不完整。另外前面说过的手工在新环境重复点一遍 IMG 活动,也会导致三个环境的对象编号对不上,传输时校验不过。
解决:初始化类的 IMG 活动只在开发机做一次,然后跟自定义配置一起打包传输;传输前用 SPRO 的对象清单核对一遍,把特征组、编号范围、结构、策略、检查规则这几类对象都列进去。传到测试机之后先在测试机全流程跑一遍,再传生产,别跳。
提示:这五个坑里,前三个是配置阶段的,后两个是业务和迁移阶段的。配置阶段的坑症状明显、容易发现;业务和迁移阶段的坑往往在业务跑到一半才爆出来,代价更大。
6. 装完怎么验证:从 VA01 下单到库存视图走一遍闭环
配置全部做完之后,别急着交付。细分这套东西的验证不能只看配置界面,必须从业务单据走一遍完整闭环,否则你永远不知道哪一环的值传递断了。我一般的验证顺序是:销售下单 → 需求传递 → 采购执行 → 收货入库 → 库存查看,五步走完才算通。
第一步,VA01 建一张销售订单,行项目上选物料,看细分值能不能选出来、能不能保存。这一步验证的是 MM01 上的策略分配和 SGTC 的段策略有没有生效。选不出来说明策略没挂上或者段策略为空;选出来但保存报错,多半是段策略区间重叠或者空值处理不对。
第二步,看需求是不是按细分传递下去了。用 MD04 或者需求管理的报表看这笔订单产生的需求,重点看需求上带没带细分值。带不出来的话,计划部门拿到的就是一笔没有特征的需求,后面采购按什么买?这一步是原文里那几个问题中最关键的一环,也是最容易断的一环。
第三步,把需求转成采购申请和采购订单,看采购单据上细分值有没有延续下来。这里会遇到的典型情况是:采购单据上值带出来了,但供应商实际交货的批次效率值不一样,收货时要不要按实际值改?这个规则要在配置阶段就定下来,别等收货现场吵。
第四步,MIGO 收货,按实际值收货,看库存是不是落进了对应的细分。这一步验证的是“启用空值”和段策略的配合——如果来料还没检验,值先空着,能不能收;如果能收,后续补值的路径是什么。
第五步,MMBE 或者库存报表看结果,确认库存按细分维度分开显示了。到这里整个闭环才算合上。
| 验证点 | 事务码 | 期望结果 | 没通过先查哪里 |
|---|---|---|---|
| 销售订单能选细分值 | VA01 | 值可选、可保存 | 物料的策略分配、SGTC 段策略 |
| 需求带细分值 | MD04 | 需求行上有特征值 | 需求传递配置、结构是否被引用 |
| 采购单据带细分值 | ME21N | 行项目延续了细分值 | 采购相关的细分传递设置 |
| 收货能落对细分 | MIGO | 库存进入对应特征组合 | 启用空值、段策略边界 |
| 库存分开显示 | MMBE | 按细分维度分行显示 | 前面四步任意一环断了 |
验证里还有一个我自己必做的动作:拿边界值单独跑一遍。段策略的上下边界、空值、多值组合,这三类数据各建一张单子跑通,比跑十张正常单子有用。正常单子跑通只能证明主流程没断,边界值跑通才能证明配置是严密的。我曾经因为跳过这一步,上线第一周就碰到 23.5 落两段的报错,业务那边积压了一批单子等着处理,非常被动。
从那以后我每次做完细分配置,不管时间多紧,都强制把这张验证表从头到尾走一遍,边界值那一栏不打勾就不交付。这套流程看着笨,但它救过我两次——一次是发现需求传递断在采购环节,一次是发现某个物料上挂了两套策略。希望帮到你。这份方案我按界面顺序整理成了配置清单,每一步的字段填法、状态变化和验证动作都对着写进去了,想在这套环境上复现的可以拿去逐条对照。
本文还有配套的精品资源,点击获取