SAP CO作业类型计价:43类次级成本要素与KSPI计划价格链路
2026/9/17 21:13:37 网站建设 项目流程

简介:这是一份面向SAP FICO顾问、成本会计及CO模块初学者的实操型学习文档,聚焦成本中心会计中作业类型(Activity Types)的管理与配置,帮助读者理清成本归集、分摊与作业成本计算的核心逻辑。文档围绕type43次级成本要素(KA06)、作业类型(KL01)、功能范围、成本中心组PROD等对象的创建过程展开,并以生产成本中心成本解决方案为案例,串联成本预算、作业计划、成本控制与差异分析流程。其中对作业类型1至4的分类、计划价格标志与实际价格标志、KP26与KSPI、KSII等事务码的取价规则均有细致说明,也讨论了以新建作业类型或成本计算表实现生产间接费用的两种思路,适合对照系统逐步演练。资源包为1个docx文档,共216KB,篇幅紧凑方便随时查阅。目前已有160人学习浏览,适合需要补齐CO配置细节、梳理作业分摊与差异分析思路的顾问与财务人员参考。

1. 一张 43 类次级成本要素,决定了作业类型能不能被算出来

一个 Plant 下面挂两个工作中心 ZSTWC1、ZSTWC2,分别映射到生产成本中心 ZTCCTR1、ZTCCTR2,再收进成本中心组 PROD,作业类型只留 LAB 和 MAC 两个。这套结构小到能画在便签纸上,但它把 SAP CO 里最容易被做反的一件事暴露得很干净:多数人把作业类型当"工时代码"来建,建完发现 KSPI 跑不出价格,或者价格出来了,月底工单吸收的成本跟车间自己的报表对不上。

作业类型的真实身份是成本中心对外输出服务的计价器。KP26 往里灌计划量,KP06 往里灌计划费用,KSPI 按价格标志把两者相除写成计划价格,生产工单报工时再按这个价格把成本从成本中心吸到工单上。谁只走 KL01 而漏了 KA06,谁就会在作业分摊那一步卡住——因为 43 类次级成本要素才是承载作业价值的那个科目。后面几章按"建主数据→灌计划→算价格→分费用→重估"这条线走一遍,每一步都给到 Tcode、参数和失败时的观察点。

2. KA06 与 KL01 的参数组合:作业类型靠什么被算出来

2.1 43 类次级成本要素是前置条件

SAP 的成本要素按用途分类,11/12 走初级成本要素(对应 FI 总账科目),21/22 走结算,43 专用于作业分摊和内部作业结算。作业类型要能把自己的价值传给工单,必须绑定一个 43 类次级成本要素,这就是 KA06 存在的理由。建的时候有两个字段值得停一下:Functional Area 和 default acct assign。前者让次级成本要素也带上功能范围维度,跟 FS00 里给总账科目定义的功能范围走同一套取值顺序;后者给成本要素预设一个默认成本对象(成本中心或内部订单)。

提示:default acct assign 在单一公司里省事,但集团环境里几乎一定会出问题。常见做法是留着空,统一用 OKB9 按成本要素+成本中心组合去推导默认成本对象,规则集中、好查、好改。

案例里建的作业分摊成本要素如下,作业类型和成本要素是一对一咬死的:

成本要素名称对应作业类型
99999995Direct Labor Alloc.LAB
99999996Machine Hour Alloc.MAC
66666665Act Ind. deter & AllocACTII
66666666Act man in & Ind AllocACTMI
66666667Act Man. Entry & No alACTMN

2.2 KL01 里真正影响计算结果的几个字段

KL01 界面上字段很多,但决定价格算得对不对的就那么几个。作业类型类别(Activity Category)控制这个作业类型是手工录量还是自动确定;计划价格标志决定 KSPI 用哪套公式;实际价格标志决定 KSII 和 KSS4 怎么算实际价;输出单位(Output Unit)和换算系数(Factor)决定作业量和产出量之间的换算关系。比如一小时人工能出 10 PC 产品,Output Unit 填 PC,Factor 填 10,系统就按 Output quantity = Activity quantity × Output factor 换算。

