
简介这份文档聚焦SAP系统中按单生产MTO委外加工的典型业务面向SAP顾问、生产计划、供应链及成本核算人员帮助梳理外包生产从销售订单、MRP到采购申请、采购订单、库存转移与收货发货的完整链路。内容围绕两类场景展开两层BOM下外包自身并销售自身成品以及三层BOM下外包自身、销售父阶成品并涉及自供材料重点说明项目类别L、科目分配组E、541/543 O/311 E/101 E等库存移动类型以及供应商库存、销单库存和批次编码匹配等关键控制点。资源包内含1个doc文档约442KB便于集中查阅和对照整理。目前已有2413人学习下载可作为SAP委外加工流程实施、业务培训与问题排查的参考材料帮助读者理解物料保留、自供材料转移、库存状态监控和成本控制之间的关系。1. 按单生产委外加工的两套走法两层BOM和三层BOM差在哪一步上个月帮一家做装备定制的客户梳理委外链路对方丢过来一句委外加工不就是建个采购单把料发出去吗怎么每次发料都对不上账。翻了他们的操作记录才发现两层BOM和三层BOM的委外走法完全是两套动作——一个是直接把非限制库存转到供应商库存另一个得先让自供件进销单库存再用311 E转出去中间少一步批次和成本全乱。这份SAP操作型资源把这两类场景拆成了完整实例从VA01建销售订单到MIGO收料、MB1B转储每一步的移动类型、项目类别、科目分配组都有记录。适合正在做按单生产委外配置的SAP关键用户、实施顾问以及需要自己走一遍流程验证逻辑的运维人员。2. 两层BOM外包自身从VA01到MIGO的完整生产链路2.1 为什么先用销售订单驱动MRP再手工建采购申请按单生产MTO委外的起点不是ME21N而是VA01。这个顺序不能反销售订单是整条链路的锚点MRP运算产生的计划订单必须挂住销售订单号后面采购申请里的科目分配组才有东西可填。很多实施顾问图省事直接手工建采购申请等到收货时发现销售订单库存挂不上回头补KD-CO字段补到怀疑人生。标准操作是先在VA01里给成品W建销售订单售达方填客户代码物料填W数量按实际需求回车确认行项目。保存后记下销售订单号这个号后面要在三个地方用到MRP运行、计划订单转采购申请、MIGO收货。接着用MD01或MD02跑MRPW的参数文件里计划边际码设置成可生成计划订单的配置跑完在MD04里能看到W产生了一个计划订单需求来源是销售订单。计划订单转采购申请这一步是整个两层BOM里参数最密集的操作。在MD04里选中计划订单点“转换”或走MD11的转换功能系统会弹出转换对话框。这里有两个字段必须手动改改错了后面全部返工字段填入值含义项目类别L外协加工Subcontracting触发组件页签和供应商库存逻辑科目分配组E客户相关的成本归集激活KD-CO字段KD-CO里的客户销售订单里的客户代码把采购成本挂回原销售订单项目类别填L之后采购申请的行项目明细里会出现“组件”页签里面能看到T被作为待提供的组件列出来。科目分配组如果不填EKD-CO列不会出现后续311 E或541转储时系统找不到销售订单库存的归属报错“特殊库存无法确定销售订单”。这个组合是成对使用的L负责物料流E负责成本流缺一个流程就走不通。计划订单转完采购申请后在MD04里应该能看到一条采购申请需求日期和销售订单交货期对齐。这一步检验成功的标志是采购申请行项目的科目分配页签里KD-CO字段有销售订单号和行项目号组件页签里T的数量和需求日期都正确。提示如果MRP跑完没有产生计划订单先查物料主数据MRP视图里的采购类型是否设成F或X再查销售订单行项目是否勾了“相关需求”。这两处是排查没生成计划订单时最先看的地方。2.2 采购申请转采购订单时“处理组件”那一步到底改了什么采购申请转采购订单用ME21N按采购申请号复制。这一步最容易被跳过但最关键的动作是点开行项目明细里的“组件”页签确认T在里面并且检查组件行的“库存地”字段。两层BOM的场景下T是共用材料库存状态是非限制组件行不需要指定特殊库存但库存地一定要填对——通常填供应商库存所对应的虚拟库存地或者系统配置的供应商寄存库存地。组件页签里有三个字段决定后续发料是否顺滑库存地、批次、需求日期。库存地填错541转储时系统会提示“库存地不存在”或“库存不足”批次留空的话MIGO收货时543 O消耗的是无批次库存如果T启用了批次管理收货会卡住。常见做法是组件页签里批次暂时留空等541转储时按实际批次指定但要在收货前用MB52确认供应商库存里有对应批次的库存。采购订单保存后回到MD04能看到采购申请变成了采购订单需求来源标注为“采购订单”。这时的链路是销售订单→计划订单→采购申请→采购订单四层单据全部打通后面才是实物移动。2.3 541和543一个把库存转给供应商一个在收货时消耗掉571原文口径为541和543 O这两个移动类型是两层BOM委外里最容易混的。阶段区分很清楚541是发料动作发生在收货之前把T从非限制库存转到供应商库存543 O是消耗动作发生在收货同时从供应商库存里把T扣掉。先做MB1B 541。事务码MB1B移动类型541输入物料T、数量、供应商代码从库存地填非限制库存所在库位。执行前用MMBE查一下T的非限制库存确认量够。执行后再看MMBET的库存会从非限制库存转到“供应商库存”下挂在外协供应商代码下。这一步只是库存物权转移T的物料号没变、批次没变但可用范围从本厂变成了供应商处。接着用MIGO对采购订单收货。移动类型101特殊库存选E销售订单库存输入销售订单号和行项目号勾选“项目确定”。收货时系统自动带出组件消耗成品W收101 E库存进入销售订单特殊库存组件T按543 O自动扣减供应商库存。543后面的O是供应商特殊库存标识和541转过去的是同一个库存池。收货完成后的库存变化要用MMBE验证两层W的销售订单库存增加了收货数量T的供应商库存减少了组件消耗量。如果T的供应商库存没减少查MIGO里组件页签是否勾选了“后处理”或者采购订单组件行的“后处理”标识是否是空——这个标识不勾543 O不会自动触发得手工补冲。步骤事务码移动类型库存变化发料给供应商MB1B541T非限制库存→供应商库存成品收货MIGO101 EW销售订单库存增加原料消耗MIGO联动543 OT供应商库存减少3. 三层BOM外包父阶311 E转销单库存为什么不能跳过3.1 W先生产入库再转出这一步是成本归集的前置条件三层BOM的场景里销售成品是DD外包生产自供材料是WW本身是定制生产件W下面才是共用材料T。很多人会想W反正要发给供应商为什么不直接从生产订单入库到供应商库存非要先进销售订单库存再311 E转一道原因是成本归集路径不同。D的销售订单是成本归集对象W作为D的自供组件它的生产成本必须挂到D的销售订单上。如果W直接入到普通库存或供应商库存W的生产成本就脱离了销售订单D收货时系统算不出自供件的成本贡献最后D的销售成本会少一块。所以标准路径是D的销售订单驱动MRP产生W的相关需求计划订单W的计划订单转生产订单生产收货时入到D的销售订单库存形成“W的销单库存”。这时候W的成本已经挂在了D的销售订单号上再从销单库存转供应商库存成本跟着库存走链路不断。操作上先用MD04看D的计划订单转采购申请时项目类别填L、科目分配组填EKD-CO填D的销售订单号组件页签里保留W。注意这里组件页签里的W是作为“待提供材料”列出来的不是采购对象。接着处理W的生产W的相关需求产生计划订单转生产订单MIGO收货时移动类型101特殊库存E收进D的销售订单库存。这一步做完用MMBE查W应该能看到W在销售订单库存下有一笔库存库存归属是D的销售订单号。注意W的生产订单收货必须用101 E不能用101普通收货。用普通收货收进来的是非限制库存后面311 E时系统不认会提示“销售订单库存不足”。这是三层BOM里血泪经验最多的一步。3.2 311 E的输入要点与批次字段的硬约束W进销单库存之后用MB1B做311 E转储。事务码MB1B移动类型311特殊库存标识E输入物料W、数量发出端填销售订单号和行项目号接收端填外协供应商代码。这里的关键是接收端的“供应商”字段必须和外协采购订单上的供应商一致否则转过去之后MIGO收货时组件消耗找不到库存。批次字段是三层BOM里最容易被低估的控制点。311 E转储时收货批次必须填外协供应商的编码不能填内部批次号也不能留空。原因在于后续D收货时543 O消耗W的供应商库存系统按批次匹配如果批次填的是内部编码MIGO收货时组件消耗会找不到匹配批次报“批次不存在”或消耗到错误的批次上。外协供应商编码在这里相当于批次和供应商之间的绑定键写错了不只是库存对不上成本也会串到别的供应商或别的销售订单上。正确的批次填写方式在311 E的批次字段里输入外协供应商代码如果供应商主数据里配了批次前缀按配置的规则拼或者按项目上约定的批次命名规则填“供应商代码日期流水”。填完之后在批次主数据里确认批次所属的供应商和物料都对得上。这一步做完再用MMBE查W销单库存减少供应商库存增加批次显示为外协供应商编码。检查项事务码预期结果W销单库存是否已建立MMBE销售订单库存下有W归属D的SO号311 E转储是否成功MMBEW销单库存减少供应商库存增加批次是否挂对供应商MMBE或MSC3N批次对应的供应商外协供应商采购订单组件是否准备就绪ME23N组件页签里W的预留数量正确3.3 收料时101 E和543 O在三层BOM下的联动D的采购订单收货用MIGO移动类型101特殊库存E输入D的销售订单号。收货时系统按采购订单组件页签里的W做543 O消耗从W的供应商库存里扣。这时候W的批次如果前面311 E填的是外协供应商编码543 O能精确匹配到那一批如果批次没填或填错消耗就会落到其他批次或直接报错。收货完成后查三个库存点D的销售订单库存增加W的供应商库存减少W的销单库存保持为零因为已经全部转出去了。三层BOM和两层BOM在收料阶段的差别就在这里两层BOM直接541转T543 O消耗的是T三层BOM多了一道W的311 E543 O消耗的是WT在W的生产阶段已经被消耗掉了。链路从“T→供应商→W”变成了“T→W生产→W销单库存→供应商→D”。4. 按单生产委外加工避坑五条现象、原因与解决动作4.1 报错“特殊库存无法确定销售订单”现象计划订单转采购申请后做MB1B 541或311 E时报错提示特殊库存无法确定销售订单事务无法继续。原因科目分配组没填E或者KD-CO里的销售订单号为空。项目类别填了L只激活了组件页签但成本归集对象没指定系统不知道这笔委外挂在哪个销售订单上。两层BOM里这个错误通常出在手工补采购申请的场景三层BOM里出在计划订单转换时没带出销售订单号的相关需求。解决回到采购申请行项目科目分配页签里补科目分配组EKD-CO填销售订单号和行项目号。如果采购申请已经转了采购订单在ME22N里改采购订单的科目分配页签补完之后重新做转储。改完用ME23N复查确认KD-CO字段有值再继续。4.2 541转储后MIGO收货找不到供应商库存现象MB1B 541执行成功但MIGO收货时组件消耗543 O报“供应商库存不足”或者MMBE里供应商库存显示为零。原因541转储时填的供应商代码和采购订单上的供应商不一致。常见情况是541时填了物流供应商代码采购订单上挂的是外协加工供应商两个代码不同库存转到A供应商名下收货时从B供应商扣自然找不到。解决先用MMBE查T的供应商库存挂在哪个供应商下面如果挂错了供应商用MB1B 542或反向541转回来再按采购订单上的供应商重新转。预防办法是在541执行前用ME23N确认采购订单的供应商代码转储时直接复制。4.3 三层BOM跳过W生产入库直接做311 E现象W没有做101 E收货直接从非限制库存做311 E转供应商库存系统报“销售订单库存不足”或转储数量为零。原因311 E的发出端是销售订单特殊库存W没有进过销单库存发出端没有库存可转。三层BOM里W必须先走生产订单收货入销单库存这一步不能跳。解决补做W的生产订单收货MIGO 101 E销售订单号填D的SO号。收货后再做311 E。如果W的生产订单已经技术完成用MB1B 311 E之前先用MMBE确认W的销单库存余额余额不足就说明收货环节漏了或收错了库存类型。4.4 批次字段填了内部编码导致消耗串批现象D收货后查W的供应商库存发现消耗的批次不是311 E转过去的那一批或者543 O扣减后批次余额对不上。原因311 E转储时批次字段填了内部批次号或留空。543 O消耗时系统按批次匹配批次不匹配时会消耗最早入库的批次或报错。成本差异也出在这里批次串了之后W的生产成本归集到了错误的销售订单上。解决先做MB1B 311 E的反向转储移动类型312 E把错误批次的库存转回销单库存再按正确批次重新311 E。批次字段填外协供应商编码填完后用MSC3N查批次主数据确认供应商字段和外协供应商一致。已经收货的D如果批次错了用MIGO的后续调整或冲销重收不要直接改库存表。4.5 采购订单组件页签里T或W没勾“后处理”现象MIGO收货时成品收进去了但组件消耗543 O没有自动执行供应商库存没减少T或W还挂在供应商处。原因采购订单组件行的“后处理”标识为空。这个标识控制收货时是否自动触发组件消耗不勾选的话系统只收成品不扣组件需要手工补543 O。解决在ME22N里打开采购订单组件页签里勾上“后处理”保存后重新MIGO收货。如果已经收货了用MIGO选“后续调整”或直接做MB1B 543 O手工扣减扣减时填采购订单号和组件行号确保消耗到正确的供应商库存。5. 批次与外协供应商编码一个被低估的库存控制点5.1 批次串码之后成本差在哪里外协供应商编码写在批次字段里表面看只是库存标识实际影响三块库存归属、成本归集、收货匹配。批次填错之后第一层影响是MMBE里供应商库存的批次余额和实物对不上盘点时发现某个批次多了一批、另一个批次少了一批第二层影响是D收货时543 O消耗的批次和W实际发出的批次不一致W的生产成本从D的销售订单里漏出去月底结算时D的销售成本比实际少第三层影响是退货或索赔时找不到对应的供应商批次无法追溯到具体的外协批次。处理批次串码最忌讳直接改表或删批次。标准做法是用312 E反向转储把错误批次的库存退回销单库存再用311 E按正确批次重新转。如果543 O已经消耗了先用MB1B 544 O或对应的冲销移动类型把消耗冲回来供应商库存恢复后再走反向转储。整个冲销链的每一步都要用MMBE核对余额确认前一步平了再做下一步。5.2 收料前用MMBE和MB52做预验证的检查清单收料前花五分钟做预验证能省掉收货后半小时的冲销。检查顺序按库存流转方向走序号检查项事务码判据1销售订单库存是否建立MMBEW在销单库存下有余额归属D的SO号2供应商库存是否到位MMBEW供应商库存余额≥组件需求批次外协供应商编码3采购订单组件预留是否正确ME23N组件页签里W的预留数量、日期、批次匹配4批次主数据供应商字段MSC3N批次对应的供应商外协供应商代码5收货前库存快照MB52按物料批次导出作为收货后对比基线预验证里第2项和第4项要对照看MMBE看到的批次和外协供应商编码是否一致不一致的话在MIGO收货前修正不要等到543 O报错再回头查。MB52导出的快照用来在收货后比对批次余额变化如果543 O扣减的批次和预期不符快照能直接定位差异在哪一批。6. 用MD04和MB51做收料后反向自查三个节点库存快照6.1 三个时间点的库存快照对比法收完货不代表流程走完了反向自查要从三个时间点取库存快照计划订单转采购申请后、311 E或541转储后、MIGO收货后。每个时间点用MD04看单据链、用MMBE看库存归属、用MB51看物料凭证。节点MD04看什么MMBE看什么MB51筛什么转采购申请后采购申请是否挂住SO号T或W的非限制库存是否完整无物料凭证看采购申请号转储后采购订单是否生效供应商库存是否增加、批次是否正确移动类型541或311看供应商字段收货后销售订单库存是否增加成品销单库存增加、组件供应商库存减少移动类型101/543看批次和数量三个节点的快照对不上按单据链往回找。最常见的断点是转储后供应商库存增加了但批次是空的收货时543 O扣到了无批次库存上MB51里543的批次字段为空。这时候不用重收用MIGO的后续调整补批次或者312 E反向转储后重转。6.2 一个降低返工率的操作习惯我最早做三层BOM委外的时候跳过了W的生产入库直接做311 E系统报错后才发现销单库存是零返工补收货花了三天。从那以后每次做委外配置我都强制走一遍预验证清单VA01建单后先查MD04确认需求链转采购申请后查KD-CO字段转储前查MMBE余额收货前查批次和外协供应商编码是否一致。这套动作多花十分钟但能把批次串码和库存归属错误挡在收货之前。希望帮到你。本文还有配套的精品资源点击获取