改写来源: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 临时恢复该行为。
相关关键词:MIRO、MIGO、third-party、individual purchase order、price difference。
在标准 SAP 中:
这种机制的好处是:CO-PA 中始终能反映采购订单的实际成本,而不会因为中间环节的价格波动造成重复或过时的数据。
| 维度 | 标准行为(推荐) | 使用 KEII_SDSTR Exit(临时) |
|---|---|---|
| 更新时机 | 通过开票 VPRS 调整更新 CO-PA | 在收货/发票校验时直接传递价格差异 |
| 数据一致性 | 与实际开票成本保持一致 | 可能产生额外调整,需要核对 |
| 配置依赖 | 需要 SD copy control 开票数量设为 E 或 F | 需在表 TKEEXITS 中激活 Exit |
| 适用场景 | 新建或可调优流程 | 历史流程无法改变、必须直接过账差异 |
| 长期建议 | 统一第三方与单独采购订单处理 | 仅作为过渡方案 |
要让标准行为正确运行,必须确保 SD copy control 中的开票数量(billing quantity)字段设置为 E 或 F。只有这样,开票时才能读取到相应的采购/发货凭证,从而正确更新 VPRS。
如果设置不同,成本可能取自:
详细配置可参考 SAP Note 372772 与 SAP Note 547570。
如果业务上确实无法调整流程,可以按以下步骤激活 Exit。
使用事务码 SE16,在表 TKEEXITS 中新增一条记录,字段内容如下:
| 字段 | 值 | 说明 |
|---|---|---|
EXITID | KEII_SDSTR | Exit 名称 |
APPL | KE | 应用领域 |
SEQNO | 001 | 序号 |
ISACTIVE | X | 激活标志 |
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.如需停用,可执行以下任一操作:
根据 SAP Note 1376862,该 Exit 适用于以下 SAP 版本(节选):
具体能否实施还取决于当前系统的支持包(Support Package)级别,请在实施前使用 **SNOTE** 检查依赖关系。
| 类型 | 名称 | 说明 |
|---|---|---|
| 事务码 | SE16 | 查看/维护表数据 |
| 事务码 | SE37 / SE38 | 创建或查看 Exit 程序 |
| 事务码 | MIGO | 收货 |
| 事务码 | MIRO | 发票校验 |
| 事务码 | VF01 / VF02 | 开票 |
| 事务码 | KE30 | CO-PA 报告 |
| 表 | TKEEXITS | CO-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 凭证进行对账。
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| Exit 未生效 | TKEEXITS 中 ISACTIVE 未设为 X | 检查并激活条目 |
| 所有行项目都被传入 CO-PA | 子例程中未正确设置 X_NO_TRANSFER | 补充业务判断条件 |
| 子例程 dump | 参数签名与标准不一致 | 确认使用 CHANGING IS_ACCHD TYPE ACCHD 等 |
| CO-PA 金额重复 | 同时使用 Exit 与标准 VPRS 调整 | 评估是否可停用 Exit 并统一流程 |
| SAP Note | 主题 | |
| 1376862 | 本文来源:CO-PA 中第三方/单独采购订单价格差异更新 | |
| 988113 | 相关前置修正 | |
| 1297982 | 相关前置修正 | |
| 372772 | SD copy control 必要设置 | |
| 547570 | SD copy control 必要设置 |
本文由 SAP Note 1376862 改写整理,仅对原文中的技术要点进行结构化解读与中文表达。未对 SAP 标准行为进行推断或编造;具体实施请以 SAP Support Portal 最新版本 Note 及当前系统环境为准。