计划价格标志有三个取值,会带到 KP26,KP26 里还能再改:

标志计算来源KSPI 行为
1计划作业量 + 计划成本自动计算覆盖 KP26 里手工填的价格
2变动部分按计划作业量、固定部分按产能覆盖,通常造成数量口径下的吸收不足
3手工输入KSPI 不动价格

实际价格标志对应 5、6、7,逻辑和计划侧平行。实践里计划侧选 1、实际侧留空是最省心的组合——留空时系统按计划标志 1 的口径、基于实际作业量去推实际价,也就是等价于 5。

2.3 作业类型类别 1 到 4 的差别

案例里刻意建了四个作业类型,就是为了把四种类别摆在一起看:LAB、MAC 是类别 1,手工输入作业量、手工分摊;ACTII 是类别 2,ACTMI 是类别 3,ACTMN 是类别 4,各自对应不同的自动确定与分摊方式。还有一个类别 5(Target = Actual allocation),目标成本按实际作业量分摊,做差异分析时比前几种都直观,但用的人不多。

配置查起来不复杂,用 ABAP 把作业类型主数据捞出来对一遍比在 KL01 里逐个翻快得多:

" 查询作业类型主数据:类别、单位、价格标志 " 字段名以自己系统 SE11 打开 CSLA/CSLB 为准,不同版本略有差异 SELECT a~lstar AS activity_type, " 作业类型代码 LAB / MAC a~kstar AS cost_element, " 绑定的 43 类次级成本要素 a~latyp AS act_category, " 作业类型类别 1~5 a~leinh AS unit_of_measure, " 作业量单位,如 H(小时) a~datbi AS valid_to " 有效期止,取当前有效版本 FROM csla AS a INTO TABLE @DATA(lt_activity) WHERE a~kokrs = @lv_kokrs " 控制范围必须显式限定 AND a~datbi >= @sy-datum. " 只取未失效的记录

这段取的是主数据抬头。参数上要盯两处:kokrs不传会全控制范围扫,跨控制范围的环境里结果会脏;datbi >= sy-datum是标准的时间片取法,作业类型做过价格标志变更的,历史版本会同时命中,必须靠有效期切开。拿到列表后,把latyp和实际业务对一遍——类别填错不会报错,只会在后面 KP26、KSPI 阶段以"这个作业类型不让输量"的方式隐隐发作。

3. KP26 与 KP06 到 KSPI:计划价格被算歪的完整链路

3.1 KP26 计划作业量先于 KP06

先做 KP06 会被挡回来,报的是 K8102:这个成本中心上还没有任何作业类型。原因很直接——KP06 要把费用拆成作业相关和作业无关两部分,作业相关那部分必须落到具体作业类型上,而作业类型得先在 KP26 的计划里存在。

KP26 里输入计划作业量 120,期间 1 到 12 会自动均分成每期 10。这里有个 Distribution Key 字段值得单独说:把它设成 2(按期间分布)或者 1(平均分配)会影响录入方式。比如你手工把 1 到 6 期改成每期 5(合计 30)、7 到 12 期改成每期 15(合计 90),总量仍是 120;这时把 Distribution Key 改成 1,再回来看,系统会把这 120 重新均摊成每期 10。批量场景下不要手工改,用 KPSI 批量处理计划数据。

注意:KP26 里手工填的 fixed price、variable price 只要计划价格标志不是 3,跑一次 KSPI 就会被算出来的价格顶掉。别把 KP26 当价格维护界面用。

3.2 KP06 的作业相关与作业无关费用

KP06 是成本中心费用计划,核心动作是把每笔初级成本要素分别打上固定、变动、作业相关、作业无关的标记。案例里的口径是:清理费用 49999991 每年 600 元、设备保养 49999992 每年 600 元,属于作业无关的固定费用;直接人工 LAB 的工资拆成基本工资、社保、绩效奖金(5999991–5999993),是作业相关的变动费用;机器折旧 MAC 对应 6999991,可以按工作量法再拆成固定和变动两段。

