☰
SAP分类、批次与序列号管理:从配置到追溯的完整指南
2026/10/14 13:53:00 网站建设 项目流程

简介:SAP分类、序列号与批次管理是库存精细化跟踪的核心工具,三者各自的适用场景与配置逻辑常令初学者困惑。这份讲解面向SAP后勤模块顾问、物料管理及供应链从业者,以PDF分篇梳理了分类管理(含CL01/CL02/CL03维护分类、CT04/CT05/CT06维护特征与值、物料分类001与供应商分类010、批次分类022/023)、序列号管理的单品全生命周期追溯、批次管理的库存确定逻辑,并延伸覆盖库存确定组与规则的分配方式、安全库存的手工输入、系统自动计算及动态安全库存。PDF共1份,所属压缩包约2.53MB,轻量易携带,碎片时间即可翻阅。已有3300余人学习浏览,适合需要快速入门的中初级人员。通过这份资料,可以同时建立物料主数据与库存管理的整体框架,掌握从分类特征值复制(MARA/MCH1/MCHA)到库存确定策略、再到安全库存公式(MAD×R×√W)的操作脉络,为项目配置、后台维护和日常排错提供可直接落地的参考。

1. 分类管理、序列号管理、批次管理:为什么总被放在一起讲?

做SAP项目,特别是MM、PP、QM这几个模块打底的项目,分类管理、序列号管理、批次管理几乎总是被安排在同一个培训单元里。很多人一开始觉得它们互相独立:分类是给主数据加描述,批次是给库存分段,序列号是给单个设备做记号。可一进实施阶段就发现,它们之间是上下游关系——批次属性要借分类的特性来维护,序列号要跟着批次库存一起流动,而追溯报表最终要同时查询这三个维度。我按“先分类、再批次、后序列号”的顺序,把每个管理的配置路径、事务代码和踩坑点讲透,适合做物料主数据、库存顾问和工厂IT落地追溯体系时参考。

2. 分类管理:用类与特性给物料“贴标签”的体系

2.1 类、特性、对象:分类管理的三个基本构件

分类管理在SAP里不是“物料分类账”,而是主数据分类系统。它的核心是三个概念:特性描述一个属性,比如“额定电压”“最大长度”“材质”;类是一组特性的集合,比如“电机类”包含功率、转速、防护等级;对象则是被分类的实体,最常见的是物料,也可以是设备、客户、供应商、质量检验批次。

把这三个构件落实下来,业务流程就变成:先用CT04建特性,再用CL02建类,最后用CL20N把类和物料挂上。这样,当你要在库存中找“电压380V的电机”时,不再翻Excel,而是用CL30N按类加特性值搜索,几秒钟就能筛出候选物料清单。这个机制在S/4HANA和ECC里都一样,只是SAP Fiori里的入口更直观,但后台表和事务代码基本没变。

很多新人会把分类系统里的“类”和质量模块里的“检验类”搞混。检验类是质检计划里对检验流程的描述,分类类则是纯粹的属性集合;两者可以相关,但不是一回事。另外,分类系统里的对象类型有两位数代码,比如001是物料,023是批次,要避免选错对象类型,否则后面分配类时找不到对象。

2.2 用CT04建特性、CL02建类,再挂到物料主数据

以物料分类举例,最小落地步骤如下。

第一步,CT04建特性。事务码CT04,创建一个特性Z_MOTOR_VOLT,数据类型选“数值”,值定义里维护允许范围“220V/380V/400V”。这里有几个参数必须注意:首先是“允许值”和“附加值”的区别——如果勾了“附加值”,用户可以不按值表随意输;对于需要后续做搜索和批次继承的场景,建议不勾,强制从值表选。其次是“参考特性”,如果你希望变量类型、长度继承,可以引用已有特性,但引用后值定义不能改。最后是“状态”,特性创建后要激活,未激活的分配不上。

第二步,CL02建类。事务码CL02,创建一个类Z_MOTOR,类类型选001。进去后维护描述,然后分配特性Z_MOTOR_VOLT、Z_MOTOR_POWER等。在“关键字”页签里,如果勾了“只有该类的特性值”,那么用这个类的物料只能维护定义的值;如果开了“允许删除特性值”,则删除时可以不清空历史。建议对物料类保持“类状态”为“已发布”,否则MM01里看不到这个类。

