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

点击蓝字 关注我们

前言

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

详见链接

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

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

变更文档对象

变更文档对象是ABAP中的一个标准功能. 通过事务代码SCDO 维护,维护好并生成变更文档对象,系统会生成一些代码. 程序中引入这些代码,可以完成变更文档的记录.

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

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

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

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

b6e258f1496575fb37750c367fc20771.png

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

3de1bf256d8fdf3368b2e19264dca0e8.png

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

299b203507d263fd69a9be445b9ac4ba.png

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

3040a5b3a613a1e54c915c12998a67a8.png

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

变更文档使用

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

FORM CD_CALL_<变更文档ID>

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

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

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

  • TOP(调用数据声明)FZBC106CCDT

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

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

  • 调用更新函数模块 FZBC106CCDC

程序中使用 FZBC106CCDT FZBC106CCDC.

c0ebeba5c15fce8132cee1ee2e9a5004.png

c543e94b6ac691479c15ed5f0fc6558d.png

变更文档与数据元素

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

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

bfa86ba81a912f863fefd9019f952082.png

变更文档查询

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

变更文档存在的表CDHDR / CDPOS

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

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

7291fb17bb5760e160b14a069c9bd97a.png

图五 RSSCD100查询

ef61ffbbf782203962003da91c02c974.png

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

通用修改程序与变更文档

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

详见链接

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

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

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

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

bbccfeaf875daad9fcf097fe08ebf698.png

cfc518dabb91d5bad116be6af996c45c.png

总结

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

需要注意的是,物料的修改对象与其它修改对象有点差异, 它在修改对象中没有放标准表, 而是放了一些D<标准表> . 这个特性给记录/显示变更文档带来了一些麻烦. 有可能还有其它的变更文档使用了一些不同的方式. 这些未知方式目前尚未纳入通用变更程序的处理范围. 只能后续碰到再优化.

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

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

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

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

6c6d97669718e62791395ac47143466d.png

c7c76cf44283b18cceb574ea738f171f.png

THE

END

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值