ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

SAP生产订单全流程与反向冲销:创建下达发料报工入库及常见报错处理

SAP生产订单全流程与反向冲销:创建下达发料报工入库及常见报错处理 1. 生产订单全流程的底层设计逻辑干SAP PP这行十来年我最怕听到的一句话就是生产订单不就是建了、发了、报了、收了嘛。这话没错但它把整条链路上最容易翻车的地方全给盖住了。SAP生产订单Production Order本质上是一张把计划、物料、产能、成本四条线拧在一起的业务凭证它从创建那一刻起就带着物料清单BOM、工艺路线Routing、工作中心、成本收集器这些主数据后续每做一次发料、报工、入库都是在往这张订单上挂实际数据。全流程讲的是创建→下达→发料→报工→入库这条正向链路反向流程讲的是当某个环节做错时怎么按规则把它一层一层剥回来。这两件事其实是一体两面只懂正向不懂反向出了问题就只能干瞪眼。这篇文章我打算把整条链路拆开讲清楚每一步为什么这么设计、关键字段怎么填、后台数据跑到哪张表、报工和入库之间那种你中有我的联动是怎么回事以及最实用的部分——反向流程的操作顺序和一些常见报错的排查思路。适合刚接触SAP PP模块的顾问、准备上线的关键用户也适合天天在MIGO和CO11N之间来回切的一线计划员。我会尽量用日常操作的口吻来说参数和步骤尽量给到位能直接照着复现。需要先说明一点下面涉及的具体菜单路径和字段名称不同版本ECC、S/4HANA会有细微差别我按最通用的做法来讲实操时以你们系统的实际配置为准。1.1 为什么生产订单要走五步走这条链路很多人问为什么不能建完订单直接入库非要中间插那么多动作。原因在于SAP把计划和实际严格分开了。创建订单时系统只是根据BOM算出了理论上该领多少料、该花多少工时、该产出多少成品这些叫计划数据。而发料、报工、入库记录的是实际数据。只有实际数据和计划数据都齐了系统才能算差异、做结算把订单成本转到财务。所以这五步不是流程繁琐而是每一步都在往订单上补充一类实际信息发料补物料消耗报工补人工和机器工时入库补产出数量。换个生活化的说法生产订单就像一张点菜后的厨房工单。创建订单是客人下单厨房抄单下达是把单子正式派给灶台发料是从仓库把食材领出来报工是厨师做完报一声这份菜用了多少时间入库是把做好的菜端到出餐口。少任何一步账都对不上。1.2 订单状态机CRTD、REL、PCNF、TECO到底差在哪搞懂状态机很多操作卡住的问题就迎刃而解了。生产订单的核心状态大致有这几个我用一张表把含义和影响说清楚状态代码中文含义关键影响CRTD已创建订单刚建还不能发料、不能报工REL已下达可以发料、报工、收货是激活的关键动作PCNF部分确认已经报了一部分工但没报完CNF已确认报工完成PDLV部分交货已入库一部分成品DLV已交货成品全部入库TECO技术完成宣布这张订单业务上结束了一般禁止再报工收货CLSD已关闭财务结算完成彻底锁定这里最容易踩的坑是订单没有REL你去做发料会报订单未下达订单已经TECO你再想报工收货就会被系统直接拦下。所以我养成了一个习惯动手前先看一眼订单头部状态栏确认当前处于哪个阶段比盲目试操作省时间得多。1.3 数据落到哪几张必须记住的核心表排查问题的时候光看前台界面是不够的得知道数据存在哪。生产订单相关的底表脱离不了这几张AUFK订单主数据抬头信息都在这包括订单类型、状态、工厂。AFKO订单表头补充数据跟生产、计划相关。AFPO订单行项目物料、数量、交货日期在这。AFVC订单工序报工就是往这上面记工时。AFRU报工确认记录每次CO11N都会生成。RESB预留/相关需求发料就是冲着这里的预留去的。MSEG / MATDOC物料凭证行项目发料和入库的移动都在这里留痕。我一般排查这张单到底发了多少料报了几次工会直接SE16N看AFRU和RESB比在前台翻半天快得多。记住这几张表是新手进阶到能独立排错的分水岭。2. 创建与下达把计划变成可执行指令创建订单看起来就是敲个物料加数量但真正决定后续顺不顺的是订单背后的主数据有没有配齐。我见过太多订单建出来了却报不了工的情况追根溯源往往是工艺路线没维护或者工作中心没挂成本中心。SAP这里的设计思路是订单是个容器它本身不生产数据数据全靠主数据带出来。BOM带出该领的料工艺路线带出该做的工序和标准工时工作中心带出产能和成本归集点。三者缺一订单就是空壳。所以创建之前我会先花两分钟确认三件事物料主数据的MRP视图和生产视图是否维护完整、BOM是否有效、工艺路线是否放了行。这三样齐了后面的路才好走。2.1 CO01手动创建与CO40/CO41批量转换的思路差异单张订单用CO01创建这是最直接的方式进界面后填物料、工厂、订单类型、数量、开始和完成日期回车后系统自动把BOM和工艺路线带进来。但实际生产里绝大多数订单不是手工建的而是从计划订单Planned Order转换过来的。这里有两个事务码要分清CO40单张计划订单转生产订单适合个别调整。CO41批量转换跑MRP之后一堆计划订单一次性转成生产订单效率高得多。为什么不直接建生产订单非要先有计划订单再转因为计划订单是MRP运算的产物它参与了物料需求的计算但还没落地成正式凭证。用CO41转换的好处是转换过程会做可用性检查Availability Check如果物料或产能不满足系统会提示避免你建了一堆做不出来的订单。我的经验是日常运转用CO41批量转个别插单或返工单才用CO01手建。2.2 订单里那几个决定成败的关键字段创建界面字段不少但真正影响后续操作的我挑几个重点讲订单类型Order Type决定了订单号段、参数、是否走反冲、成本收集方式。标准生产用ZP01或PP01之类返工单往往单独一个类型别混用。物料与工厂这两个字段定了BOM和工艺路线才能带出来。数量与日期开始日期影响产能排程完成日期影响MRP对下游需求的承诺填错会连锁影响一堆相关需求。存储地点收货用入库时默认往哪收这里填了后续MB31就省一步。我特别提醒一点订单数量如果是按BOM比例算出来的领料量比如做100个成品领100套料那么在修改成品数量时系统不一定自动同步刷新领料量得手动检查组件概览。我踩过这个坑订单从100改成200结果料还是按100领的直接导致后续欠料。2.3 下达动作到底改变了什么下达Release快捷键一般是CtrlF1或界面上那个小旗子是整个流程的发令枪。要点在于只有下达之后订单上的预留Reservation才真正生效发料才能做报工才能做收货才能做。下达这个动作会在后台把订单状态从CRTD改成REL同时激活相关的预留和产能需求。下达前系统通常会做一次检查和可用性确认。如果主数据有问题、缺料严重可能提示你确认后再放行。这里有个实用技巧可以配置成下达时自动做可用性检查这样缺料会在下达阶段就暴露而不是等到发料才发现。批量下达的话CO05N是个好用的工具能一次把多张订单放行并批量处理各种异常。注意一旦订单下达并产生了实际数据比如发了料想退回CRTD状态就非常麻烦基本只能靠TECO或删除订单重来。所以下达前务必确认订单数量、日期、组件都对了。3. 发料261移动类型的门道发料在SAP里对应的是移动类型261含义是生产订单的领料消耗。这个数字为什么重要因为它决定了库存往哪个方向走原料库存减少消耗进到订单成本里。发料做对了库存账和成本账才能对上发错了要么库存虚高要么成本算不准。发料有两种打法一种是手工发料一种是自动反冲。选哪种不是拍脑袋得看物料特性和车间管理粒度。大批量、低值、领用频繁的辅料一般走反冲价值高、需要精确管控的主料手工发料更稳妥。3.1 MB1A、MB1B、MIGO三种发料入口怎么选刚上手的人会被这几个事务码搞晕我梳理一下各自适用场景事务码用途适用场景MB1A手工发料常规261领料最简单直接MIGO通用物料移动功能全可做收发货、带批次序列号推荐MB1B转移过账类移动订单间调拨、特殊移动类型CO27按订单挑料计划员集中处理多订单领料现在系统里我最常用的是MIGO因为它把收货、发货、冲销都整合在一个界面选好移动类型261输入订单号系统自动把预留的组件带出来勾选要发的行填上数量过账就行。比MB1A那种一屏一屏录的方式效率高。3.2 批次、序列号与库存确定如果物料启用了批次管理或序列号管理发料时就必须指定批次或序列号这是绕不开的。这里涉及一个后台逻辑叫库存确定Inventory Determination系统会按你配置的规则自动建议发哪个批次比如先进先出。但自动建议不一定符合实际车间实际领的可能就是货架上随手拿的那批如果强制按系统建议账实就不符。我的建议是要么把库存确定规则配得贴合实际要么在发料时允许手工改批次但改完要让系统记下真实批次保证账实一致。序列号管理Serial Number更严格每一个序列号都是唯一实物发料时要逐个指定常用于高价值的设备类物料。实操心得发料前养成看订单组件概览的习惯。如果某行显示需求量100已发0你发的时候发超了系统可能允许也可能报错取决于配置的容差。超发在成本核算上会形成差异能避免就避免。3.3 反冲的取舍省事还是有风险反冲Backflush是一种自动发料机制报工的时候系统按工序里维护的组件和数量比例自动把料扣掉你不用手工做261。它的好处是快减少操作步骤风险是它扣的是理论用量如果实际用料和BOM对不上账就歪了。什么样的物料适合反冲我的判断标准是用量稳定、价值低、损耗可控、领用频繁的物料比如螺丝、包装材料。主料、贵重料、损耗波动大的料坚持手工发料。反冲的错误往往在你发现的时候已经积累了一批冲销起来很麻烦这个坑我后面反向流程会专门讲。4. 报工CO11N里面的学问最多报工Confirmation是整条链路里和车间关系最紧密的一环事务码主要是CO11N。它干的事说白了就是告诉系统这道工序我做了多少个花了多少工时废了几个。 别小看这几次录入它同时触发了三件事工时进入订单成本、产量推动订单状态变化、如果配了自动收货和反冲还会联动做入库和发料。所以报工填错后面一连串数据都会跟着错。我见过车间报工只看数量不看工时结果订单成本里人工费几乎为零月末成本分析全是红字。报工工时哪怕不精确也得填个合理值不然差异分析根本没法看。4.1 报工到底报了哪些信息CO11N界面核心填这几项产量Yield本次合格产出数量。废品Scrap本次报废数量会影响订单实际产出和成本。工时Activity各工序实际耗用的工时按工作中心归集成本。报工数量累计多次报工会累加直到等于订单数量或手动收尾。这里要区分一个概念报工的产量不等于入库的产量。报工是我做了多少入库是我把多少成品放进了成品仓。理论上两者数量一致但实操中可能分批报工、分批入库只要总量对上就行。如果报工数和入库数长期对不上说明流程里有环节漏记了。4.2 自动收货与自动发料的联动机制报工界面通常有几个勾选框控制它联动做什么动作自动收货Auto GR勾上后报工的同时按移动类型101把成品入库省去单独做MB31。反冲发料勾上后系统按BOM自动扣料对应261。清除预留订单完成后把剩余预留清掉。这三个勾选是有讲究的。如果车间管理粗放喜欢一报全清那就都勾上一步到位。如果入库要质检、要单独走检验批那自动收货就别勾让入库单独在MIGO里做避免成品直接进非限制库存。我个人的偏好是主料手工发、成品手工收、工时认真报这样每一步都可控、可追溯。反冲和自动收货留给那些流程成熟、用料稳定的产线。4.3 报工报错了怎么办报工填错几乎是常态数量填多了一位、工时填成了0、点错订单号都发生过。这里给你一个原则报工错了必须冲销Cancel不要试图用再报一笔负数来抵消。CO11N本身有冲销功能可以针对某次报工记录做取消系统会生成反向凭证把工时、产量、以及联动产生的收发料一起回滚。用负数硬抵会在AFRU里留下两笔记录成本分析时看着乱审计也麻烦。冲销单次报工在CO11N里选取消确认Cancel输入原来那条报工记录执行即可。如果那次报工联动了自动收货取消时系统一般会问你要不要一起冲掉收货这时候要看清提示再点。5. 入库101收货与订单收尾成品入库用的是移动类型101含义是生产订单收货。它把成品从在制品状态转成库存同时触发一笔财务过账直接冲减订单的成本。这步做完订单的产出和投入基本配平月底就可以结算了。入库不是随便收它关心两件事收多少、什么时候收。收早了还没做完就收会导致在制品虚高收晚了做完了没及时收会导致订单迟迟不能TECO。5.1 MB31与MIGO收货的实操单个订单收货用MB31输入订单号和数量系统按订单的收货存储地点自动带出确认过账。批量收货可以用MIGO选移动类型101输入多个订单逐个过。几个关键点收货数量一般不能超过订单数量除非配置了过量容差。存储地点Storage Location决定成品进哪个仓填错了要冲销重来。如果物料有质检要求收货会生成检验批先进质检库存得等判定了才能转非限制库存。注意入库和报工是可以分开做的但入库数量理论上不该超过报工确认的产量。如果系统配置了收货前必须报工那你没报工直接收货会报错。这是防止仓库乱收的一道闸。5.2 收货后的财务凭证与成本逻辑101过账后系统自动生成会计凭证典型的分录是借库存商品成品科目 贷生产成本-产出订单产出科目同时成本收集器上记录了订单的实际产出价值。这样到月末结算KO88时系统拿订单的实际投入领料工时费用和实际产出入库价值一比差额就是在制品或成本差异。所以入库做没做、做得对不对直接决定月末结算能不能平。5.3 TECO与关闭的区别和时机订单做完先做TECO技术完成再做CLSD关闭。TECO的意思是业务上结束了系统会拒绝再对它做报工和收货但允许你冲销和修改部分数据。CLSD是财务层面的最终锁定通常由成本会计在结算后执行一旦关闭几乎不能再动。我的建议是确认所有收发料和报工都做完、且核对无误后再做TECO。如果TECO做早了发现还有料没报就得先取消TECO很折腾。TECO可以通过CO02取消状态栏里把TECO标志去掉但前提是订单还没结算关闭。6. 反向流程冲销要讲顺序不能乱来讲完正向重头戏来了。实际业务里做错是常态关键是怎么干净地退回来。反向流程有一个铁律先做冲销再做修正最后重做正向。而且冲销顺序要和正向顺序反过来。正向是发料→报工→入库反向就要冲入库→冲报工→冲发料。原因很简单入库和报工往往已经联动了发料你把下游的凭证先回滚上游的料和工时才能被正确回滚否则会报凭证已被引用之类的错。下面我把常见的反向场景拆开讲。6.1 冲销入库先看它有没有带出报工记录如果入库是手工MB31做的跟报工分开冲销直接用MBST或MIGO里的冲销功能输入物料凭证号执行即可系统会生成一笔反向的102移动库存退回财务凭证也跟着反冲。但如果入库是报工时自动收货带出来的那冲销入库最好连报工一起冲用CO11N的取消确认让系统一次性回滚报工和收货。单独冲自动收货容易留下不一致的报工记录后续对账费劲。6.2 冲销报工别忘了它可能反冲了料取消报工仍然是走CO11N的取消确认。这里最需要注意的是反冲如果那次报工带出了自动发料取消报工时要确认系统是否也把对应的发料冲销了。很多时候你只看到报工取消了但那批被反冲扣掉的料还挂在订单上需要单独再冲销物料凭证。判断方法很简单取消后看订单组件概览里的已发数量有没有跟着减少。如果报工已经TECO了得先取消TECO才能做取消确认。6.3 冲销发料MBST与顺序规则发料的冲销用MBST输入那张261物料凭证的凭证号执行后生成262反向凭证料退回库存成本冲回。冲销发料的时机很关键必须在报工和入库都冲销之后。因为报工可能依赖已发的料入库又依赖报工顺序乱了系统会报错。我自己踩过的坑就是订单做完了才发现料发错了直接去冲发料结果系统提示凭证与订单状态冲突最后只能按入库→报工→发料的顺序一层层退回来。6.4 已TECO订单的逆向处理订单已经TECO了才想起来要改这是最麻烦的情形处理原则是先用CO02取消TECO把订单退回可操作状态。按冲入库→冲报工→冲发料的顺序回滚。改完数据后重做正向流程。确认无误重新TECO。如果订单已经CLSD并且做完结算了那基本动不了只能通过调整凭证或新的修正订单来处理所以TECO和CLSD这两个动作一定要谨慎别图快。7. 常见问题与排查实录前面讲的是应该怎么做这一节讲讲实际会出什么幺蛾子。我把这些年遇到的高频问题整理成速查表再补充几条后台配置和权限相关的坑最后说说我自己的避坑心得。7.1 高频报错速查表报错信息大意可能原因处理思路订单未下达无法过账订单还是CRTD状态CO02下达订单无可用预留/相关需求不存在未下达或组件没维护检查订单组件和状态物料被批次管理必须输入批次未指定批次用MIGO指定批次过账期间未打开会计期间没开MM期间维护或联系财务订单已技术完成禁止过账已TECO取消TECO后再操作数量超容差超发或超收检查订单数量与容差配置凭证已被引用无法冲销冲销顺序错按反向顺序依次冲销反冲未找到组件BOM或工序组件没维护检查工序组件分配这张表我建议打印出来贴在工位上遇到报错先对号入座能省下大量翻系统日志的时间。7.2 权限与后台配置相关的问题有些问题不是操作错是权限或配置没到位。比如报工报不了可能用户的角色里没有CO11N的操作权限或者工作中心没分配给用户对应的权限对象。发料发不出去检查用户对移动类型261的权限以及对应工厂、存储地点的权限。收货找不到存储地点订单里没维护默认收货地点或物料主数据没维护。成本没进订单工作中心没挂成本中心或作业类型的价格没维护。这类问题的排查思路是先确认操作本身对再去查权限SU53看权限缺失和后配置找顾问看SPRO。新手最容易把权限问题误判成操作问题白白折腾半天。另外像我这种经常要分析数据的会用到SE16N直接读底表但SE16N的查询权限和修改权限是分开的有时候能看不能改就是权限颗粒度的问题。7.3 我踩过的坑与避坑心得最后掏心窝子说几条从实战里磨出来的经验第一动手前先看订单状态和组件概览。这个习惯帮我省了无数次返工。状态告诉你现在能做什么组件概览告诉你料发到什么程度两样都看清了再动手。第二反向操作严格按入库→报工→发料的顺序。这是铁律违背了就是各种报错加数据对不上。我见过有人图省事直接冲发料最后整张订单数据乱掉只能删单重做。第三反冲能不用就不用除非流程真的稳。反冲省的是操作时间赌的是BOM准确性和车间规范。料一乱冲销起来的成本远大于省下的时间。第四定期对账。别等到月末结算才发现订单数据对不上。平时就用COOIS生产订单信息系统拉一拉订单的执行情况看看有没有发料了没报工、报工了没入库的半拉子订单早发现早处理。第五TECO和CLSD谨慎按。这两个状态是单向门退回成本高。确认所有实际数据都齐了、差异分析看过了、该冲的冲完了再动手完成和关闭。第六善用底表排查。AFRU看报工、RESB看预留、MSEG看物料凭证前台翻不出来的问题底表里清清楚楚。把这套正向加反向的链路吃透SAP生产订单基本就没什么能难住你的了。真正的高手不是不犯错而是犯错之后能干净利落地退回来把账对平。这也正是反向流程比正向流程更值得反复练的原因。
返回列表