第三步,分配类给物料。有两种途径:在MM01或MM02里进入“分类”视图,直接填类名;或者更推荐的批量方式,用事务码CL20N,支持按物料类型、工厂、物料组批量分配,也支持在Excel里准备清单后用LSMW批量维护。要注意,类在物料主数据里不会立即生效,需要先激活,再重新显示物料。

一个常见参数是“类类型”。物料分类类类型是001,批次类类型是023。如果你把物料类建成023,后面从MSC3N看批次属性就会出问题。所以建类之前,一定要先确认对象类型列表。

2.3 分类在搜索、BOM和变式配置里的实际用途

分类的价值不在建,而在查和传。日常生产用得最多的三个场景。

一是按特性搜索物料。事务码CL30N,输入类Z_MOTOR,设置特性条件,执行后可在结果表里选物料号。这个查询可以保存变式,放在收藏夹里。对于物料主数据多的工厂,这比MB52按库存慢慢筛高效得多。

二是把分类特性传给BOM和工艺路线。在PP模块里,BOM项目可以用特性值做“变式配置”,从而在一个BOM里通过选择特性值得到不同产品变体。这在汽车、装备制造很常见。要启用这个,需要在物料主数据分类视图里勾选“变式配置”,并给特性勾上“可配置”。这个功能的配置量不低,新手建议先做标准属性继承,不要一上来就上变式配置。

三是把分类复用给质检。QM里检验计划中的检验特性可以直接引用分类里的特性,这样检验结果回传给批次特性,追溯报表就能看到质检值。这也是批次管理里最常见的衔接方式。

还有一点容易被忽略:分类特性值默认不参与MRP,也不进物料凭证。如果你需要在报表里关联,比如用SAP MM底表AUSP和MCHA等主数据表做连接,需要写ABAP查询或用SE16N手工查。不要把分类特性硬塞进现有字段,那样以后扩展很痛苦。

3. 序列号管理:从“一批”到“一台”的单件级追溯

3.1 序列号解决的业务问题与适用场景

批次管理能告诉你“这批货是哪个供应商、哪一天到的”,但当客户报告“那一台设备转运箱把手断裂”时,你需要的不是整批信息,而是这一台箱子的生产时间、装配工位、使用了哪一支原料批次。这时候就要靠序列号管理。

序列号管理在SAP里是一个“库存对象”级别的标识,它不是物料主数据字段,而是挂在每一条具体库存记录上的。同一个物料可以有同一个批次,批次的每一件再分配一个唯一序列号,实现“批次+序列号”两级追溯。适合上序列号的物料有几类:高价值的备件、医疗器械、需要定期维保的固定资产、以及客户要求单独刻号的整机产品。如果只是普通辅料,强行上序列号反而会让每笔收货发料都多一个弹窗,业务操作量上升,收益不明显。

序列号管理和设备管理有接口:如果你启用了对象类型为“设备”,序列号可以对应一个PM设备主记录,之后维护工单就能直接关联到这台设备。这个联动在设备密集型企业很实用。

3.2 启用序列号的配置:物料主数据、序列号参数文件、自动编号范围

整个启用过程分三步。

第一步,定义序列号参数文件。后台路径:物料管理 → 库存管理和实际库存 → 序列号管理 → 序列号参数文件。参数文件决定了几件事:序列号由外部输入还是内部自动分配;是否要求每个库存移动都必须维护序列号;序列号是工厂内唯一还是跨工厂唯一;在收货、转库、盘点时是强制输入还是可选。常见做法是设一个“收货强制输入、发货可选”的参数文件,给关键物料用,让收货时建号,发货时扫码即可。

第二步,配置编号范围。如果选择内部给号,需要在后台为序列号维护编号范围,一般按物料类型分,比如整机物料用Z01,备件用Z02。这里有个坑:编号范围的长度要与序列号参数字段长度匹配,否则输入时系统提示“序列号太长”。多数企业直接用外部扫码枪输入序列号,编号范围就只需要维护外部范围,避免系统内部号盖住了厂商条码号。

第三步,在物料主数据MM01或MM02的“基本数据1”页签维护“序列号参数文件”。只有维护了这个参数文件,物料在收货时才会出现序列号页签。如果你希望某些物料类型固定启用,也可以用LSMW按物料批量维护。

