SAP Note 1376862 解读:CO-PA 中第三方采购订单与单独采购订单的价格差异更新

作者:郑德鼎 约 8 分钟阅读 更新日期:2026-07-17 内容较新 标签:FICO, CO-PA, SD, 财务, 价格差异, 第三方采购, 单独采购订单, OSS Note, KEII_SDSTR
目录
改写来源:SAP Note 1376862 — Update third-party purchase order and individual purchase order in CO-PA

在 SAP 的成本获利能力分析(CO-PA)中,第三方采购订单(third-party purchase order)与单独采购订单(individual purchase order)的成本流转一直是 FICO 顾问关注的重点。本文基于 SAP Note 1376862,解释为什么在实施 Note 988113 与 1297982 之后,采购环节产生的价格差异不再直接更新到 CO-PA,以及在哪些特殊场景下可以通过 CO-PA Exit KEII_SDSTR 临时恢复该行为。


1. 问题症状

相关关键词:MIRO、MIGO、third-party、individual purchase order、price difference。


2. 标准系统行为

在标准 SAP 中:

  1. 对于第三方采购订单和单独采购订单,**成本销售收入(cost of sales)** 是通过开票凭证(billing document)中的条件类型 **VPRS(condition type G)** 更新到 CO-PA 的。
  2. 如果在开票时采购成本尚未确定(例如后续还有发票校验),系统会在发票过账后通过 **VPRS 条件值调整** 产生一条 delta 行项目,将差额补入 CO-PA。
  3. 因此,在 **MIGO 收货** 或 **MIRO 发票校验** 时产生的价格差异**不再单独传递**到 CO-PA。

这种机制的好处是:CO-PA 中始终能反映采购订单的实际成本,而不会因为中间环节的价格波动造成重复或过时的数据。

flowchart LR A[采购订单
第三方 / 单独采购] --> B[收货 MIGO
或发票校验 MIRO] B --> C{产生价格差异?} C -->|标准行为| D[不直接更新 CO-PA] D --> E[开票 VF01/VF02
VPRS 条件调整] E --> F[实际成本更新至
Costing-based CO-PA] C -->|启用 KEII_SDSTR Exit| G[直接传递
价格差异至 CO-PA] style G fill:#fff8e1,stroke:#f9a825

3. 标准行为 vs Exit 方案对比


4. 前提条件:SD Copy Control

维度标准行为(推荐)使用 KEII_SDSTR Exit(临时)
更新时机通过开票 VPRS 调整更新 CO-PA在收货/发票校验时直接传递价格差异
数据一致性与实际开票成本保持一致可能产生额外调整,需要核对
配置依赖需要 SD copy control 开票数量设为 E 或 F需在表 TKEEXITS 中激活 Exit
适用场景新建或可调优流程历史流程无法改变、必须直接过账差异
长期建议统一第三方与单独采购订单处理仅作为过渡方案

要让标准行为正确运行,必须确保 SD copy control 中的开票数量(billing quantity)字段设置为 EF。只有这样,开票时才能读取到相应的采购/发货凭证,从而正确更新 VPRS。

如果设置不同,成本可能取自:

详细配置可参考 SAP Note 372772SAP Note 547570


5. 解决方案:激活 CO-PA Exit KEII_SDSTR

如果业务上确实无法调整流程,可以按以下步骤激活 Exit。

5.1 在表 TKEEXITS 中注册 Exit

使用事务码 SE16,在表 TKEEXITS 中新增一条记录,字段内容如下:

5.2 实现子例程

字段说明
EXITIDKEII_SDSTRExit 名称
APPLKE应用领域
SEQNO001序号
ISACTIVEX激活标志
REPORT客户命名空间的程序名,例如 ZCO_PA_EXIT存放实现代码的程序
FORM子例程名,例如 KEII_SDSTR程序中的子例程

在指定的客户程序中,创建如下签名的子例程:

FORM keii_sdstr CHANGING is_acchd TYPE acchd is_accit TYPE accit x_no_transfer TYPE c. " 默认情况下系统已将 X_NO_TRANSFER 设为 'X',即不传递 " 根据业务逻辑判断是否允许当前行项目传递到 CO-PA " 示例:如果是特定采购订单类型或行项目,允许传递 * IF is_accit-... = '...'. * x_no_transfer = ''. * ELSE. * x_no_transfer = 'X'. * ENDIF. " 注意:请根据实际业务字段补充判断条件 ENDFORM.

