
1. 结果分析是给谁算账的——先搞懂KKA1/KKA2/KKA3的定位1.1 一张月末未完工的订单会计到底想要什么做FICO顾问的应该都有这种经历项目上线后的第一个月结总账会计盯着利润表问为什么这个月成本比收入还高是不是凭证做错了。排查下来凭证没问题问题出在成本对象上——一张非标设备的销售订单合同额100万生产周期六个月成本每个月都在发生但按合同约定要验收合格后才一次性开票。于是前五个月的利润表上只有成本没有收入每个月都在巨亏最后开票那个月突然爆出一大笔利润。这显然是收入成本不匹配。生产订单的场景也类似一张内部工单投料、报工发生了大几十万成本产品还没完工入库这些成本如果全部进当期损益这个月的成本会异常虚高毛利率完全没法看。SAP CO的结果分析Results Analysis以下简称RA解决的就是这个问题。它的本质是在月末结账前对未完工的成本对象做一次应计调整把收入和成本按完工进度摆到正确的期间里要么确认一部分应计收入要么把一部分成本资本化为在制品资产。结果分析算出来的是该确认多少至于怎么在总账上挂科目由后面的KO88结算负责过账。1.2 三种结果分析对象的边界生产订单、项目、销售订单SAP里结果分析虽然引擎统一但按成本对象分了三类分别对应三个事务代码KKA1单个内部订单/生产订单的结果分析按订单号直接执行跑完后能看到这张订单的行项目结果。KKA2项目结果分析针对WBS元素、网络等PS模块对象主要用在项目型制造和工程类项目。KKA3销售订单结果分析按销售订单行项目执行是带收入的成本对象最常用的单对象分析入口。这三个事务代码本质上是单对象结果分析执行器输入的维度不同但背后调用的是同一套结果分析计算逻辑。很多顾问容易把它们当成普通报表来用实际上运行后它们会直接在当前期间内生成结果分析行项目写进底表为后续结算做准备。还要区分一个概念KKA1/KKA2/KKA3算出来的是金额KO88过账的才是会计凭证。两者的关系打个比方KKA系列是称重KO88是装车。称重称错了装车装得再快也是白搭。1.3 结果分析、在制品、收入确认三者的关系不少新人以为结果分析就是在制品计算其实在制品只是结果分析输出的形态之一。结果分析最终会输出三类行项目收入类确认未开票收入/应计收入主要出现在销售订单和项目型成本对象上成本类按完工进度确认已实现成本在制品/准备金类尚未确认的差额要么资本化为WIP资产要么计提为准备金负债。以实际成本法跑生产订单输出的是在制品以成本收益比法跑销售订单输出的是应计收入和利润准备金。两者形态不一样但底层是同一套结果分析引擎在算。理解了这一点后面看评估方法就顺了。2. 评估方法全家桶六大方法分三派2.1 评估方法在哪里定义评估方法Valuation Method不是写死在程序里的而是在后台配置中指定。定义路径是IMG → Controlling → Product Cost Controlling → Cost Object Controlling → Results Analysis → Define Valuation Methods事务代码OKG8打开以后能看到SAP预置的一套标准方法。如果把常见方法归归类大致能分成三个派别成本驱动派、收入驱动派、无收入派。选哪种方法直接决定了结果分析引擎是按实际成本投入进度来算还是按开票收入进度来算又或者根本不碰收入只算资产。2.2 成本驱动派成本收益比法与完工百分比法成本收益比法Cost-Based Method是销售订单结果分析最常用的方法。核心思路是用成本投入进度替代完工进度完工率 实际成本 ÷ 计划成本然后用这个完工率去乘计划收入得到应确认收入成本侧则直接按实际发生额确认为当期成本。这个方法的隐含假设是成本投入和项目进度成正比花费了50%的计划成本就相当于完成了50%的项目。完工百分比法Percentage of Completion Method简称POC法的逻辑和成本收益比法类似差别在于成本侧不是直接按实际成本确认而是也按完工率从计划成本里推算出炉。也就是说收入和成本都按完工率来确认。2.3 收入驱动派销售成本法Sales Revenue Method销售成本法是完全相反的一条路线完工率 实际收入 ÷ 计划收入。收入按实际开票/确认的收入进损益成本则按收入进度从在制品中结转出来。这里有个容易绕晕的点销售成本法既然叫销售成本法但它的计算核心反而是收入。名字里的销售成本指的是它要去推算本期应该确认多少销售成本。这一派还有一个变体叫销售成本百分比法Percentage of Sales Revenue Method比销售成本法更精细适合收入凭据明确的长期合同但日常项目里用得不算多。2.4 只算在制品不算利润实际成本法与期间成本法实际成本法Actual Costs Method是生产订单的标准配置。它的逻辑极其简单不碰收入不碰利润只做一件事——把未完工订单上的实际成本扣除已结算金额资本化为在制品。订单一旦被标记为技术完成TECO或交货DLV就不再计算在制品剩余成本全部结算为差异。期间成本法Period-Based Method更简单每个期间的实际成本直接进当期损益不资本化、不提准备金。适合维修工单这类不需要在制品核算的费用性订单。2.5 方法选型的业务场景对照成本对象类型推荐评估方法主要输出内部生产订单实际成本法在制品、完工差异带收入的销售订单按单生产成本收益比法应计收入、利润准备金长期项目/工程合同销售成本法或POC法按进度确认收入、成本维修工单/费用性订单期间成本法或不启用RA无在制品直接进损益选型时还有一个关键判断标准这个成本对象有没有收入。有收入才能走成本收益比法或销售成本法没有收入的内部工单老老实实用实际成本法。3. 算清楚账成本收益比法与销售成本法的完整计算推演3.1 成本收益比法手工推演光讲概念没感觉我用一组数字完整推演一遍。假设一张销售订单计划收入10,000计划成本8,000。本月实际成本发生4,000实际开票收入0。第一步算完工率 完工率 实际成本4,000 ÷ 计划成本8,000 50%第二步算应确认收入 应确认收入 完工率 × 计划收入 50% × 10,000 5,000第三步算应确认成本 成本收益比法下应确认成本 实际成本 4,000第四步算利润准备金 利润准备金 应确认收入5,000 - 应确认成本4,000 1,000结果分析行项目就是三条收入5,000应计收入不是开票收入成本4,000实际发生成本确认为已实现成本准备金1,000未实现利润准备金这个准备金不是坏账准备它是推迟确认的利润。按完工进度来看这个项目已经有1,000的利润但因为还没开票收款SAP先把这笔利润放在负债端等项目真正开票时再释放出来。下个月继续发生成本3,000累计实际成本7,000完工率87.5%应确认收入8,750利润准备金1,750。上期已经确认过5,000收入和1,000准备金所以本期补确认3,750收入补提750准备金。这就是结果分析按月滚动重算的机制每个期间重新算一遍累计数减去以前期间已经过账的金额剩下的才是本期要过账的净值。3.2 销售成本法手工推演同一张订单换个场景计划收入10,000计划成本8,000本月实际开票收入5,000实际成本5,000。第一步算完工率 完工率 实际收入5,000 ÷ 计划收入10,000 50%第二步算应确认收入 销售收入法下应确认收入 实际开票收入 5,000第三步算应确认成本 应确认成本 完工率 × 计划成本 50% × 8,000 4,000第四步算在制品 实际成本5,000 - 应确认成本4,000 1,000这里就出现了在制品。为什么在销售收入法下会出现在制品因为按收入进度来看项目只完成了50%理论上只应该消耗计划成本的50%4,000但实际已经消耗了5,000说明有一部分成本投入还没被收入进度覆盖这1,000先资本化放进资产端。下个月如果开票收入又确认5,000累计实际收入10,000完工率100%应确认成本 8,000。上期已确认成本4,000本期补确认4,000同时把在制品1,000冲销为零。3.3 同组数据两种方法下的损益影响对比把两个推演放在一起看区别一目了然对比项成本收益比法销售成本法完工率依据实际成本÷计划成本实际收入÷计划收入收入确认方式按完工率推算按实际开票收入成本确认方式按实际发生额按完工率推算差额去向利润准备金在制品/准备金适合场景开票时点靠后、成本持续发生按里程碑开票、收入凭据明确从损益角度看成本收益比法更强调收入按进度确认解决的是成本发生了但收入还没开票的问题销售成本法更强调成本按收入进度匹配解决的是收入已确认但成本归集不均衡的问题。3.4 期末怎么过账WIP、准备金、收入调整科目计算完成以后KO88结算会按照行标识和成本要素的配置把行项目过到总账科目。标准的科目方向如下在制品资本化 借在制品存货类科目 贷成本调整科目损益类准备金计提 借收入调整/成本调整损益类 贷准备金负债类未开票收入确认 借收入调整科目资产负债调整类 贷销售收入科目损益类已确认成本 借销售成本科目损益类 贷成本调整科目损益类这些科目的借贷方向完全由OKG7里的成本要素配置决定项目之间的差异主要就在行标识与成本要素的映射关系上。4. 配置链路上容易被忽略的四个节点4.1 评估方法下挂在结果分析版本上不少人配置结果分析时只记得定义评估方法却忘了方法和版本的挂接关系。完整的配置链路是这样的OKG8定义评估方法 → OKG4定义结果分析版本RA Version→ 结果分析版本中指定评估方法 → 成本对象订单类型/销售订单类型分配结果分析版本。所以一张订单最终用哪种评估方法取决于它挂的结果分析版本而不是直接在订单上写方法名。生产订单的标准配置通常是RA版本0搭配实际成本法销售订单的RA版本一般也是版本0但评估方法会改成成本收益比法或销售成本法。4.2 行标识与成本要素映射结果分析计算完生成的每一行金额都要有对应的行标识Line ID和成本要素否则KO88过账时直接报错。行标识在OKG9里定义比较常见的有1收入Revenue2成本Costs3资本化成本Capitalized Costs在制品4准备金ReserveOKG7里再把这些行标识挂到具体的初级成本要素上。不同公司用的科目不一样有的用生产成本差异科目有的用收入调整科目没有统一标准但每个行标识最终必须能映射到一个有效成本要素。4.3 订单类型必须激活结果分析标志配置层面的另一个高频坑结果分析方法和版本都配好了但订单类型里没有勾选结果分析标志导致月底KKAO检查时订单根本不参与计算。生产订单类型在OPPG/OPPH里的结果分析页签勾选销售订单类型在VOV8里设置。更隐蔽的是销售订单除了订单类型行项目类别也要激活结果分析。经常有人只检查了订单类型忽略了行项目类别结果销售订单一直跑不出结果分析行项目。4.4 计划成本与计划收入算完工率的种子不管用哪种进度类评估方法完工率的分母都是计划值。没有计划值结果分析就是无源之水。生产订单如果没有做成本估算CK11N/CK40N计划成本为空完工率要么是无穷大要么是零算出来的结果完全没法用。销售订单还需要维护计划收入。很多项目把合同金额记录在外部系统却忘了在销售订单行项目上维护计划收入导致应确认收入永远算不出来。上线前一定要和业务确认哪些订单必须做成本估算计划收入在哪个单据里维护、谁负责维护、什么时点维护。这块职责没有理清结果分析跑出来的数字就没有说服力。5. KKA1/KKA3实操与月度循环的常见坑5.1 单张订单的结果分析怎么看KKA1打开后输入订单编号、结果分析版本默认0、会计年度和期间回车就能看到这张订单的结果分析行项目列表。每一行包含行标识、金额、累计金额、已过账金额差异就是本期需要结算的金额。KKA2输入WBS元素或网络KKA3输入销售订单行项目操作逻辑一致。这三个事务代码最大的价值在于月末批量运行前抽查十几张典型订单验证取数和计算逻辑是否正确。尤其是那些本月成本发生额大但收入为0的销售订单以及接近完工但还没TECO的生产订单这两类订单最容易在结果分析上出问题。5.2 后台批量执行与程序对应关系月末几百上千张订单不可能一张张执行KKA1/KKA2/KKA3。批量执行的三个入口是KKAO订单结果分析面向生产/内部订单KKAP项目结果分析面向WBS/网络KKAS销售订单结果分析。这三个事务代码可以带变式传到后台跑也可以直接放在结账流程里作为后台作业步骤。实际项目中更推荐用后台作业方式把结果分析、CO凭证汇总、KO88结算串成一条链减少人工干预。后台作业跑完以后一定要检查日志确认有没有红字报错或未被分析的订单。常见的问题是变式里的选择条件太窄导致某些订单漏算。5.3 结果分析结果怎么检查结果分析跑完光看订单上有没有行项目还不够至少要做三个动作一是核对底表KKBL按订单、期间、行标识查看汇总金额确认没有遗漏的成本对象 二是检查CO凭证COEP/COVP里结果分析自动产生的冲销和重估分录是否成对出现 三是模拟KO88结算检查结果分析行项目过账到总账是否有科目缺失或金额不平。特别是第二点结果分析按月滚动重算每个月会自动冲销上一期的结果分析行项目再重新生成。如果你在CO凭证里看到只有新生成没有冲销或者冲销金额对不上那基本可以断定上期有手工调整过的痕迹。5.4 五个高频报错与解决思路结合项目上的实际经验下面这五个问题出现频率最高写出来供大家排查时参考。第一个是**没有为结果分析版本分配成本要素**。基本是OKG7没配好或者配置的成本要素被误设成了辅助成本要素。把成本要素改成初级成本要素就好。第二个是**订单未找到计划成本/计划收入**。典型原因是没有运行成本估算或者销售订单计划收入没维护。解决办法不是改程序而是补计划数据然后重新跑结果分析。第三个是**已交货订单仍产生在制品**。排查订单状态如果销售订单已经DLV但生产订单还没TECO需要检查状态配置文件确保完工状态对应的结算规则正确。SAP里对DLV/TECO订单不计算在制品是一条硬逻辑如果还在算说明状态设置有问题。第四个是**结果分析行项目大量重复**。往往是因为同一天重复跑KKAO虽然系统会自动冲销上一批结果分析再重算但检查不及时会造成CO凭证积压。建议批量运行后检查日志确认每个成本对象只处理了一次。第五个是**上期WIP没冲销干净**。结果分析是按累计数重算的理论上会自动冲销上期但如果上期是手工在KO88里做过冲销或用工具改过在制品就会遗留余额。遇到这种情况只能逐个期间去核对KKBL找到残留金额的源头再处理。再补充一个我项目上反复强调的实操建议结果分析虽然可以后台自动跑但绝不是跑了就行的黑盒。上线初期建议连续三个月抽查同一批代表性订单把手工推算的完工率、应确认收入与系统输出对齐一遍确认配置没有跑偏。等模式稳定了再逐步减少抽查范围。至于KKA1/KKA2/KKA3这三个代码日常用得最多的是KKA1和KKA3遇到跨公司销售、退货业务、部分开票等复杂场景时结果分析的逻辑会变得很绕建议遇到具体问题时先手工按完工率推一遍再和系统行项目比对基本都能快速定位问题出在数据还是配置上。