
简介这份SAP按单生产委外加工总结面向SAP生产计划与物料管理模块的顾问、实施人员及MTO模式学习者以两个典型场景演示委外加工完整流程。场景一涵盖两层BOM下自产成品委外、共用材料非限制库存转供应商库等操作场景二则针对三层BOM及自供材料转移细化311 E发货、批次绑定外协供应商编码等处理。资源以1个doc文档442KB打包呈现内容包含销售订单创建、MRP运行、采购申请与项目类别L/科目分配E的设置、采购订单收货101 E收成品、543 O耗原料及库存状态追踪等核心步骤并总结移动类型与库存流转的关键控制点。目前已有2390人学习下载适合希望掌握SAP MTO外包配置逻辑、规避常见库存与收货问题的读者系统参考。1. 按单生产委外加工解决一张订单、一组组件、一笔加工费的问题一张客户订单要求在两周内交付一台设备设备里有一个关键半成品车间产能排满只能发外加工。供应商拿到的不是图纸而是你们仓库里的毛坯加工完再送回你付的是加工费而不是整件采购价。这个场景在 SAP 里就是按单生产委外加工。它同时牵动销售订单需求、分包采购订单、组件库存和加工费发票四条线任何一条对不上月底成本就乱。这篇笔记面向正在实施或维护这条链路的计划、采购、财务和 IT 同事按落地顺序把策略选择、主数据、日常操作和典型坑一次讲清。2. 先立住主流程策略、特殊采购类型与成本归集怎么选2.1 策略组20还是25决定MRP怎么把销售订单变成委外需求按单生产在 SAP 里最典型的落地方式是物料主数据 MRP1 视图维护策略组Strategy Group20也就是严格的 Make-to-Order。在这个策略下销售订单需求不会被工厂现有库存冲掉系统为每张销售订单单独跑 MRP产生独立的计划订单和生产订单。半成品如果走委外MRP 展开生产订单 BOM 时会把这件半成品直接转成采购申请而不是再生成一个自制计划订单。策略组 20 的优点是需求与成本都沿销售订单追溯缺点是所有需求都按单拆开缺少合并缓冲。策略组 25按单装配则是让下层半成品可以先按计划或预测备货最后装配环节按销售订单触发。如果你的委外半成品是标准化通用件、多张订单共用用 20 会产生大量重复采购申请体验很差如果半成品差异化大、客户定制程度高用 20 才能保证每张订单的物料和成本不混。我在项目里判断标准很简单问一句「这张销售订单取消之后已经发生的委外加工费愿不愿意算进库存成本」。愿意用 25 或普通库存策略不愿意就老老实实按订单单独建 PO、单独归集成本也就是策略 20 路线。表 2-1 是两者对比。表 2-1 策略组 20 与 25 的核心差异对比项策略组 20策略组 25需求驱动每张销售订单独立驱动最终装配按单半成品按计划备货库存类型销售订单库存特殊库存 E普通库存为主按单消耗委外 PO 形态每订单一张/多张成本可单对单可按批量合并成本先入半成品库存订单取消影响委外需求同步变化已发料需退回半成品可转给其它订单损失小适合场景差异化强、单价高、定制件通用半成品、共用件选错策略是后续所有碎单和成本归集问题的源头配置前一定和业务确认清楚这张委外半成品是不是只服务单一销售订单。不要为了便宜行事在两张销售订单之间公用同一份委外库存后面 KOB1 查成本时会非常痛苦。2.2 特殊采购类型30让半成品直接走分包采购委外加工和普通采购在 SAP 里最大的区别在于「组件」概念。普通采购买来的是成品入库后没有更多关联委外采购则是你发一批组件给供应商供应商加工完成后送回收货时系统同时完成「成品入库」和「组件消耗」两个动作。实现这个机制的核心字段是物料主数据 MRP2 视图里的特殊采购类型Special Procurement Type委外加工填入 30。物料维护了特殊采购类型 30 后MRP 不再把该物料视为自制件也不会走标准的外购流程而是直接生成分包采购申请。采购员用 ME21N 把采购申请转成采购订单时订单行项目类别自动变成 LSubcontracting系统还会根据该物料的 BOM 自动把需要发给供应商的组件带到采购订单的「组件」页签里。这一步是委外加工和普通采购在外观上最直观的差异。组件发运的移动类型是 541收货时系统自动用 543 做组件消耗。发运后组件进入供应商库存特殊库存 O不在你自己工厂的可用库存里显示收货时供应商库存里的组件被扣减同时成品按采购订单入库加工费按订单金额暂估入账。我见过不少新手把组件消耗理解成「发货时就消耗」这是错的组件真正离开你的账面是在收货环节不是发运环节。这一点搞清楚后续对账才不会懵。2.3 加工费归集到销售订单还是生产订单委外加工费怎么进成本取决于采购订单行项目上的科目分配类别。按单生产场景下最常用的两个选项是 E销售订单和 P生产订单。科目分配类别 E 指委外 PO 的加工费与组件消耗成本直接过账到指定的销售订单行项目。收货和发票校验后成本直接挂在销售订单上省掉中间生产订单环节。适合「委外加工完成即为客户可用成品、不再进自己产线」的场景整个链路最短财务对账也最直观。常见问题是采购员漏填销售订单号导致成本挂到空库存科目月底手工找数。如果委外件回来之后还要在自己工厂继续加工比如组装、测试、包装那么加工费先进生产订单更合理。做法是生产订单挂到销售订单上委外 PO 的科目分配填 P 并填对应生产订单号之后生产订单再把这部分成本结转到销售订单。代价是多一层生产订单的状态管理好处是所有自制和外协成本汇集在一个订单里单位成本计算完整。这两个选择没有绝对的对错但要注意如果同一张采购订单行项目同时被两个销售订单共用科目分配 E 没法把金额自动拆分系统会要求手工分配或拆成多个 PO 行。采购员为了省事把不同订单的委外需求合并到一张 PO是成本乱账的高发原因。我的建议是严格按销售订单行项目建 PO不要图省事做合并。2.4 用一张表串起MRP、物料流和资金流把上面三条线拼起来一个典型的按单生产委外场景是这样的成品策略组 20客户订单进入 MRPBOM 里的定制半成品设了特殊采购类型 30MRP 输出分包采购申请采购转成分包 POPO 挂销售订单号仓库发组件给供应商供应商加工送回仓库收货财务按 PO 价格做发票校验。表 2-2 是这条链路上每个动作对应的 SAP 凭证和数据对象。表 2-2 按单生产委外加工主链路数据流业务动作SAP 操作产生的关键数据客户下单VA01 创建销售订单销售订单号、需求数量、计划行需求分解MD01/MD02 跑 MRP分包采购申请PR委外下单ME21N 创建分包 PO采购订单、组件页签、科目分配 E组件发给供应商MB1B/MIGO 移动类型 541供应商库存特殊库存 O供应商送回成品MIGO 移动类型 101成品入库、组件消耗 543、加工费暂估加工费结算MIRO 发票校验应付账款、采购价格差异记住这张表后续所有配置和排错都可以从这张表里找定位。链路不长但每一步都有自己独立的容差、状态和凭证流任何一个环节的业务习惯不好都会让月底对账像拼图一样困难。3. 把这些配置一次配对主数据、BOM与采购参数3.1 物料主数据六个关键字段委外物料的主数据分散在多个视图出问题时常常是因为某几个字段没配对。我一般会按顺序检查六个字段少一个后面都会返工。第一策略组。MRP1 视图按单生产填 20按单装配填 25。第二特殊采购类型。MRP2 视图委外填 30。第三采购类型。MRP2 视图委外通常填 F外购。第四批量程序。MRP1 视图按单生产常用 EX 或直接按订单批量避免系统自动做需求合并或切分。第五计划交货时间。MRP3 视图用于 MRP 计算采购提前期委外要包含供应商加工时间。第六可用性检查。MRP3 视图按单生产建议检查「独立需求销售订单」避免组件被别的订单挪用。这六个字段不是随便填的。策略组和特殊采购类型决定 MRP 生成什么批量程序决定 PR 数量是不是按整张订单跑计划交货时间决定采购申请下达时机可用性检查决定发料时会不会被系统卡住。很多项目在测试环境能跑通上线后发不出料查到最后都是计划交货时间太短或可用性检查范围没配对。3.2 分包BOM和工序外协的区别整件委外的 BOM 维护方法和普通 BOM 一样用 CS01 创建组件维护的是要发给供应商的毛坯或原料。关键区别在于用途普通 BOM 用于生产订单领料委外 BOM 用于分包采购订单的组件复制。物料维护了特殊采购类型 30 后系统创建分包 PO 时会自动读取这个 BOM把组件列表和数量带到 PO 的组件页签。如果委外的是某一个工序而不是整个物料比如热处理、电镀那不走特殊采购类型 30而是在生产订单的工艺路线工序里维护「外部加工」标志再为这道工序建采购信息记录。采购员按生产订单创建工序外协采购订单PO 上维护的是工序号和加工费收货后成本进生产订单的对应工序。两种模式原理完全不同实施时特别容易混。我见过一个项目把工序外协做成了整件委外结果发出去的组件是整套毛坯供应商却只做了一道热处理工序后面所有后续工序的计划都乱了。所以实施前先确认供应商拿到物料后你希望他交回的是成品还是半成品继续走自己产线成品用特殊采购类型 30继续加工用工序外协。3.3 采购信息记录、货源清单与容差委外加工的信息记录需要维护两个价格概念一个是加工费也就是供应商为你完成的加工服务价格会体现在 PO 净价上另一个是组件价格用于收货时组件消耗的估价。虽然组件消耗的金额通常按物料主数据成本价计算但信息记录里的组件页签价格仍建议维护避免收货时组件金额对不上。货源清单在委外场景里也建议建立指定每个供应商可以承接哪些物料的委外。货源清单缺失时系统允许任何供应商录入但容易出现同一物料在不同供应商之间价格混乱。容差设置是委外采购最容易忽略的参数。在采购订单行项目「交货」页签里维护「交货不足容差」和「过量交货容差」。委外加工供应商经常少交几个、多交几个如果容差默认 0收货时系统会直接报错或要求输入原因代码流程卡在仓库。我自己的建议是交货不足容差按业务与供应商约定常见 10% 到 20%过量交货如果不想被塞货设置为 0 或很小避免供应商把所有损耗都算到你头上。每个供应商的容差可以在信息记录里维护默认值也可以在具体 PO 里改但默认值最好先谈好再配置不要把容差当成万能钥匙它只是收货环节的容忍度不解决成本差异。3.4 上线前检查清单配置完成后用一个小批量场景跑一遍全流程比上线后翻车成本低得多。我会按表 3-1 逐项检查打过勾再给用户做培训和权限。表 3-1 按单委外上线前检查清单检查项检查方法通过标准策略组 20 是否生效MD04 查看销售订单需求销售订单库存标记为 E 库存特殊采购类型 30MD04 跑 MRP出现分包采购申请而非计划订单分包 PO 组件ME21N 转 PO组件页签自动带出 BOM 组件科目分配 EME21N 行项目销售订单号正确显示组件发运 541MB1B 过账库存进入供应商库存 O收货 101MIGO 过账成品入库、组件 543 自动消耗发票校验MIRO加工费凭证过账到销售订单这份清单几乎覆盖了所有常见主数据的坑。做完一遍你就能判断流程是不是真的通而不是只在配置层面看着合理。4. 从VA01到MIRO把一张按单委外订单完整跑通4.1 销售订单与MRP看MD04里的分包采购申请业务创建销售订单用 VA01输入客户、物料、数量、交货日期。销售订单保存后计划员用 MD04 查看该物料的库存/需求清单能直观看到销售订单需求是否进入 MRP。然后在 MD04 里对成品执行单项 MRP或者直接跑 MD01 总 MRP。MRP 跑完后成品如果自制会看到计划订单展开 BOM 后委外半成品会显示一条采购申请采购申请的类型是分包申请数量和交期来自销售订单。这时打开采购申请的显示界面可以看到特殊采购类型的标记以及系统读取的 BOM 组件清单。这里的组件清单只是预览真正被锁定到业务凭证是在后续创建 PO 时。我习惯让计划员在 MD04 里检查三个值数量是否等于销售订单需求、交期是否覆盖客户交期、组件清单是否完整。如果组件缺失多半是 BOM 没有维护或物料特殊采购类型不是 30。走到这一步发现问题成本最低。4.2 创建分包采购订单项目类别L、组件页签与科目分配E在 ME21N 里从采购申请创建 PO 是最不容易出错的方式。选中分包申请行点「采用」系统把物料、数量、交货日期、工厂、供应商带入。关键要检查四个地方。第一行项目类别是否为 L。如果物料特殊采购类型正确系统会自动带 L一旦被手工改成标准采购类别组件页签就没有了。第二组件页签内容。系统根据 BOM 自动带入组件和数量检查组件数量和 PO 数量是否按比例匹配。第三科目分配类别。按订单归集成本时在行项目「科目分配」页签选择 E输入销售订单号和行项目号。第四价格和交货日期。价格来自采购信息记录没有信息记录则需要采购员手工输入并检查容差是否带出。保存后PO 的组件会生成预留。这个预留属于典型的「按单预留」不能被其它订单消耗。如果后续销售订单数量变更预留数量不会自动同步需要采购员手工调整组件数量或重新打开 PO 重新确定组件。这一步是日常操作里最容易被忽略的细节。4.3 组件发运与供应商退货541、542和543怎么用组件发运给供应商的标准移动类型是 541。可以用 MB1B也可以用 MIGO 选择「发货」过账。过账时需要输入 PO 号、物料、数量系统会自动识别这是一笔委外发运库存从工厂自有库存转移到供应商库存特殊库存 O。组件发运受可用性检查约束。如果库存地点没有足够的可用库存系统会报可用性不足过账失败。常见做法是计划员先用 MMBE 或库存清单确认可用库存再发运如果仓库地点不对需要先用 MB1B 做内部库存地点转移再发运。供应商收到组件后可能会发现部分报废或需要退回。退货给供应商用移动类型 542把组件从供应商库存退回自己仓库供应商加工失败的成品需要退回则通过 MIGO 做收货冲销移动类型 102系统会同时冲销组件消耗。我提醒用户不要把 541 和 542 当成日常调整工具随便用每一次移动都会改变供应商库存 O 和组件成本。供应商库存对账时最怕就是发运和退货记录不全财务账面上挂着一堆说不清的特殊库存。4.4 收货与发票校验加工费成本如何进销售订单供应商加工完成送回成品仓库用 MIGO 做采购订单收货移动类型 101。收货时系统自动过账三笔成品入库金额、组件消耗金额、加工费暂估金额。组件消耗按组件库存成本或信息记录组件价计算加工费按 PO 净价计算。收货完成后库存进入销售订单库存特殊库存 E这就是按单生产下委外件被锁定给具体订单的原因。发票校验用 MIRO基于 PO 收货记录做。发票金额与 PO 不一致时差额进入采购价格差异科目并随发票过账到销售订单成本。如果发票数量与收货数量不一致需要先确认是否还有未收货部分或者做后续贷项凭证不能直接硬过。这里常见的财务问题PO 挂销售订单 E收货生成的物料凭证也挂销售订单但发票校验时候如果漏填销售订单系统不会自动重算加工费就落到空库存科目。所以我的习惯是发票校验前先看 PO 的科目分配确认销售订单号还在如果被误删先改 PO 再校验不要用事后手工凭证去补。5. 按单生产委外加工避坑六个真实翻车现场5.1 碎单翻车策略20让供应商一天收到十几张采购订单现象同一款委外半成品十张销售订单分别跑 MRP每张都生成独立采购申请采购员也照单全收一天之内给同一供应商发了几十张委外 PO。供应商抱怨对账繁琐财务说加工费归集没问题但采购批量失去了议价能力。原因策略组 20 本身按单独立驱动系统不会自动把不同订单的委外需求合并成一张 PO。批量程序如果没有设置最小批量或舍入值每张订单数量都会原样转成 PR。解决如果业务必须按单追溯成本保留策略 20同时在物料主数据 MRP4 视图中设置最小批量或舍入值让 PR 数量按包装单位取整。超出订单需求的部分会留在销售订单库存里订单交付后计划员要把余量转给其它订单或做库存调整。如果委外半成品是通用件更稳妥的方案是把它改成普通库存策略生产装配环节再按单分配但代价是成本不再单对单。没有两全只能在追溯性和批量经济性之间选一个。5.2 组件发不出可用性检查卡在库存地点现象仓库明明有毛坯库存但 541 发运时报可用性不足PO 始终没法发料。查库存却发现物料都躺在另一个库存地点或者被其它订单的预留锁定。原因委外发运的可用性检查范围设在了工厂级或存储地点级而发运时只能指定单一库存地点。如果组件库存分散或可用性检查按存储地点执行系统就不会把其它地点的库存算进来。解决在物料主数据 MRP3 视图把可用性检查范围调整为工厂级或按检查规则包含全部存储地点同时规范发运库存地点让仓库统一从一个地点做委外发运。另一个常见诱因是销售订单的预留占用了可用库存检查 MD04 里的预留数量归属必要时先调整预留或多拆几张发运单不要直接绕过可用性检查强行过账。5.3 BOM变了PO组件数量却不会自己变现象研发修改了委外 BOM把组件从 1 件改成 2 件但已经创建的委外 PO 组件数量仍是 1 件供应商按旧数量领料成品数量跟着出错。原因分包 PO 的组件页签是创建时从 BOM 复制的快照之后 BOM 变更不会自动同步到已下达 PO。解决采购员在 ME22N 修改 PO 时检查组件页签的系统提示必要时删除旧组件行并重新确定组件。如果 PO 已经发料修改组件数量后要同时核对供应商库存差异多发或少发的组件要通过 541/542 调整。养成习惯BOM 变更流程里加一个节点要求计划员检查所有未收货完毕的分包 PO。5.4 订单取消后委外PO还在一路跑完现象销售订单取消后采购员没做任何处理委外 PO 照常到货、照常收货财务月底发现这张订单已经取消但成本全挂在里面。原因策略 20 下需求来自销售订单但销售订单取消并不会自动取消已经下达的采购订单。MRP 在下一次运行时不再产生新需求已有 PO 依然按原计划执行。解决销售订单取消的事务代码处理完计划员必须在 MD04 里检查相关的采购申请和 PO把未下达的 PR 删除把未发料的 PO 冻结。已经发给供应商的物料要联系退回做 542 退货。想让系统自动冻结可以给 PO 设置审批策略或发货截止日期但本质上还是靠流程控制订单变更通知要同步发给采购员不能默认系统自己会收尾。5.5 科目分配错一个字段加工费挂到别人头上现象采购员复制上个月的 PO 创建新 PO没注意科目分配里还带着上一张销售订单号收货和发票校验全挂到旧订单上旧订单成本虚高新订单成本缺失。原因ME21N 复制采购订单时会把科目分配一起复制销售订单号是手工字段系统不会自动判断是否匹配当前需求。解决创建 PO 时养成检查「科目分配」页签的习惯确认销售订单号和行项目号是本次订单。更保险的做法是直接从采购申请创建 PO科目分配由 PR 带入如果 PR 本身就是分包申请销售订单号一般不会错。财务每月的 KOB1 成本核对也能发现异常金额但等到月底发现再去追溯凭证已经过账返工成本高。5.6 供应商库存对不上别只盯着自己仓库现象供应商领走的组件数量减掉送回成品的组件数量与系统里的供应商库存 O 不一致月底和供应商对账时各执一词。原因组件是供应商代保管的特殊库存系统里记录的是自己仓库发出的数量但供应商实际消耗、报废、丢失的情况不会自动反映在系统里。生产过程的合理损耗通常也没有计入。解决每月用 MB58 或供应商库存报表导出委外库存明细和供应商的月度领用/退回对账单逐料号核对。差异部分按约定处理合理损耗由订单承担异常丢失走赔偿流程。处理差异时通过 541/542 调整系统库存同时在财务凭证备注里写明原因方便审计。不要以为系统里的 O 库存等于供应商实际持货量它只是账上余额。6. 月末怎么核对委外加工成本三个低成本技巧6.1 供应商O库存的月度核对委外加工最容易被财务忽略的是供应商库存 O。虽然它不在自有库存报表里但资产负债表中仍有对应金额月末差异直接造成盘点数据失真。我一般用 MB58 导出每个供应商按物料的委外库存数量再让采购联系供应商出具委外库存确认单把系统数和确认单数量放同一张表比较。有差异先看上次核对后的发运、退货、收货记录找出哪一笔移动没对上再决定做 541/542 调整还是让供应商补料。这个动作每月一次成本低但能避免年底一次性大调整。6.2 加工费与PO价格的差异核对委外加工成本有两个部分组件消耗和加工费。组件消耗金额在收货时按物料成本价过账如果物料成本价变动频繁月底物料账会重新估值加工费则是按 PO 价格暂估发票来了再调整。差异会进入采购价格差异科目如果差异持续存在说明采购信息记录价格没有及时更新。我的核对方法是用 KOB1 按销售订单查实际成本再用 ME2N 拉同一销售订单的委外 PO 金额两张表按订单号匹配差额就是暂估与实际的差异。差异太大时逐 PO 看收货数量乘单价是否等于发票金额找出是哪一笔价格谈错了。6.3 把核对表做成例行变式月度核对最容易输在「这个月忘了跑」。我习惯把 ME2N、MB58、KOB1 的筛选条件保存为个人变式固定工厂、固定物料类型、固定供应商每月初按变式直接出数再套用同一个 Excel 对账模板。模板里留三列系统数量、供应商确认数、差异差异列用条件格式标红。整个过程不需要写一行 ABAP纯粹靠标准事务代码和变式就能把核对时间压缩到半天以内。真正养成这个习惯后委外加工的账就不会再让你月底加班翻凭证了。这对从 ECC 升到 S/4 的团队同样适用因为移动类型、特殊采购类型和科目分配逻辑在新老版本里是一致的。我也踩过几次月底差异的坑最深的一次就是供应商库存差异拖了两周才定位到漏做了一次 542 退货。现在所有委外相关的移动凭证都要求仓库在备注里写 PO 号和原因核对时省了太多时间希望帮到你。本文还有配套的精品资源点击获取