自建表数据修改记录实现——CDHDR/CDPOS

需积分: 43 3 下载量 172 浏览量 更新于2024-09-11 收藏 209KB DOC 举报
"这篇文档介绍了如何使用ABAP编程在自建表中创建更新程序,以记录数据修改的历史,特别是针对ZFI16表的退税率维护更改历史。通过配置特定字段的数据元素和调用相关程序,可以实现对自建表的修改记录存储到标准记录表CDHDR/CDPOS中。" 在 SAP ABAP 开发环境中,记录自建表的数据修改历史是非常重要的,这有助于追踪系统中关键数据的变化情况。本文档主要涉及两个关键知识点: 1. **配置数据元素的更改文档功能**: 当需要记录特定字段的修改历史时,首先需要在数据元素的Further characteristics视图中启用更改文档功能。这样做会确保每次该字段被修改时,系统都会自动创建一个更改记录。例如,对于ZFI16表的退税率字段,需要在对应的TCODE: SCDO中进行配置,设置参数以触发更改文档的创建。 2. **编写程序FORMCHANGE_DOCUMENT_CREATE**: 为了实际创建和存储这些更改记录,需要编写ABAP程序。文中提到的`FORMCHANGE_DOCUMENT_CREATE`是一个关键的程序段,它定义了如何处理数据的旧值和新值,并调用函数模块`ZFI16_WRITE_DOCUMENT`来写入更改记录。在这个过程中,`DA_OBJECTID`用于存储对象ID,`UTIME`和`UDATE`记录更改时间,`USERNAME`记录执行更改的用户,而`OBJECT_CHANGE_INDICATOR='U'`表示是更新操作。 - `READTABLE`语句用于获取字段的新值。 - 函数模块`ZFI16_WRITE_DOCUMENT`接收必要的参数,如对象ID、事务码(在本例中是'ZS69')、更改时间、用户名等,以及包含旧值和新值的表格,然后将这些信息写入CDHDR/CDPOS表。 在实际操作中,这个程序会在数据保存时被调用,通过`WHEN 'SAVE'.`语句触发`PERFORM CHANGE_DOCUMENT_CREATE`,从而确保每次保存时都记录修改。 参考文档BC414的P220-P227提供了更深入的信息,对于理解更改凭证的创建过程和细节至关重要。 通过这样的方法,不仅能够满足ZFI16表退税率维护更改历史的记录需求,还可以扩展到其他自建表的关键字段,以实现整个系统的数据变更审计。这种做法对于符合合规性要求,尤其是在财务或审计领域,是非常有价值的。
2024-11-08 上传