SAP 工具箱通用修改程序二变更文档

作者:ABAP技巧与实战 约 7 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

**点击蓝字** 关注我们

前言

通用修改程序是对一类程序(修改主数据或单据的特定字段)的总结.

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP工具箱 通用修改程序(一 简介)

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487788&idx=1&sn=fc797a64874c042d31da33bb91f2e0dc&chksm=cf5dcc1af82a450cd38be3ebf1e10cf5ccc12c3d9b52ac95bfdfbce7c8a7f3b7881eec609aee&token=470123494&lang=zh_CN#rd)

本文主要介绍通用修改程序补充的显示变更文档内容的功能,并简单介绍变更文档对象.

变更文档对象

变更文档对象是ABAP中的一个标准功能. 通过事务代码SCDO 维护,维护好并生成变更文档对象,系统会生成一些代码.

程序中引入这些代码,可以完成变更文档的记录.

• 图一是单表创建的变更文档对象

• 图二是主从表创建的变更文档对象

• 图三是标准的物料主数据的变更文档对象

• 图四是变更文档对象生成的代码清单

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

图一 单表创建的变更文档对象

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

图二 主从表创建的变更文档对象

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

图三 标准的物料主数据的变更文档对象

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

图四 变更文档对象生成的代码清单

变更文档使用

在程序中引入变更文档生成的代码,并在保存数据后调用变更文档的例程

FORM CD_CALL_<变更文档ID>

可以完成变更文档的记录.

调用之前需要准备单表的原值/变更后的值. 内表的原值/变更后的值

比如变更对象ZBC106C生成如下代码

• TOP(调用数据声明)FZBC106CCDT

• 全局有效的数据声明 FZBC106CCDF 包含在 FZBC106CCDT

• 对象特定的数据声明 FZBC106CCDV 包含在 FZBC106CCDT

• 调用更新函数模块 FZBC106CCDC

程序中使用 FZBC106C CDT F ZBC106CCDC .

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

变更文档与数据元素

如果希望变更对象完成对特定字段的修改的记录,在定义字段时,必须通过数据元素定义,并且勾选数据元素的属性 <变更文档>.

否则变更文档对象不会记录该字段的变更.

定义字段时需要注意设置该标记,但也不是所有的字段都需要设置.比如一些记录日期,时间,用户,时间戳信息的字段无需设置该标记.

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

变更文档查询

可以通过标准报表程序RSSCD100查询变更记录

变更文档存在的表CDHDR / CDPOS

可以直接关联这两个表实现变更记录的查询.

标准事务都有菜单可以进入变更文档的查询.

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

图五 RSSCD100查询

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

图六 标准物料主数据的查询

通用修改程序与变更文档

通用修改程序通过 任意表字段更新 完成字段内容的修改

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP工具箱 批量更新任意表字段内容

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486782&idx=1&sn=799f9e61c2bbaac4381feae88496383d&chksm=cf5dd008f82a591e8b33ddb739c87381d4abf4f64b51534b067af6d84f956a1dfef59395fb85&scene=21#wechat_redirect)

也可以通过扩展函数调用BAPI完成字段内容的修改

这两种方式都会记录变更文档.

在通用修改程序界面上添加按钮 <变更> 可以对选中的行显示变更记录.(只显示通用修改程序涉及到的字段的变更).

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

总结

通过补充显示变更文档功能,进一步完善通用修改程序的功能.

需要注意的是,物料的修改对象与其它修改对象有点差异, 它在修改对象中没有放标准表, 而是放了一些D<标准表> .

这个特性给记录/显示变更文档带来了一些麻烦. 有可能还有其它的变更文档使用了一些不同的方式. 这些未知方式目前尚未纳入通用变更程序的处理范围.

只能后续碰到再优化.

下面两个图片是物料主数据(MAKT表)和自定义的表的记录差异. 仔细看表键字段,可以看出二者的差异

物料主数据的MAKT<表键>字段没有记录物料编码(DMAKT中没有物料编码).

自定义的修改对象把所有主键(包括集团)内容合并放入<表键>字段

<对象值>字段似乎放的排除集团的第一个主键字段内容(定义表的时候, 如果是联合主键, 尽量把更重要的字段放到前面,比如 MARC 把物料放到工厂前面)

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

SAP 工具箱通用修改程序二变更文档 - 封面图
SAP 工具箱通用修改程序二变更文档 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

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

来源说明:本文内容由「SAP工具箱通用修改程序二变更文档.md」整理生成,仅用于内部技术分享与学习交流。