做了十多年SAP,QM这块我接触的项目不算少,但像标题里这种“QS41→QS51→CT04→CL02→QS31→QS21→CL24N→QP01→MM02→QA01→CO01/MIGO→QA32(QE02,QA11)”一长串事务码排出来的流程,还是经常能吓到新人。别慌,这一串看起来吓人,拆开看就是三件事:先建质检基础数据,再把质检规则挂到物料上,最后跑检验批做判定。这篇文章就按这条线,把这个质量管理流程完整走一遍,顺便把容易踩的坑也交代清楚。
这个流程适合谁看?刚接手SAP QM模块的顾问、企业内部负责质检主数据的业务骨干、以及准备做QM配置测试的关键用户,都能从里面找到直接能用的东西。我尽量不写那种“配置手册式”的流水账,每个节点都会讲清楚“为什么要这么做”,因为只有理解了背后的逻辑,你才敢在项目里做取舍。
1. 先看懂这条事务码链路到底在干什么
1.1 从“主数据”到“执行”的完整价值链
这条链路其实可以切分成两段。第一段从QS41开始到QP01结束,全部围绕“质检主数据”建设;第二段从MM02开始到QA11结束,是“业务执行”阶段。
主数据阶段做的事情,我习惯用“建目录、建特性、建计划”来概括。QS41建的是检验目录和代码组,例如“破坏性检验”“外观缺陷”这些大分类;CT04建的是具体质检特性,比如“长度”“硬度”“目视外观检查”;CL02和CL24N是把这些特性归入设备类别,方便后续整体调用;QS51是建检验计划主记录,QS31把特性挂进计划,QS21决定这个计划在哪些场景生效,QP01则是给计划配置取样方案。
执行阶段则围绕“检验批”展开。MM02在物料主数据里激活质检标识,QA01、CO01、MIGO负责产生检验批,QA32是质检员操作的主入口,QE02录入检验结果,QA11做最终使用决策。理解了这条主线,后面每个事务码才不会孤立。
1.2 先分清配置型事务码和业务型事务码
这一长串事务码里面,有相当一部分是“配置型”的,比如QS41、CT04、CL02、QS21、QP01,它们做的事情不是处理日常单据,而是维护基础规则。另外一部分是“业务型”的,比如QA01、QA32、QE02、QA11,它们才是日常质检工作台。
这个区别很重要。很多印度外包顾问在看流程时,把QS51和QA32混在一起,结果讨论半天不知道是上线前配置还是上线后使用。实际项目里,“配置型”由顾问在实施阶段完成,“业务型”由最终用户天天操作,权限角色也是完全分开的。
我在项目中看到的一个常见问题就是:客户把QM的权限全部放开,业务人员也能维护特性公差、取样计划,结果质检标准被改得千奇百怪。正确做法是CT04、QS51、QP01这些点只给QM工程师,QA32、QE02、QA11给一线质检员。
1.3 用一张订单的视角串起整个流程
如果觉得事务码太抽象,可以用一个场景来串:工厂采购了一批轴承,物料号是M-100,在MM02里已经配置了“来料检验”的检验类型。采购收货时MIGO过账,系统自动生成一个检验批,编号是1;质检员打开QA32看到这个检验批,点进去用QE02录数据:内径实测值、外径实测值、表面粗糙度目检结果;最后点QA11做使用决策,如果全部合格就放行到非限制库存,如果不合格就走拒收或让步接收。
生产端的逻辑类似:CO01创建生产订单并下达后,系统按检验计划为半成品/成品生成检验批,过程检验或完工检验都在QA32里处理。销售退货、库存转移也可以触发检验批,机制完全一致,只是“检验批来源”不同。所以,只要把“检验批”这个核心概念抓住,整个QM流程就抓住了一半。
2. 质检主数据准备:从QS41到CL24N的关键配置
2.1 QS41 建立检验目录(Catalog)与代码组
QS41这个事务码,名字叫“QM catalog”。很多人初次接触会以为它只是维护一个字典表,实际上它管理的是一组“目录-代码组-代码”三层结构。
举个例子。目录可以叫“破坏性检验”,下面有代码组“开箱检查结论”,组里包含代码:“合格”“不合格”“仅外观不合格”。将来在QE02录入定性检验结果时,系统显示的就是这些代码,用户靠点选完成录入,而不是自由写文本。这保证整个集团的数据是统一的,不会出现“OK”和“Pass”混用的情况。
实际项目里,目录一般会划分为几个类别:
- 缺陷类型目录:记录缺陷属于“外观”“功能”“尺寸”还是“包装”;
- 缺陷定位目录:记录缺陷部位,比如“内圈”“外圈”“密封面”;
- 决策目录:记录使用决策的结论和原因,比如“放行”“拒收”“让步接收”;
- 定性结果目录:记录“合格/不合格”之类的检验结论。
为什么要分这么细?因为QM的统计分析报表需要按维度汇总。如果缺陷类型、缺陷部位全是自由文本,后续分析“本月轴承内圈缺陷占比”根本没法做。这个事务码配得好不好,直接决定SPC和质检报表能不能用起来。
还要提醒一点,QS41建完后,要把目录分配给“目录类型”(Catalog type),比如“1”给结果、“2”给缺陷、“3”给决策用途,不同工厂可以拥有不同目录。具体分配在后台Catalogue Type里做,SAP固化了几种类型,尽量不要没事就去改类型定义,改不好会影响所有使用该目录的主数据。
2.2 CT04 定义检验特性:定量还是定性,关键在于公差与取样
CT04是质量管理里最容易被低估的事务码。你在这里定义的“特性”,不只是名字叫“长度”这么简单,系统靠它决定三件事:结果怎么录、怎么判定、取多少样。
一个特性要先区分是“定量”(量值)还是“定性”(符值)。定量特性例子是“内径20±0.1 mm”,录入的是数值,系统会自动对比上下公差给出判定结论;定性特性例子是“外观检查”,录入的是代码值,比如“合格/不合格”,判定逻辑靠代码组决定。
在CT04里,有几个关键字段值得注意:
- 数据类型和计量单位:定量特性的单位混乱是常见事故源,比如长度单位设成“M”但检验计划里期望“MM”,结果判定就会差1000倍;
- 公差范围:上下限可以固定值,也可以引用物料主数据或检验计划里的动态值;
- 取样数量:指每批按多少个样本取值。这里只是默认值,真正生效时还要看QP01取样方案;
- 特性状态:一般维护完就置为“已释放”,未释放的特性在检验计划里可能无法使用。
我个人的习惯是在CT04里把“属性”协同标签页也看一下,里面有些选项影响结果是否允许为空、是否必须全部记录。物性一旦发布后直接暴露给N个工厂使用,修改公差范围要非常谨慎,因为历史检验批的可比性会被破坏。
2.3 CL02 + CL24N 用类别把特性组织起来
在QM配置里,CL02是维护对象类别的事务码,常见的类类型有“物料类”“批次类”,而质量管理里我们通常会用类类型“03”来为检验目的分组。
为什么需要这个分组?想象一下,工厂有几十种电机轴,每种轴都有“直径”“圆度”“表面硬度”这些特性。如果每个检验计划都重新把特性逐个挂一遍,工作量巨大。正确的做法是建一个“电机轴尺寸检验”类别,然后通过CL24N把CT04里的三个特性分配给这个类别。之后在任何检验计划里,只要调用这个类别,三个特性自动带出。
这里强调一下,CL24N是“分配特性到类别”的界面,而不是建类别的。顺序一定不能乱:先CT04建特性、再CL02建类、最后CL24N做关联。我见过有顾问在CL02里直接尝试挂特性找不到入口,其实就是漏掉了CL24N这一步。
另外,同一个特性可以属于多个类别。比如“硬度”既属于“钢件机械性能检验类”,也属于“热处理批次复检类”,这没问题。但要注意,当某个特性在类别里被后续修改时,已经生成的检验计划不会自动更新,需要重新分配或手动刷新,这个坑后面讲到检验计划时再细化。
2.4 QS51 检验计划主记录:工厂+物料+计划用途的骨架
QS51是检验计划主记录的创建入口。检验计划在SAP里本质上是工艺路线的一种特殊形式,所以它维护的是“任务清单类型/组/计数器/工厂/用途/状态”这些骨架信息。
在QS51里建一个新的检验计划,至少要确定:
- 任务清单用途(Task List Usage):这个字段决定计划用在哪里,比如生产检验、来料检验、采购检验;
- 组和计数器:类似工艺路线里的“组”,一个工厂内唯一;
- 物料号:计划与哪个物料绑定;
- 状态:新建计划一般是“4”释放状态,技术上是“1创建、2锁定、3无效、4释放”这套编号逻辑,但具体看系统设置;
- 有效性日期:计划从哪天到哪天生效,防止将来旧计划失效后还在被检验批引用。
检验计划保存后,如果要针对一个物料多个检验方式(比如生产检验和来料检验),就需要建不同“用途”的多计划。这是SAP的一种标准做法,而不是在同一个计划里塞多种特性集合。
从使用角度讲,检验计划还有一个“工序”层。你可以在计划里 создавать多个检验工序,每个工序下再挂检验特性。典型场景是先做“外观/包装工序检验”,再做“尺寸/性能工序检验”,这在后续QE02里可以按工序分别录入结果。
2.5 QS21 与 QS31:用途过滤与特性分配
QS21是维护“检验计划用途”的。系统中用途会决定这个计划在哪个业务事件里被系统自动找出来。
比如来料检验和最终检验,如果共用一套检验项目,但场景不同,就需要分别维护用途。最常见的是01用于“来料检验/采购收货”,03用于“生产订单检验”。实际项目中,企业和顾问要约定一套统一的用途编码,否则物料主数据里点“自动生成检验批”时会因为找不到计划而报错。
QS31则是给检验计划分配检验特性的事务码。它的入口是先选中QS51里的计划,然后进入某一工序,把群体特性、CT04特性、CL02类别挂进去。我提过的“调用类别”就是通过QS31里的“按类别分配特性”操作来实现的,这时CL24N里建好的分类价值就体现出来了。
分配特性时,每个特性还能指定“取样方案”和“是否必须录入”,这是QM判断检验批能不能做使用决策的重要依据。如果某个特性漏掉结果也能保存,那多半是在这里把“必需特性”的标识关掉了。这一点在项目里经常被忽略,后面做QA11时会出现“没有录完结果也能做判定”的尴尬场景。
2.6 主数据配置的几个实战细节
主数据建完,我一般会先测试一个小闭环,而不是急着接业务单据。测试方法很简单:找一个测试物料,给它挂一份检验计划,然后用QA01手动创建一个检验批,看检验项目是否按计划带出来。
这个测试能一次性暴露很多问题。比如检验计划状态不是释放、物料工厂与计划工厂不一致、用途不匹配、特性状态不正确、取样方案没找到。几条常见排查命令可以记一下:
- 查检验计划:CS03/CA03可以看工艺路线,但QM计划要用QS53查看,或者直接在QS51的列表里看状态;
- 查特性是否释放:CT03;
- 查类别分配:CL03;
- 查取样方案:QP03。
细节决定成败,主数据阶段多花一小时测试,后面执行阶段能省三天。尤其是跨工厂复制主数据时,很多人从别的工厂COPY计划过来,结果“工厂”字段还是老工厂,检验批死活找不到计划,这种问题我见过太多。
3. 把质检“挂”到物料上:MM02 与检验批触发机制
3.1 MM02 质量管理视图到底要勾什么
检验计划再完整,物料主数据不激活质检,系统照样不生成检验批,这是新手最容易困惑的地方。
MM02里进入质量管理视图(QM视图),重点看这几个字段:
- 检验类型(Inspection Type):常见的有01(采购收货检验)、03(生产订单检验)、06(库存转移检验),也可以自定义其他类型;
- 检验批自动生成(InspLot生成):一般勾上,告诉系统“这个类型产生检验批”;
- 过账到检验库存(Post to Inspection Stock):如果勾上,收货时库存先进入“质检库存”,判定合格后才转非限制库存;不勾的话,货物直接在非限制库存,但QA32里仍然要处理检验批;
- 参考检验计划(Insp. with Task List):决定这个检验类型是否参照QS51里的计划,如果不参照,检验批可能没有检验项目,只能手动补录;
- 。动态检验规则(Dynamic Rule):激活以后,系统根据最近验收记录调整抽样数量,例如连续合格降低样本,出现不合格提高样本;
- 关键值(QM Control Key)和批号确定:有些企业还需要配合批次管理,这时还要注意MARC下的“批次管理”必须激活,否则无批次状态下的检验批管理会有很多限制。
我建议在项目里把“是否过账到检验库存”这个决策想清楚。很多企业为了满足财务账和实物同步,不愿意启用质检库存,只是做“收货后检验”,这时质检员其实是在非限制库存里先挪用物料检验。如果后续判定不合格,要做库存冻结或退货,流程会绕一些。但从SAP最佳实践角度看,关键来料、关键工序半成品建议启用质检库存,否则质量追溯和库存隔离的效果会打折扣。
3.2 检验批的来源:手动 QA01 与自动 CO01/MIGO
检验批从哪里来?三类来源覆盖绝大多数业务:
- 手动创建:QA01。适合临时送检、无主数据检验计划的特殊检验、客户退货复检等场景。QA01里要选择检验批来源(比如客户退货、资产/设备检验等)、输入物料、工厂、数量,系统会根据物料主数据和检验计划自动带出检验特性;
- 自动触发-采购收货:MIGO。当物料主数据激活了“采购收货检验”类型,且采购订单收货时,过账瞬间系统会生成检验批。这里还要注意“收货时自动转换批次”或“不自动转换”的配置;
- 自动触发-生产订单:CO01/CO02/CO03。生产订单在“下达”时刻或者订单(部分)收货时,QM后台会依据物料主数据和检验计划自动创建检验批。你可以理解为生产订单释放即质检点。
有一点常被忽略:检验批数量默认等于移动数量,但也可以在QA02里手工调整。比如来料1000件,但质检抽检计划要求首检500件,这时可以先按1000的检验批做结果录入,也可以在QA02分批。这个就看项目上对“批次/部分决策”的需求了。
3.3 检验类型与检验批状态
QA01创建出来的检验批会有一个“状态”,SAP里检验批状态组合虽然复杂,但对日常用户来说,最常见的几个状态是:
- CRTD:已创建,检验批还没开始处理;
- SETC:已设置完成,系统根据计划分配了检验项目;
- RESU:已有部分/全部结果;
- UD:已做出使用决策。
在QA32的列表界面,你通常会按“检验批描述/状态/工厂/物料”过滤,也可以按“待处理”“结果部分未录”“有决策未处理”等状态筛选。这里建议质检员不要用系统默认的“全屏所有检验批”,因为数据量大时,SAP列表加载会非常卡,最小化筛选条件才是正道。
检验批状态还跟“批次”是否激活有关系。如果物料是批次管理,且收货自动生成检验批,那么检验批号与“特殊库存/批次”是绑定的。QC放行和拒收的下一步,会触发批次状态的更新(比如自动变为“已质检”)或库存转移。这正好对应很多做序列号/批次追溯项目的同事熟悉的部分:只有检验批完成UD,批次状态才能变为合格可用。
4. 检验执行与判定:QA32、QE02、QA11 的实战节奏
4.1 QA32 检验批工作台的筛选与操作
QA32表面上看是一个事务码,实际是整个质量检验员的工作台。它支持按工厂、物料、检验类型、检验批来源、检验批编号区间等进行筛选。进入后,列表显示一批需要处理的检验批,双击某一行能进入明细。
在这里最高频的三种操作:
- 分配结果记录集(Assign Record Set):实质是告诉系统“我按哪些工序/特性录入结果”,一般用“参考检验计划”来自动生成;
- 结果录入(Results):跳转到QE02或新界面的结果录入;
- 使用决策(Usage Decision):跳转到QA11,对检验批做最终定夺;
- 历史记录(History):查看检验批的详细信息、状态变化。
在QA32里,我一般建议大家开启“Item”视图,并增加“检验批来源”“物料描述”“检验数量”这些列,这样一眼能看出哪个是来料检验,哪个是生产完工检验,避免搞错处理优先级。另外QA32列表里可以直接对多个检验批执行“批处理”,比如同时对10个检验批做使用决策,这种“批量决策”在系统高负载时段会很实用。
4.2 QE02 结果录入:定量结果的自动判定逻辑
QE02是录入检验结果的主入口,也是整个QM流程里业务人员每天花费时间最多的地方。
在QE02里,系统展示检验计划分配的检验特性。对于定量特性,录入实测值后系统对比CT04里定义的公差范围,自动给出判定“合格/不合格”;对于定性特性,从目录值里选择结论,比如“合格/不合格/待检”,必要时输入缺陷代码、缺陷数量。
这里有几个要特别注意的:
- 判定码(Code)不是简单的结果,它是决定结论的依据。比如同一个耐受性测试,可能把“轻微开裂”定义为“让步接受”,把“完全断裂”定义为“不合格”,这都靠代码组和目录的配置;
- 定量特性的“均值/极差”模式:某些特性要做多次测量(子样本),QE02会自动计算平均数和标准差,再对比公差进行判定。采样数量和测量频次往往来自QP01取样方案;
- 结果录入后可以重新录,但覆盖时要谨慎。最好关闭“自由修改已判定结果”的权限,否则追溯时没人能解释为什么最终放行的检验批曾经被判拒收。
工作中为了节省时间,很多人喜欢在QE02里一批检验批批量录入,这个没问题,但要注意“检验批分组”和“特性分组的搭配”。更合理的方式是:按照检验工序分组,一组一组录入,这样决策时逻辑最清晰。
4.3 QA11 使用决策:从合格放行到让步接收
检验结果录完,不代表质检结束,真正做到“盖章”的是QA11的使用决策。
在QA11里,质检员选择决策码(Usage Decision Code),常见的配置有:
- 合格/放行(Accept/Release):库存从质检库存转到非限制库存;
- 不合格/拒收(Reject/Block):库存冻结,等待退货、返工或报废;
- 让步接收(Use as-is / Deviation):库存可以放行,但通常伴随原因代码和审批记录;
- 部分决策(Partial Decision):同一个检验批部分数量合格、部分数量不合格。
选好决策码后,可以录入“原因代码”(如供应商偏差、设计变更豁免),也可以指定“后续动作”,比如“自动触发退货通知”“自动产生质量通知单”。这些联动配置在后台Decision和后续Process里做,项目上线后业务细化时经常会调整这里。
QA11有一个很重要的特性:检验批一旦做出最终UD,就不能随意改了。如果发现决策做错了,通常需要“Undo Usage Decision”的先决条件,而这个动作通常有权限限制,并会留下审计日志。所以我在培训时总强调:先确认所有结果都录完,再点保存,这不是流程麻烦,而是经验教训。
4.4 决策后的库存流与财务流
使用决策完成后,别只盯着QM的状态,还要看库存和财务的变化。
如果物料启用了质检库存,当QA11选择“放行”时,系统自动把“质检库存”转到“非限制库存”;选择“拒收”时,质检库存会转到“冻结库存/退货库存”。这个库存移动会自动产生相应的物料凭证,进而影响物料数量账和财务账。
这在项目里是QM和MM/FICO顾问经常联合调试的焦点。最常见的坑是:物料主数据如果没有勾选“质检库存”相关字段,或者QM后台的“Movement Type”对应关系没配好,QA11保存后库存没有按预期转移。处理这类问题时,别只盯QM配置,先去查物料凭证(MIGO显示或MB51)看移动类型,再从移动类型反查后台配置,效率会高很多。
5. 常见问题排查与实施经验
5.1 检验计划用不上、检验批不生成的排查顺序
检验批不生成,在QM项目里是最高频的故障。每次接到这类问题,我习惯按下面顺序排查:
- 物料主数据QM视图是否激活了对应检验类型(MM02查看);
- 检验类型是否勾选“检验批自动生成”(有些企业会故意关闭自动生成,只允许手动QA01);
- 检验计划是否存在且状态为释放(QS53/QS51查看);
- 检验计划的工厂、用途与物料主数据/采购订单/生产订单是否匹配;
- 事件触发时间点是否正确,比如生产订单是否“下达”后才生成,还是“创建”时就生成;
- 批次管理是否被激活,因为无批次物料在部分QM功能下会有特别限制;
- 最后再看后台配置(检验批生成规则、移动类型分配)。
有一次排查了很久,最后发现问题不是QM配置,而是采购订单行项目“检验编号”被手工清空了,导致收货时系统没能找到检验计划来源。所以说,遇到问题时先看具体单据数据,再回到配置,别一上来就猜后台。
5.2 结果无法录入、决策无法保存的常见原因
结果和决策保存失败,通常跟以下几个点有关:
- 检验批状态未到“SETC”,系统提示“没有可录入的结果记录集”,这时先回QA32做“分配记录集”;
- 特性没有结果需求,录入时提示“特性无结果需求”或录入结果后不被判定,检查QS31里特性和工序的“必需”标识;
- 目录类型与代码组不匹配,定性特性选值时弹出空的代码列表,检查CT04里的目录和QS41建目录时的类型;
- 决策码未在后台定义,QA11点保存报错“决策码不存在”,去事务码OQ01/OQ02(或者相应后台节点)检查决策码的工厂分配;
- 权限问题,对象S_QALS或S_QACO类的权限不足,导致QE02/QA11保存被拒。
我建议项目上线前,把“错误提示文本”当作最重要的调试工具。每做一个测试性检验批,都故意触发一次保存错误,然后记录系统提示的逻辑,整理成知识库。这样上线后用户打电话说“保存报错”,你稍微问一句提示文字,就能定位问题。
5.3 取样方案不生效的检查点
QP01配置取样方案后,取样数量能不能自动算出来,取决于层层调用是否完整。检查点如下:
- QP01里的取样方案是否包含“取样代码”和“批次大小范围”;
- CT04特性是否指定了“取样方案”,而不是只填了固定取样数量;
- QS31检验计划分配特性时,是否会把取样方案覆盖或清空;
- QA32分配结果记录集后,检验批的“取样数量”是否按方案计算出来;如果没有,用QA02查看“检验批详情”的采样页签。
取样方案按“批次大小”自动计算样本数,本质是一个分段函数。比如批量50以内抽3个,51到200抽5个,201以上抽8个。这很像日常买彩票或报税时的累进规则,设置时一定要把边界值设定清楚,否则批量刚好卡在50和51之间时,取样数量突变会让业务觉得“系统抽风”,实际是方案没配平滑。
5.4 值得记住的QM关键表和几个新事务码
做QM开发和报表查数,下面这些表要眼熟:
- QALS:检验批主表,查检验批基本信息、来源、数量;
- QAMR:检验结果值存储,按特性、行号可查到实测值;
- QAVE:使用决策数据,能查到决策人和决策时间;
- QAKL:检验批与质量控制结果集的关系(部分项目习惯用);
- PLKO/PLMK/PLMW:检验计划头、计划特性及特性值,是批检验项目和取样规则的数据来源;
- MARC/MARA:物料主数据通用数据,查QM视图配置;
- MKPF/MSEG:物料凭证,查质检库存转移记录。
另外,现在新部署的S/4项目里,QM有些经典事务码已经被新界面取代,比如QE02的新版本QE02N,QA11的新版本QA11N,QA32也有新的Fiori应用。但古典事务码在很多老项目里仍然是主流程的一部分,熟悉老代码不亏,因为这些代码命名和界面逻辑足够直观,转到新界面基本无痛。
5.5 关于这套流程,我的个人体会
做QM这么多年,最大的体会是:流程的骨架是“主数据+检验批+决策”,而真正决定项目成败的不是事务码本身,而是业务上对“质量判定规则”的定义是否清晰。你看完整条链路会发现,Q S41的代码组、CT04的公差、QP01的取样方案、 QA11的决策码,全部都是业务规则落地的载体。如果业务自己说不清楚“什么情况让步接收、什么情况拒收”,再完美的SAP配置也是空中楼阁。
所以给后来者的建议是:做完配置别急着演示界面,先请业务把“检验标准手册”拿出来,一条条对照这些事务码去落实;再用一个真实物料从MM02到QA11全流程跑通,让业务确认检验项目数量和取样逻辑跟线下完全一致。测试跑三遍没问题,再谈上线。
如果你正在实施新项目,这套流程还建议额外关注一个扩展点:SAP QM和PP/MM的自动交互逻辑配置(比如生产订单下达生成检验批、收货自动带批次、动态调整取样),这些是比事务码本身更靠后的隐性工程。希望这篇梳理能把你的思路理顺,少走点我一路上踩过的弯路。