改写来源:SAP Note 2178936 - Change of plan activity price in transaction KP26 is not considered in new confirmation postings
在生产订单报工或确认时,系统会根据成本中心作业类型(Activity Type)的计划价格计算工单成本。很多顾问在 KP26 中修改了计划作业价格后,发现新的确认(Confirmation)并没有采用最新价格。本文解释这一现象背后的系统设计,并给出处理建议。
这不是系统 Bug,而是与 Material Ledger(物料分类账) 的「实际成本核算」设计有关。
在启用 Material Ledger 的工厂中,如果作业类型的更新方式(Activity Update)设置为 2,则该作业类型的价格确定与实际成本核算相关。
当 Activity Update = 2 时:
Material Ledger 的实际成本核算要求:
在一个期间内,计划作业价格必须保持相对稳定,否则同一期间内不同时间点的确认价格会不一致,导致实际成本多层确定(Multilevel Price Determination)难以正确分摊差异。
因此,SAP 通过 CKMLLACR 表锁定首次确认价格,确保当期成本核算的一致性。
可以通过以下配置路径查看和修改作业类型的更新方式:
SPRO 路径:
Controlling → Product Cost Controlling → Actual Costing/Material Ledger → Actual Costing → Activate Actual Costing或直接查看表 TCK07 / TCK08 中的 Activity Type 设置。
首先要明确:当 Activity Update = 2 时,KP26 的修改不会影响已锁定价格的工厂。这是系统的标准设计,不是数据错误。
使用事务码 CKMLLA 可以查看 CKMLLACR 中当前锁定的计划作业价格。
在期末运行 CKMLCP(实际成本核算运行)或 CKMLCPAVR 时:
参考 SAP Note 2189173:*How to consider the changed plan activity price in KP26 during new confirmation postings when Material Ledger is active?*
该 Note 提供了在特定场景下让 KP26 修改立即生效的方法,但通常需要谨慎评估,因为它可能影响当期实际成本的一致性。
| 事务码 | 用途 |
| KP26 | 维护成本中心计划作业价格 |
| CO11N | 生产订单确认 |
| COR6N | 生产订单确认(简化) |
| CKMLLA | 查看 Material Ledger 锁定的计划价格 |
| CKMLCP | 实际成本核算运行 |
| CKM3 / CKM3N | 物料分类账价格分析 |
| KSBT | 作业类型价格报表 |
| KSII | 实际作业价格计算 |
| CON2 | 作业价格重估 |
| 表名 | 说明 |
| CKMLLACR | Material Ledger 锁定的计划作业价格 |
| CKMLLA | Material Ledger 实际成本核算汇总 |
| CKMLQS | 数量结构 |
| COSB | 成本对象控制:作业类型差异 |
| COEP | 成本对象:行项目 |
| AFRU | 订单确认记录 |
Q:KP26 修改价格后,为什么有些工厂生效,有些不生效?
A:只有启用了 Material Ledger 且 Activity Update = 2 的工厂会出现价格锁定。未启用 ML 或使用 Activity Update = 1 的工厂,KP26 修改会立即生效。
Q:能否直接修改 CKMLLACR 中的价格?
A:不建议。CKMLLACR 是 Material Ledger 的核心表,直接修改会导致实际成本核算不一致。应通过标准流程(如 CKMLCP)处理差异。
Q:期末差异分摊后,物料实际成本会正确吗?
A:会。Activity Update = 2 的设计正是为了保证期末多层价格确定能够正确分摊计划与实际之间的差异。