5.3 控制参数说明

5.4 停用 Exit

如需停用,可执行以下任一操作:

  1. 删除表 `TKEEXITS` 中的对应条目;或
  2. 将字段 `ISACTIVE` 清空。

6. 适用版本

根据 SAP Note 1376862,该 Exit 适用于以下 SAP 版本(节选):

具体能否实施还取决于当前系统的支持包(Support Package)级别,请在实施前使用 **SNOTE** 检查依赖关系。

7. 相关 SAP 事务码与表


8. 常见问题 FAQ

类型名称说明
事务码SE16查看/维护表数据
事务码SE37 / SE38创建或查看 Exit 程序
事务码MIGO收货
事务码MIRO发票校验
事务码VF01 / VF02开票
事务码KE30CO-PA 报告
TKEEXITSCO-PA Exit 注册表
结构ACCHD会计凭证抬头
结构ACCIT会计凭证行项目
CO-PA 表CE1XXXX / CE2XXXX实际/计划行项目表(XXXX 代表操作型科目表)

Q1:为什么 SAP 不建议价格差异在 MIGO/MIRO 时直接进 CO-PA?

A:因为实际成本最终要通过开票时的 VPRS 条件反映到 CO-PA。如果在收货/发票阶段就传入差异,后续开票再调整时容易出现重复或金额不一致。

Q2:Exit KEII_SDSTR 是永久方案吗?

A:不是。SAP 明确指出它只是一个临时方案,建议长期将单独采购订单流程与第三方采购订单流程对齐。

Q3:如果 SD copy control 的开票数量不是 E/F 会怎样?

A:VPRS 的成本来源会不正确,可能取自 goods issue 或物料评估段,导致 CO-PA 数据偏差。请参考 Note 372772 与 547570 进行调整。

Q4:该 Exit 会影响 account-based CO-PA 吗?

A:该 Note 针对的是 costing-based CO-PA。Account-based CO-PA 基于 Universal Journal,数据逻辑不同。

Q5:激活 Exit 后如何验证效果?

A:可在开发/测试系统中过账一笔差异,然后使用 KE30 或 CO-PA 行项目表查看差异是否被传入。建议同时与 FI 凭证进行对账。


9. 常见错误与排错


10. 最佳实践

  1. **优先调整业务流程**:在实施 Exit 前,先评估是否能将单独采购订单改为与第三方采购订单一致的处理方式。
  2. **在开发环境充分测试**:使用真实业务数据验证 CO-PA 行项目与 FI 凭证的一致性。
  3. **做好变更记录**:在 Exit 程序中写明业务背景、判断逻辑和责任人,便于后续维护。
  4. **定期复核 SAP Note**:关注 1376862 及其依赖 Note 的更新,及时升级到推荐的支持包。
  5. **限制 Exit 范围**:通过 `IS_ACCIT` 中的字段尽量精确控制哪些行项目允许传递,避免全量放开。

11. 相关 SAP Notes


来源说明

现象可能原因处理建议
Exit 未生效TKEEXITSISACTIVE 未设为 X检查并激活条目
所有行项目都被传入 CO-PA子例程中未正确设置 X_NO_TRANSFER补充业务判断条件
子例程 dump参数签名与标准不一致确认使用 CHANGING IS_ACCHD TYPE ACCHD
CO-PA 金额重复同时使用 Exit 与标准 VPRS 调整评估是否可停用 Exit 并统一流程
SAP Note主题
1376862本文来源:CO-PA 中第三方/单独采购订单价格差异更新
988113相关前置修正
1297982相关前置修正
372772SD copy control 必要设置
547570SD copy control 必要设置

本文由 SAP Note 1376862 改写整理,仅对原文中的技术要点进行结构化解读与中文表达。未对 SAP 标准行为进行推断或编造;具体实施请以 SAP Support Portal 最新版本 Note 及当前系统环境为准。

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文由 SAP 技术资料改写整理,仅供学习交流。