简介:这是一份关于SAP拆解工单的图文详解,面向SAP PP与FICO顾问,解决无法返工的有缺陷产品如何拆解、成本如何归集的问题。资料为单份PDF,共2.97MB,篇幅紧凑,便于系统阅读。内容从拆解业务蓝图出发,梳理生产部门创建拆解生产订单、领料、产线拆解、部件检测入库的完整流程;侧重说明拆解成本不计入产品而计入损益科目、通过成本中心或内部订单归集的区别;并展开参考工序集在返工及拆解中的配置要点,以及CO07创建订单、维护组件、MIGO发料等前台操作。已有4525人学习,适合希望掌握工单类型配置、结算参数设置和后台操作的SAP运维与顾问人员。
1. 拆解工单不是倒过来的生产工单:报废设备拆件之前,先想清楚这三件事
一台注塑机大修,伺服电机还能用,拆下来装到备用机上;一台退机回到仓库,可用板卡要回收再入库。这种动作如果直接拿 MIGO 做 101 收货,财务会立刻追问:这批件是哪个成本主体拆出来的?拆的人工工时记到哪?拆下来的旧件是可用库存还是废料?拆解工单(Dismantling Order)就是替“拆”这个动作立主体、记成本、管回仓的工具,在 SAP 的 PM/PP 模块里承担着维修拆卸、资产翻新、售后退回件拆解三大场景,把拆下的零件按可用状态重新入库,把工时和材料成本干净地结算到资产、内部订单或成本中心。
这篇笔记写给做 EAM/PP/维修模块的顾问,也写给每天跟工单过账打交道的业务骨干。从拆解 BOM 怎么建、回收件物料怎么设,到 MIGO 移动类型怎么选、KO88 结算规则怎么配,最后落在五条一线翻车配置上,尽量按你能直接照做的顺序讲。拆解工单本身不复杂,复杂的是 SAP 把“拆”和“装”共用同一套订单字段、同一个 IW31 界面,一不留神就建成了普通 PM 工单。
2. 拆解工单的主数据地基:BOM 用途、回收件物料与工时来源
2.1 用 CS80 展开拆解 BOM:用途选“D”还是留空白
拆解工单的数据源头是拆解 BOM,也就是物料清单里的拆卸结构。很多人以为拆解 BOM 和生产 BOM 是两套数据,实际上它们共用同一个物料主档,区别只在 BOM 抬头里的“用途(Usage)”字段。生产 BOM 一般用用途 1(生产)或者留空白,拆解 BOM 则要显式维护成用途 D(Dismantling)。这个字段决定了你在 CS80 里能不能把拆解结构完整展开,也决定了工单里点“展开 BOM”时系统会不会自作主张把生产用的采购件、包装材料一起带出来。
维护拆解 BOM 的常见动作是先用 CS01 创建物料 BOM,抬头用途选 D,行项目按“能拆出什么”来列——比如一台电机拆出定子、转子、轴承、外壳,每个行项目都要给出拆解数量。随后用 CS80 按物料和用途展开来检查结果。CS80 与日常用的 CS03 不同,它是按用途展开的查看方式,输入物料号、工厂和用途 D 就能看到这棵拆解树长什么样。我刚做这类项目时最常踩的坑是:BOM 建好了,但行项目里的“拆解相关”标识没勾,CS80 展开后只带出一条组件,整个工单的预留数量全是错的,后续 MIGO 过账时差异大得离谱。
拆解 BOM 用途的参数可以这样理解:1 是生产用,2 是维修用,D 专给拆解。如果同一个部件既要在生产工单里装上去,又要在维修时拆下来,我一般会建两个 BOM 用途,而不是在一个 BOM 里混用。原因是拆解场景只关心“可回收的零件”,而生产 BOM 里往往混着焊条、润滑油这类低值易耗品,混用会直接污染拆解工单的成本核算。后台维护 BOM 用途的路径在 SPRO 里找“PP > 物料清单 > 通用数据 > 定义 BOM 用途”,把 D 用途激活即可,不需要额外配授权。还有一个容易忽略的位置是 BOM 行项目里的“拆解”页签,有些版本里要单独勾选“允许拆解”,不然 CS80 展开时会静默跳过。
CS80 展开拆解 BOM 时如果有组件带不出来,先别急着查工单,回到 CS02 里看行项目的“拆解相关”标识。这个字段和生产数量是两回事,它只影响拆解流程。判断标准很简单:拆解工单要发出去的是“从设备上拆下的旧件”,所以 BOM 行项目应当是旧件本身,而不是它的下级原材料。比如拆电机,行项目列“电机总成”,而不是列铜线和硅钢片,否则拆解工单发料时会把生产原材料当成可回收旧件处理,库存和成本全乱。
2.2 回收件物料主数据:质检库存与批次决定拆回后能不能直接用
拆解工单的“产出”是回收件,但回收件不等于全新物料,它必须先做质检、确认可用后才能真正回到库存。所以物料主数据的设置比 BOM 更重要。常见做法是给回收件单独建物料号,用半成品(HALB)甚至特殊物料类型,然后在质量管理视图里开启批次管理。开启批次后,每一批拆回来的旧件都能追溯到来源设备、拆解工单号和拆解日期,这对售后质量追溯是刚需。
回收件入库时不要直接进非限制库存,先让它进质检库存。具体做法有两个:一是在物料主数据的质量视图里维护“检验类型”,拆解收货时系统自动把库存放到质检库存;二是收货时用移动类型 101 配合质检标识,先放在质量检验库存里,检验完成后再用 321 从质检库存转到非限制库存。我一般偏向第二种,因为拆解件的检验经常要等维修车间判级,不是每批都能当天放行,先进检验库存更符合实际节奏。
物料主数据的 MRP 视图里,回收件要特别注意 MRP 类型。建议设成 ND(不参与 MRP),否则拆解工单收货后,系统会把回收件当成可用库存纳入后续计划计算,进而干扰采购请购。这个坑表现得很隐蔽:拆解回来的板卡明明放在质检库里不能动,MRP 却以为可用库存充足,结果采购该买的没买,不该买的买了。回收件物料还需要在“会计视图”里维护标准价,拆解回收入库时按标准价计价,实际拆解成本和标准价之间的差异留在工单里,最后通过 CO 结算走掉。如果标准价为零,物料凭证能过账,但月底物料分类账一跑,差异分配就会出问题。
序列号管理也是拆解回收件的一个大头。如果拆下来的零件要绑定到具体设备上,比如伺服电机带序列号,物料主数据就要维护序列号配置文件(Serial Number Profile)。有了它,MIGO 过账时可以在序列号页签录入拆下设备的序列号,后续维修履历和资产台账就能对上。没配序列号配置文件,又想追溯来源,就只能靠文本备注,这种黑匣子式管理在审计时很难交代。
2.3 工时与标准成本:拆解工单没有标准工时,实际工时也能算
很多顾问第一次接触拆解工单都会问:拆解动作要不要建工艺路线、要不要定标准工时?答案是看你想不想让系统自动算人工成本。如果拆解车间是计件制或者有节拍,可以建一条拆解工艺路线,设工序和标准工时。但我做过的维修项目里,大部分拆解是没有固定节拍的,强行定标准工时的结果是工单差异每个月都很夸张,CO 组天天追着问差异哪来的。
所以常见做法是:拆解工单不设标准工时,靠 CO11N 做实际工时确认,把人工费用直接归集到工单上。CO11N 里确认的是作业类型,后台把作业类型的价格配好,确认的工时量乘以作业单价就是这个工单的人工成本。拆解工单没有标准工时,成本照样能算——这是 SAP 的一个特性,作业类型确认不依赖工艺路线标准值,只依赖控制参数文件里“确认是否必须”。在 PM 订单类型的控制参数里,把作业类型确认设为“允许”而不是“必须”,拆解工单操作员就可以只报一个总工时,不用逐工序报。
如果连实际工时都不报,那就彻底把人工费用当成间接费用处理,订单上只挂材料成本,人工费由车间成本中心统一归集,月底再分摊。这种做法的好处是省事,坏处是拆解工单的成本归集不完整,单台设备的拆解人工看不出来。我的建议是至少报实际工时,代价只是一次 CO11N 录入,换来的却是设备维修成本的可比性。拆解工单没有标准工时不是配置错误,而是取舍——你要的是真实成本,不是按节拍摊出来的理论成本。
还有一类订单,比如退货拆解后直接报废,连回收件都不入库,工单成本就是纯费用。这时候订单类型里的结算规则要指向成本中心或内部订单,不能让成本和资产设备挂钩。判断标准就一条:拆下来的件是否重新形成库存价值,形成则结算到资产或库存,不形成则直接进费用。
3. 创建与下达拆解工单:三种入口、两个状态点与一处预留
3.1 IW31 手工建单:订单类型上的“拆卸”标识才是分水岭
拆解工单最常见的创建入口就是 IW31,你没看错,就是普通 PM 工单的创建事务代码。决定它是“普通维修单”还是“拆解工单”的,是订单类型后台配置里的一个字段——拆卸标识(Dismantling indicator)。在 SPRO 的“工厂维护和客户服务 > 订单类型 > 定义订单类型”里,把某个订单类型(比如 PM02)的拆卸标识勾上,这个订单类型建出来的所有工单都会带拆卸语义。
这个标识一旦勾上,至少影响三处逻辑:第一,工单展开结构时优先用拆解 BOM 用途 D,而不是生产用途;第二,MIGO 过账时允许某些移动类型和序列号逻辑,比如拆解发料后允许对旧件做回收质检;第三,订单类型的默认结算规则可以直接指向资产号或内部订单,省去手工维护。如果没勾拆卸标识,哪怕你手工把组件行打进去,系统也不会按拆解逻辑处理,月底结算时就会发现价值流转是断的。
创建 IW31 拆解工单时,抬头字段要重点看几个:工厂、维修对象类型(设备/功能位置)、设备号(资产号)、订单类型、计划工厂、基本开始/结束日期。设备号建议一定填,因为拆解工单如果不是针对具体设备,MIGO 过账时来源资产就无从谈起。有没有关联设备,直接决定了后续能不能把拆解成本结算到资产。
我在实际项目里一般会这样建议用户:把拆解工单的编号范围单独分段,比如以 10 开头的是拆解工单,以 20 开头的是普通维修工单。这样做不是为了好看,而是方便 MIGO 过账增强里按订单号前缀写逻辑,也方便报表按号段直接筛选。后面第 4 章的增强代码里,就是用订单号段来判断是不是拆解工单的。
创建之后的状态流是 CRTD(已创建)→ REL(已下达)→ TECO(技术完成)。拆解工单在下达前可以改 BOM 行项,下达后系统会生成组件预留。这两个状态点里,REL 是关键分水岭——从 REL 开始,工单的预留会参与 MRP 运算,如果订单类型没做计划相关设置,拆解工单就会惹上采购请购的麻烦,具体见 3.3。
3.2 从销售订单和维修通知联动创建拆解单:SD/PM 单据串联容易断
售后退机是拆解工单的另一大来源。完整的单据串联关系是:SD 销售订单(退货类型,比如 RE)→ 质检通知(QM)或者服务通知(CS)→ 维修订单(PM)→ 拆解工单(PM 拆卸类型)→ MIGO 过账。这串关系里,最容易断的是销售订单项目类别配置界面和通知单转订单的衔接。
销售订单退货行项目的项目类别(Item Category)如果是 RETL 或 RENN,这些类别通常只允许退货接收,不允许再往下走“创建维修订单”的后继功能。想把退货单直接转成拆解工单,需要在 SD 项目类别配置界面里维护“后续订单”相关字段。很多项目配到这里就用标准模板糊弄过去,结果 VA02 里点“后续功能”只有退货交付,没有维修订单。这个配置界面的路径在 SPRO“销售和分销 > 销售 > 销售凭证 > 销售凭证项目 > 分配项目类别”,把返回的销售订单类型对应到 PM 维修通知类型。
从采购到 PS 到销售的主流程大家都很熟,拆解工单是这条主线旁边的一条支线,支线的单据串联往往没人专门配权限。典型翻车现场是:PM 角色有 IW31 权限,SD 角色有 VA02 权限,但“从退货单创建维修通知”这个跨模块功能需要同时具备订单类型、通知类型和后续功能三组权限对象,权限一缺,界面上的按钮就是灰的。排查这类问题用 SUIM 查用户的角色分配,别在 SA38 里一个个翻报表。
如果你用的是 MPS 分析销售订单产生生产工单的逻辑,注意拆解工单不要混进去。MPS 跑出来的生产工单是正向装配单,拆解工单是反向拆卸单,两者的订单类型和 BOM 用途完全不同。混用会导致计划员在 MD07 界面里看到拆解工单的物料需求,误以为有装配订单要投产。我的建议是:拆解工单在创建时就明确挂在 PM 模块,别放到 PP 生产订单类型里。
3.3 下达、预留与 MRP:拆解工单不该触发采购请购的三种配置
拆解工单本质上是“净出库”的订单,理论上不应该因为拆解动作去触发原材料采购。但 SAP 的 MRP 逻辑分不清你是拆还是装,只要工单里有组件预留,而物料库存不足,计划运行时就可能生成采购申请。这个坑特别隐蔽:拆解工单下达后没人动,过两周采购突然收到一张请购单,要买“电机轴承”——而轴承明明是被拆下来待检,不是被消耗掉。
防这个问题的第一道保险,是把拆解工单选用的物料主数据 MRP 类型设为 ND,让回收件不参与 MRP。但注意,ND 只对物料本身有效,如果拆解工单里还挂了一些通用采购件,比如螺丝、垫片,这些物料不可能为拆解单独改成 ND,否则生产工单也用不了它们。所以更通用的做法是管住订单类型。
第二道保险:在 PM 订单类型后台配置里,把“计划相关”相关的标识清空,或者把工单的计划工厂设成不参与 MRP 的工厂。常见做法是对拆解订单类型维护一个独立编号范围,后台将该订单类型的 MRP 相关标识设为“无”。我一般会再加一道料:物料主数据 MRP 视图里的计划策略(Planning Strategy)选 70(按计划生产),不选 10(按预测生产)。70 策略下,系统不轻易根据工单组件产生额外采购建议,更贴合维修车间“拆多少算多少”的玩法。
第三道保险,也是很多老顾问会忽略的:拆解工单下达后会自动创建预留(Reservation),预留数量如果不对,MRP 的运算结果完全跑偏。下达后立刻用 IW32 查看组件预留,核对数量和拆解 BOM 展开结果是否一致。预留数量大于实际回收数量是正常的,因为拆解会有损耗;但如果预留数量小于 BOM 数量,说明展开时丢了行,后面的 MIGO 过账怎么都对不上。
如果你实在不想跟 MRP 缠斗,还有一个替代做法:用库存转储单(311/309)来做拆解件移库。311 不涉及工单、不参与 CO 成本结算,适用于“纯移动、不记成本”的场景。但代价是拆解的人工工时没地方记,结算断链。所以我在方案评审时一般会提醒:311 是简化版的后悔药,能躲开 MRP,也躲开了成本归集,真正要算设备拆解成本的项目还是老老实实走拆解工单。
4. 拆解过账与成本归集:MIGO 移动类型和 KO88 结算规则
4.1 MIGO 拆解过账:用 261/262 发料,回收件按 101 入库
拆解工单的过账和普通工单过账都在 MIGO 里做,但移动类型要按业务目的明确区分。拆解发料,也就是把设备上该拆的旧件从工单库存里“发”出去,用移动类型 261——发料给工单/成本对象;如果拆解计划取消或者发料数量错了,用 262 冲销。回收件重新入库,就是对拆下来的还有利用价值的旧件做系统收货,移动类型 101。
实际项目里,我经常被问到:拆下来的旧件能不能直接 101 收进来?答案是能,但前提是物料主数据里有这个旧件物料号,而且库存地点和质检标识都已维护。否则 MIGO 会报“物料不存在”或者“检验类型未定义”。所以拆解工单的主数据准备那一步,回收件物料号必须在 MM02 里先建好,这一步省不掉。
过账顺序建议是:先把待拆旧件从设备库存 261 发料到拆解工单,再做质检判断,可用件 101 收货进回收仓,不可用废料用 551 报废到废品仓或成本中心。注意不要把 261 和 101 混在同一笔凭证里,除非你用了标准的拆卸过账流程。我在项目里见过一种翻车写法:先把旧件 101 收货回库存,再 261 发料到另外一个工单,两步走完账面上库存没变,实际物料早被拆走了,月底盘库差异全靠猜。
MIGO 过账时要看清参考凭证。拆解工单发料最好“参照订单”操作,也就是 MIGO 里选“A01 收货/发料”,移动类型 261,订单号填拆解工单号,系统会自动带出组件。不要手工敲物料和数量,否则组件预留和物料凭证对不上,工单差异是一笔糊涂账。发料完成后,MIGO 凭证里可以看到以 26 开头的物料凭证类型,抬头文本建议写成拆解工单号,方便后续追溯。
4.2 反向发料与库存转储:拆下来的旧件先过质检批次
拆解件从设备拆下来后,状态是不确定的。我的习惯是宁可麻烦一点,也要让它先过质检:拆解发料 261 之后,回收件先进质检库存,检验完成再用 321 从质检库存转非限制库存。分两步走,好处是月底盘点和财务核算都清清楚楚——质检中的库存是“待判定资产”,不能算可用量。
这里有一个经常被忽略的操作:回收件的质检不是自动触发的,需要在物料主数据的质量视图里维护“检验类型”或者在收货凭证里指定“质检库存”。如果没维护,101 收货时系统直接把库存丢到非限制库存,维修车间还没来得及判级,物料已经可以被其他工单“领用”了。等发现这批旧件质量不行,再往回退库存就非常麻烦。
反向发料这个动作在拆解场景里也有讲究。如果拆解后决定不回收了,比如旧件直接报废,用 551 做报废即可,走“过账取消”会把原始凭证连根抹掉。一旦用了“取消”,拆解工单的历史记录就不完整了,审计时看不到“拆了又废”的过程,这属于典型的“拆解过账翻车现场”。我做项目时会给操作员培训一条铁律:拆解工单的冲销一律用反向移动类型,不用取消功能。取消是后悔药,反向过账是正规业务流程,两者在 CO 结算里的效果完全不同。
库存转储在拆解工单里也有应用场景:不同维修车间共用一个拆解工单,拆下来的旧件要从 A 车间仓库转到 B 车间仓库,这时用 311 做工厂内转储即可。注意 311 不会动工单成本,只是物理位置变化;拆解工单的成本归集靠的是 261 发料和工时确认。这两个移动类型各管一段,别混。
4.3 成本结算:拆解工单标准工时为零,结算到资产还是内部订单
拆解工单的成本来源主要有三块:材料成本(261 发料按物料价格)、人工成本(CO11N 确认工时乘以作业类型单价)、间接费用(通过成本核算单或费用率计提)。月末用 KO88 把工单成本结清,接方类型决定了这笔成本落到哪里。最常见的接方是资产(ANL)、内部订单(ORD)、成本中心(KST)三类。
把拆解成本结算到资产,适用于拆解对象是一台固定资产设备的情况,比如把这台注塑机的电机拆下来装到另一台注塑机上,拆解工单的成本要归集到这台设备的资产号。需要在拆解工单的结算规则里维护接收方类别“资产”,接收方填资产号。如果拆解价值比较大,还可以通过资产的部分报废功能做原值调整,但那是固定资产会计的事,不在拆解工单本身的范围里。
结算到内部订单,适用于拆解是为了某个工程项目或者专项维修预算的情况,比如“一号车间整线大修”立了一个内部订单,所有拆解工单的成本都往这个内部订单上收。这样项目经理能在订单报表里一眼看到整个项目的拆解总成本。内部订单的预算控制也能反过来约束拆解工单的物料领用,超预算时 MIGO 会被卡住,这对控制维修成本很有效。
结算到成本中心,适用于拆解作为车间日常维护活动的情况,成本直接进车间费用。好处是操作最简单,坏处是单台设备的拆解成本看不出来。如果公司考核单台设备维修成本,我不建议全往成本中心扔。
有些人会问:拆解工单没有标准工时,KO88 结算时会不会因为缺作业类型报错?正常不会。KO88 结算的是工单上“已归集的实际成本”,标准工时只影响工单计划成本,实际成本确认走的是 CO11N 的作业类型。结算时如果提示“订单上不存在可结算的成本”,先查订单状态有没有 TECO,再查结算规则是否为空,这两个是最常见的结算失败原因。
MIGO 过账增强在这里可以做一件事:当 261/262 发料发生在拆解工单上时,自动在物料凭证抬头写入“拆解来源”文本,方便财务后续记账时识别。下面这段 ABAP 是挂在 BAdI MB_MIGO_BADI 的经典做法,老版本可用,新版本如果换成新一代过账 BAdI,逻辑可以照搬。
METHOD if_ex_mb_migo_badi~line_modify. DATA: lv_aufnr TYPE aufnr. " 只在拆解工单的发料和冲销里写抬头文本 IF ( is_mkpf-bwart = '261' OR is_mkpf-bwart = '262' ) AND is_mkpf-aufnr IS NOT INITIAL. lv_aufnr = is_mkpf-aufnr. " 约定 10 开头的订单号为拆解工单号段 IF lv_aufnr(2) = '10'. cs_mkpf-bktxt = |拆卸订单 { lv_aufnr } 过账|. ENDIF. ENDIF. ENDMETHOD.这段增强的参数含义:CS_MKPF 是可修改的物料凭证抬头,IS_MKPF 是原始抬头,IS_MSEG 是行项目数据(这里只用了无条件限制)。BWART 是移动类型,AUFNR 是工单号。增强体只改抬头文本,不动会计科目和数量,风险很低。如果要在行项目级别写文本,就得循环 IT_MSEG,按物料分别写入,逻辑会复杂一些。这个增强能不能生效,还取决于 BAdI 的激活和过滤器,上线前务必用测试工单跑一遍 261 过账,确认文本写入成功再批量推广。
5. 拆解工单避坑记录:五条一线翻车配置与解决
5.1 现象:拆解工单 TECO 后,设备原值纹丝不动
拆解完一台设备,订单也技术完成了,结果财务看资产台账,设备原值一分不少,拆下来的旧件也没形成库存价值。最直接的后果是账实不符——实物里电机已经被拆走了,账面上设备还是完整原值。
原因:拆解工单虽然做了 261 发料,但结算规则里没有指向资产号,或者订单类型缺少资产相关配置,导致价值没有流转到固定资产侧。还有一种常见情况是物料分类账没激活,运行 MR21/CKMLCP 时报“物料至物料分类账的连接缺失”,回收件价值进不了分类账,月末差异分配失败。
解决:先查拆解工单的结算规则,确保接收方是资产号而不是空白;再查物料主数据的物料分类账激活状态,把回收件物料在物料分类账里激活并维护标准价。资产与物料分类账两条线都通,拆解价值才会真正落地。这个坑我见过三个项目踩过,共同点是主数据团队和资产会计团队只各管一半。
5.2 现象:CS80 展开拆解 BOM 只带出一条组件
按理说拆解 BOM 和正常 BOM 一样能完整展开,但有时 CS80 只显示一行,工单里的组件也是残缺的。拆解工单下达后,预留数量、MIGO 发料数量全都不对,后面怎么对账都对不上。
原因:BOM 抬头的用途不是 D,或者行项目上的“拆解相关”标识没勾。CS80 默认按普通用途展开,不会展开拆解专用结构;即使 CS80 能展开,工单展开结构时如果系统没走拆解逻辑,也会漏行。
解决:回 CS01/CS02 检查 BOM 抬头用途,确认是 D;逐个行项目确认拆解标识已勾选;最后在 IW32 工单组件页签做一次“结构展开”,确认组件数量完整。这个坑基本是拆解工单新手必踩的,没有捷径,只能靠展开后的组件数量去反推 BOM 质量。
5.3 现象:拆解工单下达失败,提示计划策略 70 相关报错
拆解工单点下达,系统直接报错,提示物料主数据的计划策略没配或者 MRP 组有问题。看起来莫名其妙,因为拆解工单本来就不该参与 MRP。
原因:拆解工单的组件里挂了一些参与 MRP 的物料,下达时系统尝试对组件做可用性检查或预留计算,物料主数据 MRP 视图里计划策略 70 没配完整,MRP 组没有分配,于是下达被卡住。
解决:MM02 里把已领用物料的 MRP 视图补齐,计划策略选 70,MRP 组选一个有效值;同时把拆解订单类型的“计划相关”标识清空。拆解工单“不计划”要明确做在配置里,不要靠现场临时绕过。不然每个拆解工单都要手动去 MRP 相关界面清标记,运维血泪。
5.4 现象:MIGO 过账报“物料需要序列号”或“未定义序列号维护”
拆解工单 261 发料时,MIGO 突然报错,提示物料需要序列号,或者序列号维护界面没有定义。操作员一脸懵,因为拆解工单里没让填序列号。
原因:回收件物料主数据在 S08 视图里维护了序列号配置文件,但拆解工单挂的组件行没有带出序列号,或者序列号配置文件指定了“强制序列号输入”,MIGO 过账时没有录入序列号就报错。设备序列号和物料序列号是两回事,设备序列号在 PM 的设备主档里,物料序列号在物料凭证里,拆解过账要的是后者。
解决:MM02 检查序列号配置文件,把输入方式改成“可选”或“自动生成”;或者 MIGO 过账时在序列号页签手工录入拆下设备的序列号。如果拆解量很大,建议用增强在 261 发料时把设备主档的序列号自动带到物料凭证,省得每次都手敲。序列号一旦启用了强制校验,退货拆解这种批量操作会很痛苦,上线前一定要评估这个价值。
5.5 现象:KO88 结算报“接收方无有效总账科目”或差异无处可去
拆解工单做完 TECO,KO88 一跑就报错,不是接收方类型错,而是接收方对应的总账科目缺失。财务月结卡在这里,拆解成本挂了一整月。
原因:结算规则里接收方选了资产(ANL),但资产号对应的折旧/清算科目没有在后台配置;或者接收方选了内部订单(ORD),内部订单的状态已经关闭。拆解工单常见误用是把拆解废料损失结算到“内部订单”而订单类型模板里预置的是“资产”。
解决:KO88 报错后先去 IW32 打开拆解工单的结算规则,核对接收方类型和对象号;去后台配置接收方类型的科目确定,资产类别要有清算科目,内部订单要有结算科目。拆解工单有废料损失时,建议单独建一个“拆解损耗”成本要素,不要让废料价值直接冲击资产原值,这样财务分析时能看到拆解损耗到底有多少。
6. 验证拆解工单是否闭环:一张差异报表加一次 KO88 结算核对
6.1 用 ABAP 快速核对拆解 BOM 和工单收货
拆解工单做没做透,不要只看状态是否 TECO,要看组件预留数量、MIGO 发料数量、回收件收货数量三者能不能对上。我一般会在 SE38 里跑一个简单报表,把拆解工单的组件表 RESB 和物料凭证表 MSEG 按移动类型 262 汇总做对比:
PARAMETERS: p_aufnr TYPE aufnr. SELECT a~matnr, a~menge, a~meins FROM resb AS a WHERE a~aufnr = p_aufnr AND a~postp = 'L' INTO TABLE @DATA(lt_comp). LOOP AT lt_comp INTO DATA(ls_comp). SELECT SUM( menge ) INTO @DATA(lv_qty) FROM mseg WHERE aufnr = p_aufnr AND bwart = '262' AND matnr = ls_comp-matnr. DATA(lv_diff) = ls_comp-menqe - lv_qty. WRITE: / ls_comp-matnr, ls_comp-menqe, lv_qty, lv_diff. ENDLOOP.这段逻辑里,RESB 是工单组件预留表,POSTP = L 代表订单行项目;MSEG 按工单号和移动类型 262 汇总实际发料量;MENQE 是组件预留数量,MENGE 是汇总发货量。差值不为零的组件,去 MIGO 里查凭证流,看看是漏发料还是多发料。这个报表不用做得很精致,能在一分钟内找出差异行就够了。
6.2 没有结算差异就算做透了:我的收工习惯
数量对完之后,还要跑一次 KO88 的结算模拟,看拆解工单有没有未分配差异。如果数量平了、结算差异为零,这张拆解工单才是真正闭环。这里有两条验证路径:一是用 SE38 跑 CO 结算差异报表,二是直接 KO88 执行,有差异会弹错误清单。
如果权限混乱导致你根本看不到别人的拆解工单,用 SUIM 的好处就出来了。SUIM 里通过“用户与分配”查角色和订单类型的对应关系,不用一个用户一个用户去翻 SU53 日志。权限方面,拆解工单涉及 IW31(创建)、IW32(修改)、MIGO(过账)、KO88(结算),四个事务代码的权限对象都不难查,难的是跨模块角色没有串起来。
我的收工习惯是每周五固定做一次“拆解工单体检”:把本周技术完成的拆解工单拉出来,按上面报表核对数量,再 KO88 模拟结算一次,有差异当周处理,绝不拖到月结。这一个习惯让我少加了不知道多少个关账期的班——拆解工单的差异不会自己消失,越拖越难解释。希望这个办法对你也有用,尤其是手里同时管着十几个维修工单的时候。
本文还有配套的精品资源,点击获取