ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SAP生产订单正向与反向流程:261发料、CO11N报工、101入库、冲销退料

SAP生产订单正向与反向流程:261发料、CO11N报工、101入库、冲销退料 生产订单这东西刚上手时觉得就是个工单——CO01建一张、CO02改一改、CO11N报个工好像没什么难度。真做久了才会发现从创建、下达到发料、报工、入库这条链上任何一个环节没对齐月底结账时就会有一堆差异科目等着你。我自己就在一家做汽车零部件的厂子里见过仓库嫌麻烦把料一次性发完结果三个月后订单结算时材料成本比标准成本高出二十几个点财务追着生产要解释最后发现是超领的料挂在订单上没人管。这篇文章把 SAP 生产订单从创建到下达到发料、报工、入库的完整链路拆开讲一遍再重点讲反向流程——也就是冲销、退料、回退状态这些走回头路的操作。正向流程的文档网上一抓一大把但反向流程的坑往往只有踩过的人才知道顺序为什么不能颠倒。内容适合三类人看刚接手 PP 模块的顾问、每天要在 MIGO 和 CO11N 里打转的生产计划员以及需要搞清楚钱是怎么进订单又怎么出去的成本会计。1. 生产订单的三种出身以及决定它长相的四份主数据1.1 计划订单转换、CO01手工建、接口批导三种出身差别很大绝大多数生产订单不是手工建的而是从计划订单转过来的。MRP 跑完之后MD01/MD02 或 MD03 单物料需求挂在 MD04 里计划员在 MD04 或 CO40/CO41 里做转换。CO40 是单张转换CO41 是集中转换CO48 是后台批量转换——订单一多CO41 那个列表界面点转换的时候最好分批次几百张一起转锁和性能都会出问题我一般按物料组分批。转换过来的订单有个天然优势它继承了计划订单的需求日期、数量、已经展开的组件和已经做过的成本估算CK11N。手工 CO01 建的订单就惨一些组件虽然能从 BOM 带出来但成本估算、可用性检查、日期推算全部要自己盯。至于接口批导常见做法是用 BAPI_PRODORD_CREATE 加 BAPI_PRODORD_RELEASE也有团队直接用 BDC 录 CO01 屏。我的建议是数据量小、字段简单的场景用 BDC 最快但一旦涉及组件行项目、批次、序列号BDC 的屏幕顺序会把人搞疯还是老老实实走 BAPI。三种出身还有一个容易被忽略的差异计划订单转换时系统会用计划订单 → 生产订单的转换规则重新读一次 BOM 和工艺路线如果这期间主数据被人改过转出来的订单跟你想象中的可能不一样。所以主数据变更和生产订单转换之间最好有个冻结窗口。1.2 订单类型、物料主数据、BOM、工艺路线这四份主数据决定了一切订单类型决定了订单会不会走可用性检查、允不允许超量报工、用哪个编号范围、结算用哪个结果分析码这些参数在 OPL8 里按订单类型维护。同一个物料用 ZP01 和 ZP02 建出来的订单行为可能完全不同这一点在接手别人配置的系统时一定要先看订单类型参数。物料主数据这边真正影响生产订单流程的是几个字段MRP 视图 2 里的倒冲标识决定这个物料能不能自动发料、工作准备视图里的收货处理时间影响可用日期推算、会计视图 1 里的评估类决定 261 和 101 走哪个科目。评估类与账户类参考的绑定在 OMSK科目在 OBYC 里按事务码 账户修改码 评估类三段式确定。很多人发完料看财务凭证看不懂就是没理顺这条链路。BOM 决定订单有哪些组件、每个组件用多少、有没有组件偏置提前期偏置让长周期件提前发料。工艺路线决定有哪些工序、每道工序在哪个工作中心、用什么控制码、标准工时多少。控制码是这里面最关键的它控制工序能不能报工、报工要不要自动收货。我见过一个项目控制码里自动收货没勾结果所有订单都靠仓库手工 MB31 入库产能和入库数据对不上追了一个月才找到原因。1.3 创建阶段真正要盯住的字段订单建出来之后别急着点下达。下面这几个字段如果不看后面大概率要返工字段位置为什么重要填错的后果基本开始/完成日期订单抬头决定组件需求和能力需求的日期组件按错日期到货缺件订单数量与单位抬头决定组件需求量和收货目标超收或欠收状态卡在 PDLV收货库位抬头101 收货往哪放收货报错或入错库位结算规则抬头决定成本结算到哪状态 SETC 不亮KO88 报错成本归集对象抬头的 WBS/成本中心费用归集去向成本落不到项目上批次/序列号抬头或组件决定发料时要不要指定反冲时直接卡死这里有个经验批量建的订单收货库位最好在物料主数据的生产仓储地点里维护好让系统自动带否则几百张订单手工补库位能补到崩溃。1.4 底表视角订单数据到底存在哪几张表里做排查也好写报表也好绕不开底表。生产订单相关的核心表包括AUFK 存订单主数据订单号、订单类型、状态对象号AFKO 是订单抬头日期、数量、收货库位AFPO 是订单行项目物料、数量、交货状态RESB 是组件预留也就是发料的依据AFVC/AFVU 是工序和工序里的标准值AFRU 是报工凭证。再往外一层MKPF/MSEG 是物料凭证的头和行COEP 是成本行项目。SE16N 直接看这些表没问题但要注意 AUFK、AFPO 在很多系统里是 V1/V2 双视图报表用 CDS 视图会稳定一些。还有一个实用技巧查订单时先把 AFKO 的 AUFNR 和 AUFPL 拿到AUFPL 是工序的内部订单号顺着它能串到 AFVC 和 AFRU比一层层点界面快。2. 下达不是点个按钮Release 释放了什么校验了什么2.1 下达动作背后同时发生的四件事下达在三秒钟内完成但系统同时做了四件事。第一把状态 REL 置位从这一刻起订单才能收料、发料、报工、收货CRTD 状态的订单去 MIGO 发料系统只会给你一句订单未下达。第二如果订单类型挂了检查范围会触发可用性检查结果写在状态 MACM 里检查用的物料范围、检查规则在 OPJJ 里按订单类型配置。第三工序的能力需求开始真正往工作中心上落产能负荷报表CM01/CM21里就能看到它了。第四输出和打印车间工单、拣配单被激活。很多人以为下达只是个状态位其实它是一次实质性的发布动作——订单从计划变成现实对库存和产能都产生了承诺。所以下达的时机本质上是一个判断物料到位了吗产能排得开吗成本估算有了吗。2.2 CO24 缺件清单与 CO09 可用性总览MRP 的承诺和 ATP 检查不是一回事CO24 是缺件清单把所有下达了但组件不齐的订单列在一起按物料汇总。CO09 是可用性总览可以按订单、按物料看详细的可用性明细——哪些入库在途、哪些已被占用、哪一天能齐。这里有个概念必须掰清楚MRP 是净需求计算它告诉你如果没有意外这批料在某天应该到位ATP 可用性检查是在订单下达那一刻对组件做一次快照核对通过不代表料真的够因为你的订单和别人的订单可能在抢同一批库存。我遇到过最典型的情况是订单 T1 下达可用性检查通过结果 T2 另一张更紧急的订单把料占走了等到发料时才发现只剩一半。所以 CO09 要天天看CO24 要天天清别等排产会当天才发现。2.3 CO05N 与 COHV 批量下达什么时候必须走后台单张订单下达在 CO02 里点一下就行。批量下达有两个工具CO05N 是按订单号列表批量下达COHV 是万金油式的批量处理可以批量做下达、TECO、打印、删除标记。订单量在几十张以内前台跑没问题到了几百上千张直接 SM37 建后台作业前台跑很容易超时或者把用户会话顶掉。批量下达失败的时候别盯着前台那个一闪而过的提示去看 SLG1 里的应用日志或者批量作业产生的日志清单里面会明确写哪张订单因为什么原因没下达成功。经验上看失败原因九成集中在三类结算规则没维护、收货库位为空、组件缺失导致可用性检查不过。2.4 下达前我自己必查的一张清单这张清单是我这么多年攒下来的比系统给的标准检查实用组件清单是不是完整的如果 BOM 在建单之后改过要在 CO02 里手工重新展开 BOM不然订单还是用旧结构。日期落在没打开的期间里了吗FI 期间看 OB52物料期间看 MMPV 的状态反冲和收货都会卡这里。成本估算有吗没有估算且物料又没有标准价报工之后订单实际成本可能是零差异分析的时候你会怀疑人生。反冲料和批次管理料的处理方式定了吗批次管理的料开反冲等着报工的时候被系统拦下来吧。早点看长周期件的组件偏置别让第一道工序开工了关键件还在路上。3. 261发料领料动作背后的库存、科目和批次逻辑3.1 MIGO 261 的标准走法和三个必填信息261 的常规路径是 MIGO 里选货物移动 - 发货移动类型 261参照采购订单那一栏填生产订单号。系统会把订单的组件预留带出来RESB 里那些行你勾选本次要发的行补上数量、库位、批次过账。必填信息其实就三个层次订单号或者预留号决定了发给谁、发什么数量和单位决定发多少库位、批次、序列号决定从哪发、发哪一批。库位如果组件行里维护了发放库位系统会自动带带不出来的话在工厂层会有默认库位。仓库习惯的另一个做法是用 CO27 打拣配单让仓管照着单子拣货再在 MIGO 里对着单子发这个流程对减少发错料特别有效。261 过账之后会同步生成 FI 凭证借方是生产成本—材料消耗OBYC 里事务码 GBB 加账户修改码 VBR贷方是库存科目事务码 BSX 按评估类确定。所以 261 不只是把库存减掉它同时把材料成本喂进了生产订单。搞不清订单成本为什么是这个数先去 KOB1 里看 261 的明细最直接。3.2 反冲什么时候该开开了要付什么代价反冲倒冲Backflush的实现有两处开关物料主数据 MRP 视图 2 的倒冲标识或者生产订单组件行上的反冲标识两处只要有一处打开报工的时候系统就会自动对这条组件做 261。它的价值在于省掉仓库逐单发料的动作尤其适合那些按盒、按卷领用的小件。但反冲是要付代价的。第一库存账实准确性完全依赖报工及时性——报工拖三天系统里的库存就虚高三天MRP 会基于假库存做计划。第二反冲的物料如果被批次或序列号管理报工时系统找不到批次会直接报错只能改成手工发料。第三反冲料从哪个库位出取决于订单组件的发放库位或者物料默认库位配错了就会从错误的库位扣料。我的判断标准很简单单价高、数量可数、容易丢的料不开反冲螺丝、标签、包装材料这类 C 类件开反冲。这条线划错了要么仓库天天加班发料要么盘点天天对不上。3.3 批次、序列号、特殊库存发料环节最常见的三个卡点批次是第一个卡点。261 发料的批次是必输的物料批次管理时要么手工指定要么走批次确定策略MBC1 按移动类型和物料配置搜索策略按有效期或者按工厂做先进先出。批次一旦发出去就和订单绑定了后续冲销时冲的是同一批次这一点在反向流程里很关键。序列号是第二个卡点。序列号管理的物料发料要指定序列号MIGO 里可以逐条输也可以在 MIGO 的序列号页签里批量粘贴。序列号多的场景比如一台设备几百个序列号建议走 MIGO 的从文件导入或者用 BAPI_GOODSMOVEMENT_CREATE 批量过账。特殊库存是第三个卡点。项目库存、供应商寄售库存发料时必须带特殊库存标识E、K 等客户库存一般不能直接用于生产订单消耗。这几个标识在 MIGO 里是特殊库存那个字段忘了填系统就会去动普通库存账面上看起来没问题实际上是拿错了库存。3.4 发料不干净会怎样状态、差异与账实不符发料没发完最直观的表现是 CO24 里这张订单一直亮着订单状态里的 GMPS 表示已经发生过货物移动但组件预留还挂着未清数量。未清的组件需求会影响下一轮 MRP因为系统认为这批料还没有被消耗掉。成本角度更麻烦。超领发得比 BOM 多会直接推高材料成本形成用量差异少领发得比 BOM 少在期末会被算成在制品或者被差异分析抓出来。跨期发料的影响最大——上一期的收入已经确认材料成本却落在本期毛利会莫名其妙地波动。所以月末结账前我通常会跑一遍 COOIS 的组件视图把未清组件和超领组件都拉出来对一遍比等财务来问要好得多。4. CO11N报工一次录入同时改掉产量、工时、库存和成本4.1 CO11N 界面上每个字段在干什么CO11N 看着字段多其实就四组。第一组是订单和工序输入订单号后系统带出工序列表选哪道工序就报哪道。第二组是数量产量Yield俗称合格品数量、报废Scrap、返工Rework需要先激活这个选项。产量决定入库数量报废不进库存但进成本返工的数量会重新回到工序。第三组是工时作业类型、数量、单位。系统会根据工序里的标准值和订单数量自动建议一个工时你可以覆盖。工时的单位通常是分钟报错了单位成本会差出一个数量级这个坑我亲眼见过。第四组是确认方式勾上最终确认订单状态从 PCNF 变 CNF表示这道工序或者整张订单生产完了不勾就是部分确认。下面还有收货相关的勾选框如果工序的控制码带自动收货、原因代码报废原因、短文本。报工能不能超量、能不能报负数由 OPK4 的确认参数按订单类型控制很多时候数量报不进去不是操作问题是配置本身就禁止了。4.2 报工触发的连锁反应报工最容易被低估的地方是它一次性改动了四样东西。物料层面反冲组件产生 261 物料凭证自动收货产生 101 物料凭证每张物料凭证后面跟着 FI 凭证。生产层面AFRU 生成报工记录订单状态推进PCNF → CNF工序的完工数量更新。能力层面报的工时消耗了工作中心的产能。成本层面作业价格乘以工时形成作业成本材料成本在 261 的时候已经进来了。这里必须提一句作业价格的重估链路报工当时进入订单的作业成本用的是计划价格KP26 里维护的费率月底要用 KSS2 做实际作业价格计算、KSC2 做分割、CON2 重估订单订单上的作业成本才变成实际数。很多新手对不上订单成本和财务报表的差异就是漏了这一步。还有个小提醒报工之后不要把工单拿去随便改数量。已报工的数量不能直接改只能通过 CO13 冲销再重报这是标准逻辑不是系统 bug。4.3 自动收货的配置链路控制码到工序再到主数据自动收货是一条配置链OP00 里定义控制码控制码里勾上自动收货和确认工艺路线的工序引用这个控制码订单生成时把控制码带到工序上。三者对齐了CO11N 报工的时候才会顺带产生 101。入库的库位取两个地方之一订单抬头的收货库位或者物料主数据里的生产仓储地点。两个都空就会报错。入库数量等于本次报工的产量报废数量不入库。还有一个细节自动收货和反冲是同时发生的所以一次报工可能瞬间产生好几张物料凭证如果库存不足报工整体失败一张都不会过账——这是好事它保证了数据一致性。我在项目里的习惯是新开一个自动收货的订单类型先用一张测试订单跑通把产生的 FI 凭证拿出来给成本会计看一遍确认科目对得上再推广。自动收货配错的代价是每张订单都错量级完全不一样。4.4 报工报错的排查链路报工报错的时候别急着找顾问按下面这张表走一遍八成能自己定位报错现象常见原因排查动作提示订单已技术完成/已关闭订单已 TECO 或 CLSDCO03 看状态页先取消 TECO提示组件库存不足反冲时库存不够MB52 查可用库存手工 261 或补料提示期间未打开物料期间或 FI 期间关闭查 MMPV 状态与 OB52提示没有成本/作业价格KP26 未维护费率或成本估算缺失查 KP26、CK11N提示批次必输组件批次管理但未指定批次关掉反冲改手工发料或维护批次数量无法录入或超量OPK4 确认参数限制了过量报工找顾问确认是否可以放开排查顺序我一般从状态开始再看期间最后看数量。状态不对后面都不用查了。5. 101入库与订单收尾TECO之前必须做完的事5.1 MB31 与 MIGO 101为什么生产订单收货的贷方不是 GR/IR生产订单收货有两个入口MB31专门给生产订单做 101 收货和 MIGO。自动收货打开时这两个入口其实都不用手工操作报工就顺带完成了。关键在科目。采购订单收货 101 是借库存、贷 GR/IR暂估应付事务码 WRX生产订单收货 101 是借库存BSX 按评估类、贷生产成本—产出GBB 加账户修改码 AUF。因为没有供应商所以不存在暂估应付这一说。很多刚转 PP 的会计会问这张凭证怎么没有 GR/IR答案就在这里。搞清楚这条就能理解生产订单收货为什么不产生应付而只是把已经归集在订单上的成本转成库存。5.2 部分收货 PDLV/DLV、超收容差与最后一批随着累计入库数量逼近订单数量订单状态会从 PDLV部分交货走到 DLV全部交货。这里有两个实操点。一是超收容差订单类型或工厂参数里可以设允许的过量交货比例卡得太死最后一炉多出来几个就入不进去。二是最后一批的处理我不建议把最后一批卡在订单数量正好留个百分之一到二的空间用来消化报废、样品和试制件。还有一个常见争议能不能不报工直接 MB31 入库。技术上可以但这样一来入库数量和报工产量脱节成本上的产出和投入对不上差异分析会失真。除非是特殊场景比如返修件回库否则还是走报工自动收货。5.3 TECO、CLSD、删除标记三个状态谁先谁后TECO技术完成意味着生产结束系统会拦住后续的报工和发料。这里有个非常现实的顺序问题TECO 之前一定要确认收货做完了。收货还没做完就 TECO后面再去 MIGO 101 大概率会被拦下来只能先回 CO02 取消技术完成收完货再 TECO 一次——多绕一圈还容易忘记恢复。CLSD关闭通常出现在结算完成之后表示订单生命周期结束。标准里没有一眼可见的取消关闭所以这个动作要慎点最好有内部审批。删除标记DLFL是另一回事CO02 里给订单打上删除标记再用 CO78 做归档删除。有实际业务凭证报工、物料凭证、成本行项目的订单是删不掉的系统会保留它做历史追溯。我建议的顺序是收货完成 → 差异处理基本完成 → TECO → 月结KKAO/KKS1/KO88→ 关闭。不同公司习惯不同但收货必须在 TECO 之前这一条基本通用。5.4 月结链路KKAO、KKS1、KO88以及订单成本怎么看月结这三步各自干什么KKAO 计算在制品订单还有未完成部分时已投入的成本先挂在在制品上KKS1 计算差异KKS2 是单张订单的差异KO88 做结算把在制品和差异结到 PA 传输或者差异科目上。看订单成本的常用工具KKBC_ORD 看订单成本汇总计划、实际、差异KOB1 看实际行项目的明细COOISPI 是订单信息系统可以按订单类型、状态、日期批量拉。差异的来源无非几类材料用量差异261 发料和计划组件量的差、工时差异报工和标准工时的差、价格差异作业价格和计划费率的差、批量差异实际批量和成本估算时的批量不一致。这块是生产和成本会计共同作战的地方。我的经验是每个月差异跑出来之后别只看总数把差异金额最高的前十张订单用 KOB1 拉明细八成能发现某个物料的标准成本该更新了或者某道工序的工时定得不合理。6. 反向流程冲销顺序错了后面全是坑6.1 冲销必须倒着来报工、入库、发料正向流程是建单 → 下达 → 发料 → 报工 → 入库反向流程就是把它倒过来。原因很实在报工里包含了自动收货和反冲发料冲销报工会连带把它们一起冲掉。如果你先把 101 收货冲了再去冲报工系统会发现没有可冲的收货记录报错如果你先冲了 261 的手工发料再去冲报工报工的反冲那一部分又找不到对应的凭证。来回折腾几次物料凭证一堆人也就乱了。所以标准顺序是先 CO13 冲销报工连带冲掉自动收货和反冲料再处理手工 101 收货MIGO 102 或 MBST最后处理手工 261 发料MIGO 262 或者 MBST 整单冲销。如果订单已经做过结算冲销之后要重新跑一遍差异计算和结算别漏了。6.2 CO13、MIGO 102、262、MBST四种冲销工具怎么选工具用途适用场景注意事项CO13冲销报工报错数量、报错工序、整单反悔会连带冲自动收货和反冲料MIGO 102冲销入库凭证只冲多收的那部分可以按数量冲需引用原凭证MIGO 262冲销/退回发料退料、更正发料数量库存回来成本从订单冲回MBST整单冲销物料凭证某张凭证整体作废凭证里有多行会全部冲掉慎用CO02 功能菜单取消技术完成TECO 后发现还有业务要做需要权限操作后记得重新 TECOMBST 这个工具要特别小心。它的行为是整张物料凭证全部冲销如果一张 261 凭证里有三张不同订单的组件行你一冲就全冲了。我的习惯是尽量让每张凭证只对应一张订单操作上就是发料时别图省事把多张订单塞进一次 MIGO。6.3 取消 TECO、删除订单、跨期冲销的三个注意点第一取消 TECO 的路径是 CO02 里进功能菜单找到限制处理下面的取消技术完成。这个动作本身很简单但要记得取消之后系统不会自动帮你恢复所有被拦住的动作业务做完了要记得再 TECO 一次否则订单会一直挂着 REL 状态。第二删除订单前面说了有业务凭证就删不掉。想清理历史数据走归档删除别指望直接从系统里抹掉。第三跨期冲销是最容易出事的。冲销凭证一律生成在当期所以它会增加当期的库存或者把成本冲回当期。如果原凭证在上期并且已经结算这一冲会在本期凭空多出一笔差异。物料期间没打开的话连凭证都过不了直接报错。我现在的做法是凡是跨月冲销先跟成本会计打个招呼让他知道本期会有这笔数别等到对账的时候才发现。6.4 反向流程里最常见的几个坑跑过几个项目之后我总结出反向流程里最容易踩的几件事。顺序颠倒排在第一位先冲 101 再冲报工报错信息看不懂来回试半天。只冲报工不处理手工发料排在第二位结果订单上的料一直挂着库存账实不符盘点的时候才暴露出来。反冲加批次管理排在第三位冲销报工时系统找不到批次直接报错只能改成手工处理。还有两个坑值得单独说。一个是冲销报工之后忘了重新报工订单状态停在 PCNF收货也没做完月结的时候被财务追着问。另一个是跨期冲销没通知任何人上期差异已经结到损益里了本期又冲回一笔两个月的毛利率都不正常。最后分享一个我日常排查订单卡在哪个环节的小技巧打开 CO03先看状态页CRTD 说明没下达REL 加 PCNF 说明报了但没报完DLV 说明收货做完了TECO 说明生产结束。配合 COOIS 里的凭证流视图从订单一路点下去能看到它产生的每一张报工凭证、物料凭证和 FI 凭证比一张张去 MIGO 里翻凭证号快得多。订单这条链上能看清它现在停在哪儿问题基本就解决了一半。
返回列表