这个拆分不是形式主义。KSPI 计算时,固定费用和变动费用分别除以不同的分母,得到的 fixed price 和 variable price 是两条独立的价格线,工单结算、差异分析、量本利分析全靠这两条线分开。全填成固定,量本利就废了;全填成变动,产能波动时又解释不了闲置成本。

一个常见的偷懒做法是跳过 KP06,直接在 KP26 里给一个价格。省事,但代价是成本中心费用计划、差异分析、吸收率跟踪全部作废。真要做作业成本法(ABC)的环境,这一步没有替代方案。

3.3 KSPI 的计算链路与三种价格标志

计划作业量和计划费用都就位后跑 KSPI,公式按价格标志分支:

  • 标志 001:固定价 = 固定计划成本 / 计划作业量,变动价 = 变动计划成本 / 计划作业量,总价 = 固定价 + 变动价。
  • 标志 002:变动价的分母是计划作业量,固定价的分母换成产能(capacity)。产能和计划作业量不一致时,成本中心会在数量口径上出现吸收不足,这是 002 的典型副作用。
  • 标志 003:价格手工维护,KSPI 不更新。

按案例的数据走一遍:LAB 的固定部分(600+600)/120 = 5 元,变动部分(5999991–5999993 三项合计)/120 = 30 元,总价 35 元;MAC 的折旧 2400 元在 KP06 里按固定、变动两段分别维护,所以两段分母都用 120,合出来的总价是 45 元。跑完 KSPI,回头查 KP26,原先手工填的 11.11 和 22.22 已经被替换——因为计划价格标志是 1。如果这里是 3,价格会原地不动,这正好是验证价格标志是否生效的最快方法。

批量核对计划作业量可以直接查 COSL,比在 KP26 里翻页快:

" 取 KP26 维护的计划作业量,按对象+作业类型+期间存储 " 字段名以 SE11 打开 COSL 为准,各版本存在 WKG/MEG 系列列 SELECT objnr, lstar, gjahr, perio, wkg001 FROM cosl INTO TABLE @DATA(lt_plan_qty) WHERE kokrs = @lv_kokrs " 控制范围 AND gjahr = @lv_gjahr " 计划年度 AND lstar IN @lr_lstar. " 限定 LAB/MAC,避免全表扫描

objnr是成本中心的 CO 对象号,要和成本中心代码做一次反查;wkg001系列是各期作业量,取值口径里有总量和固定量两套,核对时要认准是哪一列,否则会得出"KP26 填的量和这里不一致"的假结论。这一类字段错位是排查计划价格问题时最常见的误报来源。

4. OKES 与 OKEW 分割结构:作业无关费用怎么落到作业类型上

4.1 分割结构解决的是"没人认领的钱"

KSPI 第一次跑完,LAB 和 MAC 的价格里混进了 49999991、49999992 这两笔清理和保养费用——它们跟作业量没有因果关系,却因为成本中心没有分割规则而被平摊进了所有带作业类型的价格里。OKES 就是干这个的:把作业无关的费用按明确的规则,指定分给哪个作业类型或哪个分割行。

分割规则建立之后,还要用 OKEW 把分割结构分配给成本中心。这一步的取舍很实际:公司只有一个生产成本中心带作业类型,或者顶多某个辅助生产部门带,OKEW 不做也未必出事;但成本中心组一大,分割规则在不同成本中心之间的继承关系就会错乱,跑出来的价格只有天知道是怎么来的。

4.2 EquiNo 权数的优先级

EquiNo 是 KP26 里的一个权重字段,很多人以为它只是个备注。实际上它是在"没有明确分割规则"时决定分摊比例的兜底参数,优先级排在 OKES 分割规则之后:

  • OKES 中没有对应的分割行、作业类型上有 EquiNo,则作业无关费用按各作业类型的 EquiNo 比例分摊。
  • OKES 中配了分割行且作业类型为空,则 EquiNo 失效,费用在相关作业类型之间平均分。
  • OKES 中配了分割行且指定了作业类型,费用按分割行指定的去向走。