这里要特别强调:序列号参数文件是“每个物料”单独分配的,不能全局生效;同时,序列号可以结合批次使用,但需要先启用批次管理,否则MIGO里批次和序列号的联动界面不会出现。

3.3 序列号在收货、发货、库存转移中的流转与报表查看

收货时,在MIGO凭证里切到“序列号”页签,可以手工逐条维护,也可以用“批量维护”按钮从Excel或扫码枪导入。如果物料启用了“内部给号”,进场时点“自动编号”按钮,系统会按编号范围生成连续号;如果外部给号,则要求扫描枪逐条扫入。

发货到成本中心、销售单出库,同样在MIGO的序列号页签选择“发料/出库”,系统会检查该序列号是否存在、库存是否充足。如果你想过账时未维护序列号,物料主数据的“序列号必需”会拦住凭证,防止漏扫。

库存转移中,两个工厂或库存地之间调拨也会带着序列号移动;必要时可以用序列号参数文件的“允许移动类型控制”,控制只有指定的移动类型才强制序列号,比如只控制101收货和201发料,其他移动类型放行。

查看序列号库存和去向,可以用事务码IQO1(序列号清单)按物料、工厂、序列号查询;也可以直接用SE16N查表SER01和EQUI。如果你想看一个序列号从进场到出库走了哪些凭证,用MB51扩充物料凭证搜索条件,增加“序列号”字段,就能列出所有涉及的物料凭证号码,逐个查看。

顺便提一句SAP MD07这个事务码,它是库存覆盖清单,虽然不直接展示序列号,但把批次库存和需求汇总后,你可以快速看到哪些序列号所在的批次存在缺料风险。实际场景里,计划员经常拿MD07配合批次追溯表用。

4. 批次管理:让库存带“生产批号”的批次粒度控制

4.1 批次管理的业务价值:先进先出、保质期、召回

批次管理是目前制造业库存追溯里默认启动的功能。简单说,它把同一物料的库存按“批号”切成多个子库存,每个批次可以有不同的到货日期、供应商、生产日期、保质期、质检结论。这样发货时可以按“先到期先出”自动选批,一旦发现质量问题可以按批号框定召回范围,而不是把整个物料全盘冻结。

在SAP里,批次有两个层级:批次主记录(表MCHA)和批次库存(表MCHB)。MCHA存批号抬头信息,包括物料、工厂、批次状态、过期日;MCHB存每个库存地点的批次数量。日常业务看到“批次过账”,实际上就是更新这两张表。批次状态分“未限制使用”“冻结”“品质检验中”等,可以通过MSC2N修改状态。

批次特性是批次管理和分类系统的结合点。给批次类挂上“生产日期”“供应商批次”“质检值”这些特性,收货时系统会弹窗让你维护,之后任何报表都能按这些特性筛选。可以说,没有分类系统,批次就只能存“批号”和“数量”,没有可检索的属性;加上分类特性,批次才变成可筛选、可分析的完整主数据。

4.2 激活批次管理的路径与物料主数据设置

激活批次管理不是单独一个开关,而是一串设置。

  1. 后台激活整体批次管理。路径:物料管理 → 库存管理和实际库存 → 批次管理 → 激活状态管理。新装系统默认不开启,需要配置。
  2. 在工厂维度决定是否允许批次。路径:物料管理 → 库存管理和实际库存 → 批次管理 → 设置物料和工厂的批次管理状态。这里可以按工厂指定“工厂级别批次管理”为必需、可选或不可用。
  3. 物料主数据MM01或MM02:基本数据1页签勾选“批次管理”,同时在“工厂数据/存储1”页签设置“批次管理状态”。这个状态通常选“允许工厂级批次”或“允许物料+工厂级批次”。区别在于批号是否在工厂内唯一。
  4. 如果要做批次自动确定,还需要在MM01里给物料设置“自动批次确定”的配置,或者用后台“批次确定”为移动类型指定搜索策略。

常见做法是:对普通物料只勾选批次管理,不启用自动批次确定;对保质期要求高的物料,在发货移动类型里配置“按过扣期/入库日”的搜索策略。这样既有追溯能力,又不会让每一笔业务都弹选批框。

4.3 批次创建、批次确定、批次属性继承与评估

