ARTICLE DETAIL

资讯详情

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

SAP PP按单生产实战:策略组、特殊库存E与成本归集

SAP PP按单生产实战:策略组、特殊库存E与成本归集 SAP PP按单生产这个组合几乎是每个做PP模块的人都绕不开的一关。我最早接触按单生产是给一家做非标设备的客户做实施销售一单一议、图纸跟着订单走、成品库存不能通用财务还要求每一单的成本单独核算。那时候我才真正理解为什么SAP要把按单生产单独拎出来做一套逻辑而不是简单地在按库存生产上加几个字段。SAP PP按单生产说白了就是让需求从销售订单出发一路把采购、生产、库存、成本全部绑死在那一张订单上库存带上销售订单的特殊标识发货也只认对应订单。这篇文章面向的是刚接手按单生产业务的PP顾问、内部关键用户以及需要理解这套逻辑的SD、MM、CO同事。我会把策略组选型、需求传递、特殊库存E、计划订单转生产订单、成本归集和一堆常见报错都拆开讲尽量做到你照着就能配、就能跑、就能排查。1. 按单生产到底解决什么业务问题1.1 从MTS到MTO两种库存逻辑的分水岭按库存生产MTS的逻辑是先造后卖成品先入通用库存销售来了直接从库存发货库存不带任何订单属性谁买都一样。按单生产MTO反过来是先卖后造销售订单本身就是生产的需求来源成品做出来之后直接挂到那张销售订单上库存带特殊的销售订单标识理论上只能发给这张订单的客户。这两种逻辑最本质的差异不在于生产流程而在于库存的归属。我在项目上最直观的感受是MTS模式下你的MD04里看到的是独立需求PIR和通用库存数量对得上就行MTO模式下MD04里看到的是销售订单需求每一条需求后面都跟着具体的订单号和行项目号你不能随便拿A订单的库存去发B订单。这就是为什么非标、定制、单件小批、项目型制造几乎都走MTO因为客户要的就是这批货是给我做的。MTS靠的是预测准不准MTO靠的是订单管理清不清晰。理解了这个前提后面所有的策略组、特殊库存、成本核算逻辑就都顺了它们全部是围绕库存归属到订单这个核心来设计的。如果你拿着MTS的思维去配置MTO大概率会在库存混用、成本串单上栽跟头。1.2 按单生产在SAP里的三条主线我习惯把按单生产拆成三条并行推进的主线配置和排查的时候按这三条线去对思路会清楚很多。第一条是需求线销售订单创建后通过需求类型和需求类别把销售订单需求传递给MRPMRP据此产生计划订单计划订单再转成生产订单。这条线的关键是需求不能丢、不能串。第二条是库存线生产订单一收货成品进的是特殊库存E也就是销售订单库存库存上自动带上销售订单号。发货时通过交货单走601 E从这条库存扣。这条线的关键是库存归属明确。第三条是成本线每张生产订单独立归集材料、人工、制造费用完工后算差异、做结算把成本结到销售订单对应的成本对象上。这条线的关键是一单一算、不串成本。这三条线在系统里是靠科目分配类别E加需求类别串起来的配置时任何一环没配到位都会表现成需求传不过去或者库存进不去E这类问题。所以我在排查按单生产问题时永远先问一句是需求线的问题还是库存线的问题还是成本线的问题。1.3 哪些场景真的该用按单生产不是所有定制都值得上按单生产。我的判断标准是看三个方面库存能不能通用、成本要不要单独核算、客户要不要追溯。如果产品虽然定制但半成品和原材料高度标准化只是最后装配才分客户那更适合用策略50这种最终装配按单的方案把按单的压力压到成品层级半成品还能按库存计划整体库存压力小很多。如果客户明确要求成品库存不能挪用、必须挂在订单上而且财务要按单出成本那就老老实实上策略20的完整按单生产。还有一类是项目型制造单台价值高、周期长这种往往还要结合WBS或内部订单一起管成本按单生产只是其中一层。反过来如果产品其实高度标准化、只是偶尔改个颜色硬上按单生产会给自己找麻烦库存被拆得七零八落、通用件不能共享、计划复杂度飙升。我见过客户为了显得高端全量上MTO结果一年后主动改回MTS加大量的批次管理。选型这一步省下的功夫后面都会加倍还回来。2. 主数据与策略组按单生产的根基2.1 物料主数据MRP视图的五个必填项按单生产能不能跑通八成看物料主数据配得对不对。我一般重点盯MRP1到MRP4这四个视图中的几个字段。MRP1视图里MRP类型一般用PD表示物料需求计划采购类型选F表示自制有生产订单如果是外购件就选E批量确定选EX直接批量或你实际用的批量策略按单生产很多时候用EX最省事一单一批不会产生多余库存。MRP控制者用来做计划权限隔离按单生产建议按产品线或计划员划分清楚。MRP3视图里最关键的是策略组按单生产通常填20或50。策略组决定需求怎么产生、库存怎么归属这个字段错一个数字后面全乱。还要注意消耗模式和可用性检查MTO场景一般不设消耗或少设消耗因为需求是订单驱动的不需要预测来冲。MRP4视图里要看独立需求和相关需求的标识按单生产通常不希望独立需求参与因为它只认销售订单需求。这些字段看着琐碎但每一个都在后面某一环节起作用配置阶段多花十分钟核对胜过上线后花十小时排查。2.2 策略组20与策略组50的选择边界策略组是MTO里最容易被问到的配置。我按实际用到的场景说。策略20是纯按单生产。成品层级直接由销售订单驱动收货进特殊库存E整个流程从销售订单到生产订单再到发货全程绑定。适合单件、小批、完全非标的产品。策略50是最终装配按单。它把按单的点往后压到成品半成品和原材料还是按库存计划。这样半成品可以批量做、库存共享只有最后一层装配才挂销售订单。适合标准化模块加少量定制的行业比如部分工业设备、定制家具。我选择的原则很简单定制发生得越靠前、越个性化就越往策略20走定制只发生在最后一步、前面高度标准就用策略50。这两个策略的差异不只是配置背后是完全不同的库存和成本管理思路选之前一定要和业务、财务一起确认。2.3 需求类型、需求类别与特殊库存E的联动策略组下面挂着需求类型需求类型下面挂着需求类别这条链是需求线的骨架。策略20对应的销售订单需求通常走需求类型KSV或KE这类需求类别里要设置成销售订单需求。需求类别里有个非常关键的配置点账户分配和库存类型要指向销售订单这样系统才会在生产订单收货时把库存打成E。如果这里配成了别的成品收货后进的就是普通库存按单生产就断在这儿了。我踩过一次这个坑客户改需求类别的时候顺手把账户分配改了结果生产订单收货后库存变成非限制库存发货时找不到E库存整条链报错。查了大半天才发现是需求类别的配置被人动过。从那以后我养成一个习惯上线前一定用SE16N或SE11把需求类别、需求类型、策略组的配置逐层截图存档出问题时才好做对比。这三层配置是联动的动一层就要回头验证另外两层。2.4 科目分配类别为什么必须是E科目分配类别E代表销售订单它在生产订单上直接体现为订单里那几行销售订单号和行项目号。生产订单建好之后你打开订单头部就能看到销售订单信息这就是科目分配类别在起作用。它的意义在于收货时系统知道这批货该进哪个订单的库存发货时也知道该从哪个订单的库存扣成本归集时还能把生产订单的成本对应到销售订单这个成本对象上。配置环节科目分配类别E一般系统自带不需要你新建但你要确保生产订单在创建时正确带出了它。带不出来的情况通常是物料主数据或者需求类别那一环没配好。我排查这类问题时习惯先看生产订单头部的科目分配类别是不是E不是E就回头查主数据和需求类别是E但库存还进不去就查收货时的移动类型和库存类型。这个排查顺序能帮你快速定位到底是哪一层出了问题。3. 从销售订单到生产订单的完整链路实操3.1 销售订单创建与需求传递VA01创建销售订单行项目里录入物料、数量、交货日期。按单生产的物料在保存销售订单后需求就自动传到MRP了你不用手工再去建独立需求。需求传递是否成功最直接的验证方法是MD04看这个物料里面应该能看到一条带销售订单号的客户订单需求需求类别显示为销售订单需求。如果MD04里什么都没有先别急着怀疑MRP先确认销售订单行项目的需求类型和需求类别是不是正确带出来了销售订单本身是不是已经保存并释放。这一步还有个常见的坑销售订单创建时改了物料或需求类型导致需求类别没带对。我一般会要求关键用户在销售订单里核对一下计划行类目按单生产对应的计划行类目通常是CP或类似的类型。这个小字段很多人不注意但它直接决定了需求往哪走、要不要做可用性检查。把这一步核对清楚后面MRP怎么跑都不会跑偏。3.2 MRP运行与计划订单的生成逻辑需求传过来之后跑MRP。单个物料多层展开可以用MD02单层用MD03全厂跑用MD01后台跑用MDBT。按单生产的需求是销售订单驱动的所以MRP会据此产生计划订单计划订单上同样带着销售订单号。跑完MRP之后我强烈建议用MD04逐单确认重点看三件事需求有没有被覆盖、计划订单的数量和日期对不对、有没有异常的例外消息。MTO里最常见的例外消息是新订单的提前期不足说明交货期比生产周期短这时候要么调交货期要么压缩计划要么把自制改成外购得跟业务确认。批量确定在这里影响很大。按单生产用直接批量EX时每张销售订单需求对应一张计划订单数量干净如果用其他批量策略可能把多张订单的需求合并成一张计划订单收货时库存归属就会变复杂。这也是我前面强调MTO优先用直接批量的原因。计划订单的日期由需求和提前期倒排提前期主数据不准计划订单的日期就会失真所以主数据里的自制生产时间一定要让生产部门确认过。3.3 计划订单转生产订单的几种姿势计划订单转生产订单可以用COR8单个转也可以用CO41集中转或者在MD04里选中计划订单点转换按钮。转换时系统会带出物料、数量、日期、销售订单信息、BOM组件和工艺路线。转换过程中最常见的报错是无法确定BOM或无法确定工艺路线。这通常是BOM或工艺路线的有效期、用途、状态有问题或者是物料的BOM选择参数没配好。我的处理习惯是先看物料主数据里的BOM用途和生产版本再看BOM本身的有效期和状态最后确认工厂、批次、替代物料这些细节。转换成功后生产订单头部应该能看到销售订单号和行项目号这是MTO转换成功的标志。这时候最好再进MD04看一次计划订单消失了取而代之的是一张带销售订单号的生产订单需求线就接上了。如果转换后销售订单号没带过来回头查科目分配类别八成是这里没配成E。3.4 车间执行领料、报工、入库的分寸生产订单下达之后进入执行阶段流程和普通生产订单类似但每一笔移动都带上了特殊的订单属性。领料一般用MB1A或MIGO移动类型261加上特殊库存标识E表示这些组件是投到这张销售订单对应的生产订单里的。收货用MB31或MIGO移动类型101加E成品进的就是销售订单库存E。报工用CO11N或CO15确认工时和产出数量。这里有个实操心得MTO的组件投放一定要按订单实际用量走不能因为图方便先发到通用库存再转。因为一旦组件发到通用库存成本就归集不到那张生产订单上后面的差异分析全是错的。我在项目上反复跟车间强调261发货单上必须体现生产订单号物料数量按订单BOM来超领要走单独的审批别把MTO当MTS做。报工时如果产出数量和收货数量不一致会引起订单状态和库存的偏差所以确认和收货的节奏要配合好。有的客户习惯先全报工再慢慢收货结果订单已经TECO了货还没入完发货时库存不够。这种节奏问题不是系统错误但会让整条链看起来卡住了。4. 特殊库存E按单生产的灵魂4.1 E库存是怎么产生的特殊库存E就是销售订单库存它的产生只有一条路径生产订单收货时带上特殊库存标识E系统按生产订单上的销售订单信息把成品归到对应销售订单的库存名下。在MMBE或MB52里看这类库存你会看到库存不是挂在通用的非限制使用库存下而是挂在特殊库存 销售订单这个分类下并且明确列出销售订单号和行项目。同一个物料如果同时给多个订单生产你会在同一张库存概览里看到多个E库存条目每个条目对应一张销售订单。这正是MTO的核心价值库存不是一堆数字而是一组带着订单归属的明细。看得清每一批货是谁的发货、盘点、成本都对得上。我在给客户做方案汇报时最喜欢打开MB52展示这种一条库存一个客户的效果业务看了立刻就理解MTO和MTS的差别了。4.2 E库存的收、发、退、转E库存的收发退转关键在于移动类型后面那个特殊库存标识标识不对进出的就不是E库存。收货走101加E成品进销售订单库存。发货流程是先根据销售订单创建交货单用VL01N然后发货过账移动类型601加E从销售订单库存里扣。退货的话用反向的移动类型配合E标识。库存转移如果确实需要也要用带E的特殊移动类型普通转移会把E库存转成通用库存等于把订单属性丢了。我要特别提醒一点E库存不能随便用MB1B往普通库存转。有些用户为了清库存直接把E库存转成非限制库存结果发货时按订单找不到库存成本和库存全乱。如果确实有订单取消、库存需要释放的场景正确做法是走订单变更或者专门的库存处理流程而不是粗暴地做库存转移。这个红线我在培训时一定要讲到。4.3 E库存常见坑与盘点差异处理E库存最常出问题的场景有三个。第一个是订单取消或变更后已经入的E库存还挂着成了呆滞。这时候要结合业务决定是退货、返工还是转成其他订单的库存每种处理的账务影响都不一样。第二个是批次管理和E库存叠加。MTO加批次管理时收货时既要带销售订单标识又要带批次盘点时也要按这个维度盘。如果不区分很容易出现库存数量对、归属对不上的情况。第三个是盘点差异。E库存盘点时差异不是简单调整数量还要考虑归属哪张订单调整后要不要同步更新订单状态。我建议客户在盘点方案里单独给E库存设一类和通用库存分开盘、分开处理避免互相影响。盘点前最好先冻结相关的库存移动用类似盘点冻结的机制确保盘点期间E库存不会因为收货或发货而变化。这个细节很多资料不讲但实际项目上不做盘点结果基本没意义。5. 成本归集、结算与差异分析5.1 生产订单的成本收集过程MTO的成本线是围绕每张生产订单转的。订单创建时按物料的标准成本或计划成本估算一个目标成本执行过程中261发货的材料成本、报工确认的工时和费用、分摊的制造费用都陆续归集到这张订单上。到收货时贷方按成品的标准价或订单价冲减形成材料差异或在制。这条逻辑和普通生产订单一样但MTO的特殊之处在于每张订单背后是一张销售订单所以成本天然就是按单核算的。财务在做订单级毛利分析时可以直接把生产订单的成本和对应销售订单的收入挂钩。我建议实施时就把订单成本分析的报表配置好比如用COOIS或订单信息系统按销售订单号汇总成本。这样业务和财务能随时看到每张订单的料工费构成而不是等到月末结算才发现某张订单亏了。5.2 结算、差异与CO88/KO88月末结算流程一般是先做差异计算再跑结算把生产订单的差异结转到对应的成本对象MTO场景下通常结到销售订单或对应的成本收集对象上也可能走COPA做获利分析。差异计算提前要说清楚差异类别是材料用量差异、价格差异还是工时差异分清楚了才能让业务改进。结算时如果出现结算规则未维护或者接收方错误基本是订单的成本对象没配好或者结算规则没建。这里要提醒的是热词里提到的KO88是内部订单的结算生产订单的结算走CO88。很多刚接触的人会把两者搞混。实际项目里如果MTO结合了内部订单或WBS做成本收集那就可能两种结算都用得上具体看你的成本对象设计。结算之前一定要确保订单已经TECO或关闭否则结算会报错或者数据不准。5.3 按单生产对财务和管理的影响MTO对财务最直接的影响是一单一算每张销售订单都有一份独立的成本账毛利率能精确到订单。这对定价策略、客户盈利分析价值很大但也意味着财务的工作量和数据要求更高。对管理的影响是计划难度上升。因为不能靠共享库存平滑生产波动订单来了才有活订单少了产能就闲置排产的柔性要求高。所以MTO企业往往更依赖准确的产能数据和交期承诺计划员的能力要求比MTS高。还有一个隐性成本因为库存不能通用一旦订单取消相关的在制和成品库存处理起来很麻烦损失也更直接。所以MTO企业的订单评审和变更管理要比MTS严得多这两个流程不做好财务和库存的问题会源源不断。6. 需求追溯与可用性检查工具6.1 MD04与MD07看清库存和需求MD04是单个物料的库存需求清单按日期顺序列出所有需求和供给是MTO排查的第一现场。你要学会看它里面的需求元素带不带销售订单号计划订单是不是已经转成生产订单有没有异常例外消息。MD07是集中版的库存需求清单可以一次看多个物料。对于物料多、订单多的MTO场景MD07比一个个跑MD04效率高很多。我习惯让关键用户每天用MD07扫一遍异常重点关注缺料和延迟的需求。这两个事务的用法其实就是把需求线可视化。MTO的需求线是订单驱动的所以看清单的时候眼睛要盯着销售订单号一条需求从销售订单到计划订单再到生产订单订单号应该一路跟着。哪天订单号在某一步断了问题就出在那一步。6.2 需求追溯Pegged Requirements怎么用需求追溯解决的是这个需求到底是从哪来的、又供给了谁。MTO里需求层层往下传追溯能帮你看清销售订单需求如何驱动了计划订单、采购申请、生产订单以及成品库存最终对应哪张销售订单。排查库存归属错这类问题时需求追溯特别好用。你能顺着链条看到某张生产订单是为哪张销售订单服务的如果发现串了就能定位到是哪一步的需求传递出了问题。我一般会在以下几种情况用需求追溯客户投诉货不对单、财务发现成本串了、计划员搞不清某批库存该给谁。它不是什么日常操作但关键时刻能帮你把整条链拉直。至于热词里提到的MDVP这类评估事务可以把它当作需求追溯和MRP清单评估的辅助入口核心思路还是顺着订单号往上下游看。6.3 可用性检查与ATP别让承诺落空按单生产里可用性检查ATP决定销售订单能不能给出可信的交期确认。销售订单保存时系统做可用性检查物料主数据里要设置可用性检查组和检查规则比如01/A这类组合。CO09是可用性概览能看到某个物料的供需情况和可承诺量。MTO场景下ATP的逻辑更复杂因为它要考虑的是这个订单自己的需求和供给而不是通用库存。如果配置不对可能出现通用库存明明有货但ATP说没货的情况反过来也可能给了一个根本无法满足的交期。我的建议是MTO的可用性检查规则要和策略组、需求类别一起设计别分开配。承诺交期一旦给出去就是客户承诺ATP没配好后面交不出货整条供应链都跟着背锅。7. 常见问题与排查速查7.1 需求传不过去或传错方向现象销售订单保存了但MD04里看不到需求。排查顺序先看销售订单行项目的需求类型和需求类别再看物料主数据的策略组最后看销售订单是否已保存释放。多数情况是需求类别或策略组配错导致需求没往MRP传。现象需求传过来了但卖的是通用库存不是E库存。排查查需求类别里的库存类型和账户分配是不是指向销售订单。这里配错库存归属就断。7.2 计划订单转不了生产订单现象COR8或CO41转换时报无法确定BOM或无法确定工艺路线。排查查BOM和工艺路线的有效期、状态、用途查物料的生产版本查工厂和BOM选择参数。这类问题九成出在主数据有效期或状态上。现象转换成功但生产订单上没带销售订单号。排查查科目分配类别是不是E查需求类别和主数据。科目分配类别不对按单生产的属性就丢了。7.3 收发货对不上、E库存异常现象生产订单收货后找不到E库存。排查看收货移动类型是不是101加E看生产订单的科目分配类别看需求类别库存类型。现象发货时提示E库存不足但仓库明明有货。排查确认那些货是不是挂在别的订单名下用MB52按销售订单维度看库存。MTO里有货但不能用是正常现象不是系统错误。7.4 常见问题速查表现象最可能的原因优先排查对象销售订单需求不进MD04需求类别或策略组配错物料MRP3视图、需求类别配置成品收货进普通库存科目分配类别不是E需求类别、生产订单头部计划订单转生产订单报错BOM或工艺路线问题主数据有效期、状态、生产版本发货找不到E库存库存挂在其他订单名下MB52按销售订单查看成本串单需求线或科目分配错生产订单销售订单信息、结算规则交期承诺不准ATP配置与策略不匹配可用性检查组、检查规则这张表是我在项目上用得最多的遇到问题先对号入座能省下大量翻文档的时间。但要记住表里给的是方向具体还得回到配置和主数据去验证。8. 上线落地与个人经验8.1 配置和表结构的对照清单做MTO实施我建议把配置和后台表对照着整理一份清单出问题时能快速定位。需求类型、需求类别、策略组的配置可以用SE16N查对应的配置表生产订单和销售订单的关联主要看AUFK和AFPOAUFK里有销售订单号和行项目AFPO里也有对应字段物料凭证看AUFM它能反映生产订单的收货和发货情况销售订单本身看VBAP和VBEP。如果你想快速验证某张生产订单是为哪张销售订单服务的可以用一段简单的ABAP查询SELECT a~aufnr a~kdaue a~aufart p~matnr p~gamng p~meins INTO TABLE DATA(lt_ord) FROM aufk AS a INNER JOIN afpo AS p ON a~aufnr p~aufnr WHERE a~kdaue lv_vbeln.把销售订单号传进去就能拉出对应的生产订单清单。这段查询在排查串单、核对归属时非常实用比一个个点开订单看快得多。我不建议在生产系统直接跑可以在测试环境或通过报表平台做避免影响性能。8.2 数据准备阶段最该花的功夫MTO上线数据准备的优先级我排下来是BOM和工艺路线第一物料主数据第二提前期和批量参数第三可用性检查配置第四。BOM和工艺路线不准生产订单就建不出来或者建出来是错的物料主数据的策略组、需求类别配错需求线就断提前期不准计划订单的日期就是假的交期承诺全不可信。我见过项目上游第一天就在教用户点按钮结果主数据一塌糊涂跑起来处处报错返工成本极高。我的做法是上线前做一个端到端验证脚本从销售订单创建开始一路走到发货和成本结算每一步的预期结果都写清楚逐单验证。跑通三到五张完整的订单再让关键用户自己独立跑一遍才算真正具备上线条件。8.3 踩过坑之后的一些个人体会最后聊几句实在的。按单生产这套逻辑配置本身不难难的是业务和系统的一致性。系统是按订单驱动、一单一清设计的如果业务还是抱着库存通用、先做后补的习惯系统一定会别扭。我在实际项目里最深的体会是三点。第一MTO的核心不是那几个事务代码而是需求线和库存线的闭环任何时候眼睛都要盯着销售订单号。第二特殊库存E是红线不能为了图方便随意转成通用库存这个规矩要在培训阶段就立起来。第三上线前的主数据核对和端到端验证花再多时间都不亏因为按单生产的问题一旦发生往往是库存、成本、交期一起出问题排查成本远高于预防成本。这套东西跑顺之后你会发现MTO其实非常清爽每张订单的进度、库存、成本一目了然业务和财务对账也简单。真正麻烦的从来不是系统而是有没有把业务规则想清楚、把数据准备好。
返回列表