案例里把 LAB 的 EquiNo 填 1、MAC 填 2,两笔各 600 元、合计 1200 元的作业无关费用就按 1:2 分成 LAB 400、MAC 800。比例看起来粗糙,但它比"无脑平均分"至少反映了两个作业类型对这类费用的相对消耗强度——机器保养费通常确实该更多归到机器小时上。

4.3 清掉 EquiNo 之后看 KSS4 的表现

验证分割规则有没有生效,最快的办法是把变量一个个拿掉看结果怎么动。清空 EquiNo 再跑一次 KSPI,会发现 1200 元不再按 1:2 走,而是平均摊给 LAB、MAC、ACTMI、ACTMN 四个作业类型——因为 OKES 里此时没有能接住这笔费用的分割行。把 OKES 里那条 assignment S3 删掉,直接跑 KSS4 算实际价格,结果又会变:费用按 KP26 的权数走,价格数字里冒出一串小数。

设置状态作业无关费用的去向观察点
OKES 配分割行 + 指定作业类型按分割行指定去向KSPI 后 KP26 价格按预期变动
OKES 配分割行 + 作业类型为空相关作业类型之间平均分EquiNo 不起作用
OKES 无对应分割行 + 有 EquiNo按 EquiNo 比例分摊案例中 LAB 400 / MAC 800
OKES 无对应分割行 + 无 EquiNo所有作业类型平均分四个作业类型各摊一份

提示:价格里出现 1000、10000 这种 Price Unit,是因为小数位太多导致系统自动抬高价格单位,不是配置错误。下一章的处理办法比反复调公式有效得多。

5. 实际价格重估与价格单位:KSS4、OKET、OKKN 的取舍

计划价跑通只是前半程。月底要拿实际发生的成本中心费用除以实际作业量,得到实际作业价格并重估工单,这一步走 KSII 或 KSS4。相当一部分企业干脆不做重估,让 plan price 等于 actual price,用计划价吸收全部成本,差异全部留在成本中心上——制造费用波动不大的产线这么做省一个月的活,波动大的产线这么做等于把差异分析做废了。

重估之后常见的两个尾巴,一个是价格单位乱跳,一个是跨期改价把历史价格带歪。

价格单位的问题出在小数位。作业价格算出来带很多位小数时,系统自动把 Price Unit 从 1 改成 1000 或 10000 来压缩显示精度,报表上看到的就是"价格怎么变成 0.035 元"这种诡异数字。修法不在公式里,在 OKET:把小数位固定成 2 位,Price Unit 就乖乖回到 1。OKET 和 KSPI 里的显示设置都能改,但从 OKET 改是全局的,一次到位。

跨期改价的问题更隐蔽。标准成本估算那边用 OKKN/OKK4 配定价策略,策略 2 是"按全年所有期间的平均值计算计划价格"。假设当前已经走到 2006 年 3 期,前 3 期历史计划价是 3 元,从第 4 期起要改成 4 元:策略 2 下第 4 期的价格会被算成 (3×3 + 4×9)/12,也就是带着前三个月的旧价格一起摊薄,怎么改都到不了 4 元。这时候要把定价策略从 2 改成 1(按期计算,不做全年平均),第 4 期才真正拿到 4 元。

定价策略计算口径适用场景
1按期计算,不跨期平均年度中途改价、期间价格必须精确
2全年所有期间平均值年初一次性定全年价格

OKEVN 里还有一套评估变式可以覆盖作业取价,和 OKKN/OKK4 的策略同时存在时会产生优先级问题,实践中很少有人在生产环境同时开两套,真遇到冲突,先确认工单上的评估变式到底取到了哪一层,再回头决定关掉哪一边。这套路径在一个成本中心组 PROD、两个成本中心、两个作业类型的极小环境里跑通之后,放大到多工厂多作业类型的场景,无非是把 OKES 的分割规则和 EquiNo 权数按成本中心逐个过一遍——真正费时间的从来不是配置,而是确认每一笔作业无关费用到底该由哪个作业类型来背。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询