批次创建有多个入口:MIGO收货时,只要物料启用了批次管理,凭证类型是101,系统会弹“建立批次”对话框;也可以在MSC1N手动建空批次,用于预先分配批号给供应商或内部返工单。批次主记录维护用MSC2N,显示用MSC3N。如果你启用了批次分类,MSC2N里会有一个“分类”页签,可以维护特性值。

批次确定是在库存移动时让系统自动挑选批次的机制。它的核心配置是“搜索过程”和“条件记录”。以发货给生产订单为例:后台用事务码MBC1定义搜索过程,把“按过扣期”“按收货日期”“按批次特性”等作为搜索条件;然后利用条件记录分配策略,SAP在执行MIGO发料时会自动匹配一个批次并带出行项目。这里最常见的参数是“批次顺序”和“只选受限批次”,建议设置“仅使用未限制批次”,避免把检验中批次发到生产线上。

批次属性继承指收货时系统自动把物料主数据分类里的某些特性值带到批次。比如物料类里有“产品线”特性,收货建批时默认继承物料主数据里的值,不需要人工重复录入。这个可以通过后台“为批次分配分类”的默认值功能实现;也可以建批次时由系统从物料主数据复制。

批次评估则是另一个维度:它允许同一物料的不同批次有不同的标准价、移动平均价。价格评估和批次状态、批次属性没有关系,是财务核算层面的。有很多项目把批次评估和批次分类混在一起,导到物料分类账里报错,错误信息类似“物料至物料分类帐的连接缺失”。这其实是两个独立的配置点,批次评估要单独在“物料评估-评估范围”里勾选,跟分类特性无关。

5. 三管齐下时的避坑清单与排查手段

5.1 先分类,再批次,后序列号:主数据与流程的串接顺序

同时启用三个管理的项目,配置顺序比模块功能更重要。我建议的顺序是:先建CT04特性和CL02类;再建批次类(023)并把特性和批次类结合;然后给物料分配类并启用批次管理;最后配置序列号参数文件并分配给物料。这个顺序背后的逻辑是:批次属性依赖分类特性,而序列号需要挂在有批次的库存凭证上,所以批次要先于序列号。

具体操作上,物料主数据要维护三组信息:基本数据1里的批次管理勾选框和序列号参数文件、分类视图里的物料类、工厂数据里的批次管理状态。如果你用的是LSMW批量维护,建议这三个视图一次性维护完,避免后期逐个补。检查时用MM03看完整性,多个工厂要逐个看。

注意:先做分类特性再挂批次类,顺序反了会导致批次特性页签不显示。

5.2 避坑清单:5个真实翻车场景

坑一:MSC3N看不到批次特性值。

现象:物料主数据已经分配了类,收货也建了批次,但MSC3N的“分类”页签是空的,特性值无处维护。

原因:给物料分配的类可能是普通物料类(001),而不是批次类(023)。批次主数据只认批次类;如果物料没有挂批次类,或者挂的类状态未激活,批次属性页签就不显示。

解决:在CL02确认这个类是023类,并标记已发布;然后在CL20N检查物料-类关联,必要时把类重新分配一次,再用MSC1N新建或修改批次,页签就会出现了。

坑二:发货时自动带出的批次不是最先过期的。

现象:MIGO做了发货过账,批次没有被替换成过扣期最近的批。

原因:没配置批次确定,或配置了但物料主数据未启用;也可能搜索过程里“过扣期”条件的排序和激活状态不对。

解决:去后台批次确定配置里,用MBC1维护搜索过程,把“过扣期”条件放在优先级最高,并给这组移动类型分配条件记录。改完在物料主数据MM02里检查“自动批次确定”是激活状态。批次确定在配置不佳时确实有点像玄学,但只要条件顺序和激活标志对了,系统会老实按策略走。

坑三:序列号重复但系统没报错。

现象:两次收货扫了同一个序列号,库存里出现重复记录,发货时甚至会扣错。

原因:序列号参数文件里没有勾选唯一性;或者内外编号范围冲突,外部维护的号段和内部自动生成的号段重叠。

解决:在序列号参数文件中勾选“唯一序列号”,并在后台把内部编号范围起始值设成远远大于外部条码号段,比如外部是8位条码,内部从A0000000开始。

坑四:MIGO收货时批次对话框不弹出来。

现象:明明物料是批次管理物料,但101收货直接过账,没有让建批。

