做SAP PP 项目我见过太多同事和用户栽在“委外加工”这件事上。一说委外大家脑子里第一个反应就是标准委外BOM 一套采购订单一发供应商把东西做完送回来货入库订单结掉完事。这套逻辑确实简单但真正上了项目最让人头疼的往往是另一种——工序委外。你别看它只是在工艺路线里把某一道工序标了个“外部加工”从主数据、计划、采购、库存到结算整条链路的复杂程度直接上了一个台阶。这篇文章我就把工序委外的底子完完整整翻一遍包括它和标准委外的业务边界、后台配置该怎么搭、主数据怎么做、日常操作怎么跑以及我踩过的那些坑。内容适合SAP PP/MM顾问、制造业的IT和关键用户也适合刚入行不久、被“分包库存”搞晕的同行。1. 先搞懂业务边界工序委外和标准委外不是一回事1.1 标准委外在物料层面“包出去”标准委外英文叫Subcontracting业务上通常叫整单外协或者来料加工。比如你公司做液压阀阀体要从毛坯开始车、铣、钻、热处理、精磨但你们自己不想投入那么多设备干脆把“毛坯变成成品阀体”这整个过程全部交给供应商供应商按你们提供的图纸和工艺做最后交回来是成品或者半成品。在SAP里这颗物料的命运很简单物料主数据里采购类型设成F外购MRP跑出来的是采购申请不是计划订单采购订单的项目类别是L分包供应商送货后仓库收货库存直接变成非限制使用库存。如果中间需要把自己买回来的材料发给供应商来料加工那就通过BOM下挂组件发货时用移动类型541加工完收货用543整个逻辑围绕“这颗物料”转。标准委外的优点是链路短、好理解、容易上线。缺点是颗粒度太粗一旦某颗物料只外包一道工序、其余工序还在内部做标准委外就玩不转了。1.2 工序委外只是把某一道工序“包出去”工序委外英文叫Subcontracting Operation或External Operation业务上往往叫外协工序。典型场景是机械加工企业齿轮厂自己有车、铣、磨但没有热处理炉于是把“热处理”这个工序交给外部供应商。齿轮本身还是自产生产订单照常下达内部工序照常报工唯独工艺路线里“热处理”这道工序被标记为外部加工。在SAP里工序委外的主数据核心移到了工艺路线上。你在CA01维护工艺路线时让这道工序使用一个外部加工控制码比如标准控制码PP01再维护供应商、采购信息记录、加工单价。MRP展开计划订单时系统会自动为这道外部工序生成一条采购申请采购转成采购订单后供应商只负责做这一道工序。做完以后货送回来你的工厂继续跑后道工序最后按正常生产订单入库、结算。工序委外适合加工能力缺口、特殊工艺需要外部资质、或者把不够经济的工序甩出去降成本的场景。它和标准委外最大的分界线不是“谁做的多谁做的少”而是“委外的粒度”标准委外是物料级工序委外是工艺路线里的工序级。1.3 一张表对比边界立刻清楚对比项标准委外工序委外委外对象整颗物料成品或半成品生产订单里的某道工序主数据核心物料主数据采购视图BOM工艺路线外部工序采购信息记录MRP结果直接生成采购申请自产计划订单外部工序采购申请半成品属性通常设为外购F通常仍为自产E组件发料541发到分包库存来料加工时541发到分包库存带料外协时收货方式101或543收成品/半成品543收外协工序半成品后续继续内部加工成本构成外购物料成本组件成本内部工序成本外部工序加工费典型行业整件外包装配、成品采购热处理、电镀、喷涂、线切割这张表不是让死记的而是用来做业务判断。很多时候用户跟我说“我们要做委外”我先不急着配系统而是先问一句你把整个物料给供应商还是只给一道工序这一个问题基本就决定了后面80%的配置方向。2. 工序委外的主数据设置这步错全盘错2.1 工艺路线里挂外部工序控制码是第一步工序委外的起点是工艺路线入口是事务代码CA01/CA02。创建工序时“控制码”这个字段决定了工序的性质。SAP标准控制码里PS01是内部加工PP01是外部加工采购相关PP02也是外部加工成本核算相关。我建议的做法是先确认公司的外协工序都需要发料给供应商还是纯加工不带料。然后再决定用哪个控制码。控制码本身是个配置集合背后对应着生产调度参数文件在后台路径“生产→生产计划→工序→生产调度参数文件”里可以定义它是否外部采购、是否成本核算、是否自动创建采购申请、是否允许报工确认等。实操中我见过最坑的项目是顾问把内部加工的控制码直接复制了一个改了个名字当外部控制码用结果“外部采购”勾没打MRP死活不生成采购申请。所以这里必须复核三个开关外部采购勾上、成本核算相关勾上、允许自动创建采购申请勾上。提示控制码不是越多越好。一个内部加工、一个外部加工最多再加一个质检工序控制码足够覆盖90%的业务。复制一堆变体最后顾问自己都分不清哪个是哪个。2.2 信息记录与货源外部工序的“价格字典”外部工序加工费不是拍脑袋填的在SAP标准成本估算和订单结算时取的是采购信息记录里的条件价格。事务代码ME11创建信息记录维护供应商、物料、有效期间、单价、价格单位、计量单位。注意工序外协的信息记录通常是“分包”类信息记录也就是说它对应的不是一个普通的采购物料而是“外部工序加工服务”。创建时信息记录类别要选对否则CK11N运行标准成本估算时取不到外部工序作业价格出来的半成品成本就是残缺的。还有一个很容易被忽略的点多个外协供应商时建议维护配额协议和货源清单。比如热处理有两家供应商按6:4比例分配用ME01/ME05维护好MRP生成的采购申请会自动带出供应商采购员不用每天去挑供应商。这个细节对采购部门来说非常实用。2.3 移动类型与特殊库存供应商处的库存怎么变出来的工序委外最绕脑子的不是配置是库存逻辑。很多人理解不了为什么货发给供应商了库存还在而且还在自己公司名下这个库存类型叫“供应商分包库存”特殊库存类型O。发出时移动类型541库存从非限制使用库存转到供应商分包库存供应商加工完送回来移动类型543库存再转回自有工厂。整个过程物料从未真正“消失”只是在两个库存位置之间跳转。我用一个生活化的类比你把衣服送去干洗店衣服离开你家了但它还是你的衣服只是放在了“干洗店代管”的位置。干洗店洗完送回来衣服回到你家衣柜。SAP里的特殊库存O就是这个“干洗店代管位”。MMBE查库存时能看到特殊库存“O”的数量MB52里也有一列显示分包库存。如果业务上发现供应商处的库存数量对不上先查MMBE看是不是有541发出但一直没做543收货或者PO删除了但货还在供应商那里。2.4 后台配置关键点OBYC科目与控制码后台配置这块工序委外的重点在两方面一是前面提到的控制码/生产调度参数文件二是财务相关的科目确定。OBYC里需要注意的科目事务BSX存货记账科目外协半成品入库时对应存货科目WRXGR/IR结算科目采购订单收货和发票校验产生的差额过渡科目FRL外协加工/采购相关差异科目PRD/PRY价格差异科目标准价控制时差异结转用。如果公司开了物料账差异在月底还会通过物料账多级分摊跑到库存和销售成本里。判断配置对不对最直接的方法是跑一笔外协PO收货然后用FB03看会计凭证确认借贷方科目是否符合财务预期。提示外协工序是否“成本核算相关”决定外部加工费是计入生产订单成本还是只作为一笔采购费用。生产型企业必须让外部工序成本计入生产订单否则半成品成本会漏后面CO88结算时订单会出现莫名其妙的差异。3. 实操全流程从计划到结算一步步走3.1 MRP跑需求外部工序如何变成采购申请工序委外不改变半成品的生产属性。用MD04看一颗自产件的MRP结果时这颗物料还是计划订单但展开计划订单后你会发现外部工序对应了一条独立的采购申请。这是很多新手最困惑的地方为什么一颗物料既有计划订单又有采购申请答案就在工艺路线里——内部工序由生产订单承接外部工序单独走采购。采购申请的项目类别有两种常见情况如果是把半成品发给供应商做来料加工采购申请项目类别是分包U/L后续PO会关联生产订单、组件、供应商如果只是外发一道不涉及物料转移的加工服务比如纯人工装配、检测则可能是外部工序类采购F。怎么判断当前PR到底是哪种用ME53N显示采购申请看项目类别和行项目里的“生产订单/工序号”字段。如果看不到生产订单号说明外部工序没正确关联到生产订单。实操小技巧工序委外跑MRP时半成品的MRP类型不要轻易改成F外购。很多企业为了让外协工序跑出PR把整颗半成品改成外购结果订单被拆得七零八落后道工序也无法正常排产。正确做法是保持自产E让外部工序在工艺路线层面生成PR。3.2 采购订单创建与发料移动类型别乱用PR转PO用ME21N或者ME2N批量处理。工序委外的PO有三个关键字段项目类别分包L不能是普通标准采购科目分配类别Q生产订单系统会自动带出生产订单号、工序号组件页签带出需要发给供应商的半成品组件及数量。确认无误后下达PO仓库开始发料。如果该外协工序需要把半成品发给供应商用MIGO移动类型541发货对象是“分包供应商”库存类型是特殊库存O。我踩过最大的坑是用户图省事把组件用261移动类型发到生产订单。当时系统没报错但外协工序真正需要541发料时供应商处的分包库存永远显示为0543收货也没法做。等发现的时候账已经乱了好几周。所以这里必须强调工序外协的带料发料只有541是对的。261是发给生产订单的普通工序材料不是发给外部供应商的。3.3 供应商交货、收货与报工货到不是结束供应商把加工完的半成品送到工厂MIGO参照PO收货。正常情况下系统会自动带出移动类型543将供应商分包库存转回自有库存。如果库存要质检可以先103收货到质检库存再做105放行到非限制使用库存。收货之后工序的状态才推进。此时用CO11N做工序报工确认把外部工序的完成数量确认掉。只有“PO已收货工序已报工”生产订单才能往下走后道工序才能开始。很多用户以为收到货就万事大吉结果月底结算时订单一直报“未确认”或者“未交完货”。原因就是只做了MIGO收货没做CO11N报工。记住在工序委外流程里收货和报工是两个动作缺一个订单状态都不完整。3.4 生产订单报工、结算与差异处理所有工序都完工后用CO11N做最终报工然后用CO88或KO88做生产订单结算。外部工序的加工费已经在PO收货时按信息记录的条件价格计入生产订单成本供应商发票到了以后如果发票价格和PO价格有差异会产生差异通过OBYC配置的差异科目转出。如果公司开了物料账这些差异会在月底由物料账多级分摊自动分到库存和销售成本。如果没有物料账那差异会直接走向损益财务月底就要想办法手工调整。“生产订单结不平”这个问题十个项目有八个都会遇到。我的排查思路是看订单实际成本明细确认外部工序的加工费有没有进到订单看收货金额确认入库价值是否完整看结算规则是否有多个结算接收方是否漏了成本中心或物料看WIP未完工的订单差异会挂在在制品里而不是结到物料上。生产订单底表AFKO/AFPO/RESB里可以查到订单头、工序和组件预留信息。用SE16N导出来看基本能定位九成的问题。4. 常见问题与排查技巧实录4.1 543无法收货、MIGO报错怎么破症状用户做外协PO收货时系统提示“移动类型543不可能”或检查失败。按顺序排查PO项目类别是L分包吗如果是普通采购类别系统根本不允许543收货有没有做541发料如果没发料供应商分包库存是0系统会提示数量不够MMBE查特殊库存O确认供应商处分包库存数量充足物料主数据状态、工厂/库位是否限制移动类型。之前有用户问我MIGO收货时系统提示“物料被锁定”多半是同一物料在收货、盘点和发料并发操作造成。这种场景下建议错峰操作或者把收货放到后台批处理执行别让大家同时挤在一个时间点操作同一颗物料。4.2 供应商分包库存对不上、挂在供应商头上不消失常见场景541发多了、PO删除了但货没退回来、供应商退货只退了良品没退废料、或者订单取消后组件没做任何处理。处理办法供应商退回的可用物料用542做分包库存退回如果是冲销发料发错了供应商根本没收到用542反向移动类型或者MIGO里做冲销如果供应商处少数先查是丢失、报废还是收货差异属于盘亏就做盘亏处理别直接拿101硬收。最怕的是用户图省事直接做一个101收货到自有库存以为能把账抹平。结果分包库存永远挂在那里年底对账时供应商那边拿不出一张确认签收单财务只能干瞪眼。4.3 工序成本缺失、订单结不平的排查思路症状一标准成本估算CK11N里半成品成本没有外部工序加工费。查工艺路线的外部控制码是否选了“成本核算相关”查信息记录是否维护了有效价格查CK11N成本构成里是否放了外部工序成本。症状二订单实际成本里只有材料费没有加工费。查PO是否关联了工序查MIGO是否做了543收货查CO11N是否对工序做了最终确认。症状三结算完订单还有大额差异。查KOB1实际作业价格是否是计划价格查OBYC差异科目查WIP是否还有挂账在制品。还有个容易被忽略的外协PO收货时如果用的是标准价控制物料系统按标准价入库差异会在收货时先挂在差异科目到了月结物料账跑完才知道真正差异是多少。所以月底对账时不要只看订单要把差异科目扒到底。4.4 权限、打印与常用增强工序外协对权限比较敏感。MIGO里移动类型541/543的权限不能放开给所有人也不能只锁一个人。建议按角色拆仓库员能做541发料和543收货生产计划员只能看不能过账。打印方面外协PO的采购订单打印必须显示“生产订单号”和“工序号”。供应商收到货至少要能知道“这是给哪个订单哪道工序用的”否则产品送回来批次混了后道工序根本没法追溯。我在项目里加过的实际增强包括PO收货保存前检查移动类型是否为543防止误操作CO11N报工保存前校验工序组件是否已经发料防止漏发MD07/MDVP批量MRP清单里加自定义列显示外协工序对应的采购申请状态FAGLL03等报表中展示收付款对方名称方便财务对账时识别供应商。这些增强不一定每个公司都要但你得知道有这些可能性真遇到业务反馈时能给出方案而不是直接说“SAP标准功能不支持”。最后分享一点个人经验。最早做工序外协项目是在一家做精密齿轮的客户现场上线第一周供应商就退回来一批货计划员跑来跟我说“系统里PR出不来”我一度以为工艺路线配置错了。查了半天才发现是控制码里“外部采购”开关没勾上PPO1挂了个空壳。从那次之后我养成了一个习惯工艺路线里所有外协工序上线前必须用CA03跑一遍清单核对控制码、信息记录、工序组件、采购申请类型四样确认全齐了才放业务去跑。工序委外这个功能说到底不复杂但它横跨PP、MM、CO三个模块任何一个环节想当然后面都得几倍的时间来还。做之前先问清楚业务到底外包的是物料还是工序做的时候抠死每一个移动类型上线前把所有外协工序捋一遍你就能把这块硬骨头啃下来。后面再遇到供应商库存对不上、订单结不平回过头按这篇文章的逻辑查大概率能少走很多弯路。
