简介一份聚焦SAP S4 HANA Segmentation细分策略的方案分享PPT面向SAP物料管理顾问、业务分析人员及已具备MM基础、希望理解细分落地的读者用于解决同款物料因来源、质量、颜色尺码、销售区域等属性细分而频繁新增物料编码的问题。压缩包仅含1个pptx约10.27MB以图文架构和业务示例组织内容便于直接查阅与内部研讨。已有691人学习。内容从细分简介、特征与细分结构、细分评估及库存主数据关系切入延伸到服装、电子、机械制造、快消品和光伏组件等行业场景并给出系统实现与业务演示线索例如白衬衫按产地、质地和销售地区分BOM、ATP与需求或电子库存按畅销、平销、滞销设定补货策略。读者可据此梳理细分在销售、需求、采购和库存管理中的传递方式理解如何用属性组合替代粗放的物料号管理为方案评估和原型讨论提供参考。1. 一个物料号被拆成 24 个段SAP 物料管理里的 Segmentation 到底解决什么物料号从 1 800 涨到 3 200只用了两个季度。某组件厂的计划主管把这串数字发给我时问题已经很清楚同一块电池片只因效率落在 23.2% 和 23.5% 两个档就被迫开成两个物料号BOM、ATP 可用性检查、采购订单全跟着翻倍。SAP 物料管理里的 Segmentation细分策略就是冲这个场景设计的把“会变的属性”从物料号里剥离出来用特性、细分结构、细分策略三层挂在同一个物料上让销售、计划、采购、库存各自带出不同的属性值。适合物料属性存在细小变化、又不愿意为每种变化建号的制造与流通企业属性稳定、一年改不了一次的品类没必要上。这份方案拆的就是从 CT04 到 MM01 的完整链路。2. 三层模型拆开看CT04 特性、SGTS 结构、SGTC 策略谁锁死谁2.1 为什么不是批次、不是分类也不是变式配置第一次听到细分的人九成会问一句这不就是批次管理吗我在项目上被问过至少五次每次都得从头解释因为四套机制长得像管的事情完全不在一个层面。批次Batch是收货那一刻才产生的实例属性跟着实物走下单前你没法承诺“我要 23.5% 那批”因为货还没来。分类Classification本质是给对象贴标签做描述它能查、能报表但不参与可用性检查也不改变库存的记账维度。变式配置LO-VC在销售端生成配置靠 BOM 展开和定价条件落地属性组合一多物料变式或配置模型数量会迅速失控维护成本压在工艺和主数据团队身上。细分策略的差别在于属性组合在物料号之下形成一个可独立记账的库存维度叫 segment段。同一物料号段不同库存就是两本账ATP 检查默认只认本段。下单前就能承诺收货后也能分清这是它跟前面三种方案最实质的分界。机制属性何时确定是否独立记账是否影响 ATP典型代价批次 Batch收货时是批次库存弱需配合批次确定无法在下单前锁定属性分类 Classification主数据维护时否否只能描述不能隔离库存变式配置 LO-VC销售配置时依赖物料变式视配置而定变式数量爆炸BOM 维护重细分 Segmentation物料分配策略后是段库存是按段匹配结构锁定后改动成本高选型判断可以压成两句话属性变化要不要在下单前就把库存分开同一物料号的可用量要不要按属性分别承诺。两个都是“要”才轮得到细分。2.2 特性、结构、策略的三层约束关系这三层不是并列的是层层收窄的。CT04 建的特性只回答“这个属性可以取哪些值”值域写法决定后面能不能自动匹配。SGTS 建的细分结构把一到多个特性组织成一个维度组合它决定细分的颗粒度同时用“启用空值”决定属性缺失时还能不能落段。SGTC 建的细分策略是在结构之下把每一个具体的特性值组合生成一条段记录段才是最终挂到物料主数据上、被业务单据引用的东西。约束方向也只有一个物料挂策略策略挂结构结构挂特性。反过来改处处是墙。特性值域要扩结构没锁还能带过去结构一旦被策略或物料引用系统自动锁定特性清单就不许动了策略里的段一旦被业务单据写过账改段值基本等于做数据迁移。对象事务码定义了什么关键开关改动风险特性CT04属性值域、格式、特征组特征组选 SGT_SAP-C低但被引用后要新建细分结构SGTS参与细分的特性清单与顺序启用空值、锁定状态中高锁定后不可改细分策略SGTC每个值组合对应一个段新输入、段生成高涉及库存迁移物料分配MM01/MM02某物料启用哪套策略细分策略字段高切换需清库存有个容易被忽略的细节SGTS 里的特性顺序会影响后面业务单据上属性值的录入顺序和部分匹配逻辑我在两个项目里见过因为顺序不一致同一批数据在测试环境和生产环境表现不同查了两天才发现是结构顺序对不上。所以特性顺序在上线前就要定死抄进配置文档。2.3 哪些属性该细分段数怎么估不是所有变化的属性都值得细分。判断标准建议按三个问题过一遍这个属性会不会影响可用量承诺会不会影响 BOM 或配单规则会不会影响采购执行。三个里中两个以上才进细分结构的候选清单。只是事后追溯用的属性交给批次特性更划算。属性变动频率影响 ATP影响 BOM影响采购结论电池片效率档高按批是是配单是进细分颜色中是是包材否进细分产地/来源低否否是候选看关税与采购策略供应商高否否是放批次特性别细分客户高否否否商务维度不细分段数是乘积关系3 档效率 × 2 个来源 × 2 个质量等级 12 段再加一个 4 值的渠道立刻变 48 段。每多一个段库存就多一本账月结、盘点、库龄分析全跟着乘。我的经验线是单一物料的策略段数控制在 30 以内比较舒服超过 100 段就要回头砍值域把连续值归成档位而不是继续加特性。段数失控是这类项目最常见的翻车点前期没人算这笔账上线三个月后财务先来找你。3. 从 CT04 到 SGTC 的建链五步配置里哪三步一错就得重来3.1 CT04 建特性特征组这一项选错后面全废特性是整个链路的地基CT04 界面里字段不多但有两个地方必须一次选对。操作顺序是SPRO 里先把细分相关配置节点打开顺序见第 4 章否则 CT04 里根本选不到需要的特征组CT04 输入特性名回车建议统一加前缀比如 ZSEG_EFF方便后面按名字搜基本数据页填描述、状态设为发布、格式按数据类型选数值或字符、值分配按业务需要选单一值或区间特征组一栏选 SGT_SAP-C转到值页签维护允许值清单最后保存。字段建议值选错的后果状态发布未发布时下游选不到该特性格式数值带小数位字符格式下 23.5 与 23.50 会被当成两个值值分配单一值选多值时一个段可挂多个值匹配逻辑变复杂特征组SGT_SAP-C相关性页签灰显无法维护整条链路断在这里特征组这一项是硬约束。项目正文里写得很直白不选 SGT_SAP-C就没法维护“相关性”。我见过有人在测试机里随手选了个别的组配置看着能存等到做段策略时系统死活不认这个特性回头改特征组又因为已被引用而改不动最后只能新建特性重来一遍。这类返工没有任何技术含量纯粹是没看那一行提示。值域维护也有讲究。效率这种连续量值域不要写成 23.1 到 23.9 全枚举按业务实际分档写 23.2、23.5、23.8 三档就够实测值另开一个特性记录别混在细分特性里。值域越宽后面段数越多库存维度越碎。3.2 SGTS 建细分结构启用空值和锁定状态是两个关键动作结构的作用是把特性组织成一个维度组合。SGTS 输入结构名和描述把上一步建好的特性逐个加进来勾选“启用空值”保存然后执行锁定。“启用空值”这一项经常被跳过。它的含义是某个特性没有值时这张单据仍然能落进某个段而不是匹配不到任何段。举个实际场景某物料在采购环节还没有效率档信息此时如果没启用空值采购申请就落不进任何段库存变成一笔谁也用不了的悬空数。启用之后空值本身构成一个可匹配的段业务能继续往下走等质检结果出来再转移。锁定是第二个关键动作。新建的结构默认是“解锁”状态可以随便改一旦被策略或物料引用系统会把它置为“锁定”特性清单就不许动了。所以正确做法是结构建完、特性核对无误手工先锁上避免有人在联调期间手滑改掉。项目正文里专门强调过这一点新结构默认解锁被引用后才锁定这中间的时间窗就是风险窗。结构要不要拆多个我的建议是按业务颗粒度拆不要一个结构塞十个特性。两个结构分别管“效率档 来源”和“质量等级”比一个结构里混着五个特性更好维护锁定影响面也小。3.3 SGTC 建细分策略段是这么一行一行建出来的策略是最终挂到物料上的对象。SGTC 输入策略名选择前面建好的细分结构进入“段策略”页签。注意此时如果结构还是解锁状态要先锁结构否则不给建。点“新输入”新增一行在行里把每个特性的具体值填进去一行就是一个段段标识由系统生成。比如三个特性分别是效率档、来源、质量等级你要覆盖 3 × 2 × 2 的全部组合就是 12 行。业务上不需要的组合可以不建比如某来源只供高等级那对应的低等级组合就空着段数还能再降。建完段之后要做一次核对三件事段数是否等于理论组合数每个特性的值是否都出现在值域清单里有没有哪个段是空的特性值全空。空段在启用空值后是合法的兜底段但只能有一个多了就会出现“这条单据到底落哪个段”的玄学问题。策略命名建议带版本和日期比如 ZSG_EFF_V1_0924。因为结构锁定后业务要扩值域标准做法是新建结构 新建策略 物料重新分配老策略留着做历史数据的解释依据不能删。3.4 建段之前先用一张表把组合盘干净SGTC 是手工一行一行点出来的12 段还行48 段就是体力活而且极容易漏。我的习惯是先在表格里把组合算清楚导成 CSV核完再照着建。segment_id,char_eff,char_origin,char_grade,remark SEG-01,23.2,A,A,主力档 SEG-02,23.2,A,B,降级出货 SEG-03,23.2,B,A,外采补充 SEG-04,23.5,A,A,主力档 SEG-05,23.5,A,B,降级出货 SEG-06,23.5,B,A,外采补充 SEG-07,23.8,A,A,高效档 SEG-08,23.8,A,B,降级出货 SEG-09,23.8,B,A,外采补充下面这段脚本用来做三件事校验每个值是否在 CT04 的允许清单里、检查组合有没有重复、和理论笛卡尔积比对找出漏建的段。import csv from collections import Counter from itertools import product # 从 CT04 值清单手工抄进来或用 SE16 导出后替换务必与系统里保持一字不差 ALLOWED { char_eff: [23.2, 23.5, 23.8], char_origin: [A, B], char_grade: [A, B], } # 顺序必须与 SGTS 里的特性顺序一致否则匹配结果和预期不符 CHAR_COLS [char_eff, char_origin, char_grade] PATH segments.csv rows [] with open(PATH, newline, encodingutf-8) as f: for r in csv.DictReader(f): rows.append({c: (r.get(c) or ).strip() for c in CHAR_COLS}) # 1) 值域校验写错一个字符就会多出一个永远匹配不到的段 bad [(i, c, r[c]) for i, r in enumerate(rows, 1) for c in CHAR_COLS if r[c] not in ALLOWED[c]] # 2) 组合去重同一组值建两次库存会被劈成两半 keys [|.join(r[c] for c in CHAR_COLS) for r in rows] dup [k for k, n in Counter(keys).items() if n 1] # 3) 漏配检查与理论笛卡尔积比对差集就是 SGTC 里还要补的行 full {|.join(p) for p in product(*[ALLOWED[c] for c in CHAR_COLS])} missing sorted(full - set(keys)) print(值域错误:, bad) print(重复组合:, dup) print(理论段数:, len(full), 已建:, len(set(keys)), 缺失:, missing)ALLOWED是唯一的事实来源必须和 CT04 里的值清单逐字对齐大小写、前后空格都算差异所以脚本里做了 strip。CHAR_COLS的顺序要和 SGTS 特性顺序一致这一点在跨环境迁移时尤其重要。missing的输出直接就是 SGTC 里还缺的行照着补就行如果missing长到几十条说明值域设计得太宽该回头砍档位而不是硬着头皮建完。4. 把策略挂到物料上MM01 的字段、SPRO 的开关与四个环节的落点4.1 MM01/MM02 分配策略字段灰掉的三种原因策略建好之后要落到具体物料上入口在物料主数据的细分相关字段不同版本的位置略有差异常见是在附加数据或计划相关视图里。操作是 MM02 打开目标物料切到对应视图填入细分策略编号标记该物料细分相关保存。这一步失败率很高字段灰显是最高频的报错。原因基本三种细分功能在 SPRO 里没激活字段压根不会出现物料类型不允许有些物料类型本身不支持细分维度权限不足字段可见但不可编辑。排查顺序建议从配置到物料类型再到权限别一上来就找权限顾问。还有个前提容易被忽略一个物料只能挂一套策略。如果业务上想同时按“效率档”和“包装形式”两个维度细分正确做法是把两个特性放进同一个结构而不是给物料挂两套策略。我见过有团队为了绕开结构锁定的限制试图给同一物料分批挂不同策略最后库存对不上账只能回滚。策略分配属于高风险操作一旦有库存过账换策略就要走清库存、迁移、重新分配的流程。所以试点阶段建议先拿一两个非关键物料跑通别一上来就全量。4.2 SPRO 里必须先开的几处开关配置节点在不同版本下名称会有出入最快的方式是在 SPRO 搜索框直接输 Segmentation能省掉一层层点菜单的时间。顺序上有个依赖关系前一步没做后一步的字段就不会出现。顺序配置内容作用漏做的后果1激活细分打开功能开关物料主数据里没有细分字段2定义细分结构对应 SGTS 的后台配置前台建结构报错或不可保存3定义细分策略对应 SGTC 的后台配置段策略页签不可用4物料类型/工厂相关设置控制字段可见性特定物料类型下字段灰显5权限角色补充事务码与对象授权能看到界面但保存失败第 1 步是最容易被跳过的一步。很多团队拿到一套已经配好的客户端做参考以为功能天然存在结果在新环境里 CT04 选不到 SGT_SAP-C查了半天以为是版本差异其实就是没激活。这个坑我在两个项目上各踩过一次第二次学乖了进新环境第一件事就是把这条开关核一遍。4.3 四个业务环节分别带出什么细分的价值不在配置本身在于属性值能不能顺着业务链传下去。项目正文里那串问题问得很到位销售端的效率需求怎么传到计划计划怎么传到采购采购交货效率不一致怎么收货这些才是落地要回答的。环节细分值从哪来影响什么配错的典型症状销售订单行上的特性值ATP 按段匹配可用量有货但确认不了或确认了发不出需求/MRP订单或预测携带的段计划订单、采购申请带段MRP 跑出的需求落进空段采购采购申请/订单上的段供应商按段交货收货时找不到对应段库存收货过账写入段段级库存、库龄、盘点总库存对得上段级对不上最典型的场景是这样客户订一批组件总功率有要求工艺评估后需要 23.5% 效率的电池片。销售订单上带 23.5 这个段值ATP 只在 23.5 段的库存里做检查计划跑出的计划订单同样带这个段采购按段下单供应商实际交货可能是 23.3这时要么在值域里预留档位做归并要么走质检转段。整条链路里任何一环没带段后面的库存就会分裂成“有段库存”和“无段库存”两堆总账看着正常明细一团乱。4.4 上线前要准备的五份数据配置是死的数据是活的。真正决定项目能不能上线的是这几份表有没有提前盘清楚数据内容谁出用途特性清单特性名、值域、格式工艺 主数据建 CT04结构清单特性组合与顺序主数据建 SGTS段清单全部值组合计划建 SGTC物料分配表物料号与策略对应关系主数据MM02 批量维护期初库存分摊规则现有库存如何拆到各段计划 财务切换期数据准备第五份最容易被漏。系统里已有的库存是无段的上线后必须按某个规则拆到各段否则新旧库存混在一起ATP 会给出一个漂亮但错误的数字。规则要提前和业务确认常见做法是按最近的质检结果或采购批次倒推倒推不出来的统一进空值段。5. 避坑排查五个让细分结构锁死、库存对不上的现场问题5.1 相关性页签灰显特性改不了现象CT04 里特性建完想维护相关性页签是灰的点不进去。原因基本数据页的特征组没选 SGT_SAP-C或者选了但没保存就切了页签。系统对非该特征组的特性不开放相关性维护。解决回基本数据页把特征组改过来再保存。如果这个特性已经被结构引用改不动了只能新建一个特性把值域重抄一遍然后在结构里替换。所以第一次建特性时把特征组当成必填项核一遍比事后救火便宜得多。5.2 结构保存报错“已锁定”特性加不进去现象业务要新增一个效率档去 SGTS 里加特性值系统提示结构已锁定无法修改。原因结构被策略或物料引用了系统自动置为锁定。这是设计上的保护不是 bug。解决没有后悔药只能新建一个结构版本配套新建策略再把物料重新分配到新策略上。老策略保留用于解释历史单据。正因为如此上线前把值域一次性定宽一点是划算的宁可多留两档空值也别三个月后重来一遍。5.3 物料主数据里根本没有细分策略字段现象MM02 打开物料找遍视图也没有细分相关字段。原因三种可能SPRO 里细分功能没激活、物料类型不支持、当前用户权限不足。解决按这个顺序查。先去 SPRO 搜 Segmentation 看激活开关再看物料类型配置最后找权限顾问核角色。有次排查到第三层才发现是权限问题前面白折腾两小时所以顺序别乱。5.4 明明有库存ATP 却确认不出来现象物料总库存显示有数销售订单带段值做可用性检查系统说没货。原因库存落在没有匹配的段上。要么 SGTS 没启用空值历史无段库存变成悬空数要么订单带的特性值不在 SGTC 已建的段里匹配不到任何段。解决先查订单上的特性值能不能在策略段清单里找到找不到就补段能找到再查库存落在哪个段如果是空值段回去检查结构有没有勾“启用空值”并确认只保留一个兜底空段。5.5 供应商交货值不在值域里收不进去现象采购订单要求 23.5 档供应商实际交货 23.3收货时特性值填不进去。原因CT04 值域是枚举23.3 不在清单里系统不接受。解决两种思路。业务能接受归并的把值域按档位设计成 23.0 到 23.4 归 23.2 档收货时按档录入需要保留实测值的拆成两个特性一个记录实测值放批次特性一个记录归档档位参与细分。第二种更贴近实际但要提前和质检、财务对好口径别上线后才发现报表口径不一致。6. 上线前用三张单据验一遍把 23.5% 的效率值从订单走到收货配置全绿不等于能用。我在项目上的固定动作是上线前用三张单据把一条完整的属性链跑一遍跑不通就不签收。这套动作花不了半天但能提前挖出八成以上的配置漏项。第一张是销售订单。选一个挂了策略的物料在订单行上带效率档 23.5做 ATP 检查确认系统只在 23.5 段里找库存。这时候故意把 23.5 段库存调成零看它会不会错误地拿别的段的货来确认——如果会说明段匹配没生效回头查策略分配。第二张是计划订单或采购申请。跑一次 MRP打开生成的单据看段值有没有继承下来。这一步最容易断链因为 MRP 的参数、计划边际码、物料主数据里的 MRP 类型都可能影响段值传递任何一处没配对跑出来的需求就落进空段。第三张是收货。按采购订单收货过账后去看段级库存确认数量落在 23.5 段而不是总库存池。再补一张转库或质检转段验证跨段移动能不能做。验证项操作通过标准段匹配清空目标段库存后做 ATP确认失败不回落到其他段需求传递跑 MRP 后查计划订单段值与订单一致收货落段采购收货后查段库存数量进指定段总库存同步空值兜底建一张不带特性值的单据落入唯一的空值段不报错结构锁定尝试修改已引用结构的特性系统拒绝提示锁定这里有个我自己的血泪教训某次上线前一天所有配置检查都过了唯独没跑空值兜底的用例。上线首周历史无段库存全成了悬空数销售确认不出来计划以为是库存丢了两边对着同一张报表吵了一下午。从那以后我每次做细分项目都把空值段单独列成一个验证用例强制走一遍不管业务说这项有没有场景。还有个技巧值得记验证阶段把每个段的库存先人为设成质数比如 3、5、7而不是都放 100。这样 ATP 结果一出你一眼就能反推出系统到底取了哪个段比看日志快得多。这个方法我用了好几年比任何报表都好使。希望帮到你。本文还有配套的精品资源点击获取