原因:物料主数据“工厂数据/存储1”里的批次管理状态没维护成“必需”,或者后台工厂级设置是“不可用”。

解决:MM02进入工厂数据/存储1页签,把批次管理状态改成“必需的”或“可选的”;同时查后台工厂设置,确保工厂维度允许批次管理。改完以后,新建的收货凭证才弹窗,已经有的物料需要重新过账。

坑五:带批次物料的MIGO里没有序列号页签。

现象:既要批次又要序列号,但收货界面只看到批次,找不到序列号页签。

原因:序列号参数文件没分配到物料,或者参数文件里禁止了序列号页签的显示;也可能是凭证的物料类型或移动类型在参数文件里没放行。

解决:检查MM02基本数据1的序列号参数文件;在参数文件里确认“序列号输入”选的是必需或可选;如果还不行,检查移动类型是否在“允许的移动类型”里。常见的序列号参数文件默认只放行101和561,其他移动类型要手工加。

5.3 用底表快速定位:AUSP、MCHA、SER01怎么连

当界面上看不出问题时,直接查底层表最快。分类特性值存在AUSP,批次主数据存在MCHA,批次库存存在MCHB,序列号历史存在SER01,设备序列号主数据在EQUI。查看时先按物料加批次去MCHA拿到批次号,再到AUSP查批次对象的特性值;如果AUSP查不到,说明批次类没关联上;如果序列号找不到,去SER01按物料凭证索引导出。用SE16N就能查,不需要SE11建视图。

有同事问“SAP MM底表怎么查”,实际项目里就是靠这几张表。把AUSP、MCHA、MCHB、SER01做成一个联合视图,再配合物料主数据MAKT,就能覆盖90%的追溯查询。

6. 验证与进阶:用一张追溯表检验配置是否完整

配置了三套管理,最担心的是“界面都对,数据经不起查”。我每次上线前都会做一轮验证:取一个交叉物料,给它做一次101收货,录入批号和序列号;再做一次201发货,指定同一个批次和序列号;最后跑一段ABAP查询,把物料、批号、序列号、特性值、数量、凭证号拉成一张扁平的追溯表,确认四个维度都在。

提供一段可用的ABAP示例,放到你自己报表里,逻辑就是内表关联:

TYPES: BEGIN OF ty_trace, matnr TYPE mcha-matnr, charg TYPE mcha-charg, serng TYPE ser01-serng, atwrt TYPE ausp-atwrt, menge TYPE mchb-clabs, mblnr TYPE ser01-mblnr, END OF ty_trace. DATA: lt_trace TYPE TABLE OF ty_trace. SELECT mchb~matnr, mchb~charg, mchb~clabs INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_inv) FROM mchb WHERE mchb~matnr = @p_matnr. LOOP AT lt_inv INTO DATA(ls_inv). SELECT SINGLE atwrt FROM ausp INTO @DATA(lv_atwrt) WHERE objek = @ls_inv-charg AND atinn IN ( SELECT atinn FROM cabn WHERE atnam = 'Z_ORIGIN' ). LOOP AT lt_ser WHERE matnr = ls_inv-matnr AND charg = ls_inv-charg. MOVE-CORRESPONDING ls_ser TO ls_trace. ls_trace-atwrt = lv_atwrt. ls_trace-menge = ls_inv-clabs. APPEND ls_trace TO lt_trace. ENDLOOP. ENDLOOP.

这段代码是示意,重点是先拿批次库存,再到AUSP取批次特性值,再到SER01取序列号清单,最后输出一个追溯报表。参数说明:AUSP里的OBJEK字段存的是“对象标识”,对批次来说就是批次号;ATINN是特性内部编号,建议先通过CABN特性名称转成内部编号;SER01要和MCHA通过物料加批次关联,而不是单独用序列号反查。

再看看运行结果:如果AUSP里查不到特性值,回到第5章的坑一;如果SER01没有数据,检查序列号参数文件;如果数量和凭证对不上,检查移动类型是否在序列号参数文件中放行。这样一遍下来,三个管理的数据链路就闭环了。

最后说一个我的习惯:每个物料主数据设置完,我都会用MM03跑一遍“所有视图”完整显示,然后截图存档。后续换顾问或者版本升级,拿着截图做回测,比翻配置文档管用。这个习惯帮我避免了好多次自己挖的坑。希望帮到你。

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

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

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

立即咨询