如何在后台表中查找SAP的数据修改记录?
CDHDR 和 CDPOS
我们知道,CDHDR 和 CDPOS 两个底表记录了数据的修改。
- CDHDR(更改凭证抬头表):记录了用户在什么时间点用什么样的事务代码修改了什么样的对象等信息。比如修改物料主数据、创建或修改销售订单等操作,都会在该表中有一条对应的记录,记录修改的基本信息,如修改时间、用户、事务代码、对象类型等。
- CDPOS (更改凭证行项目表):是更改记录的行项目表,记录了具体是哪个表中的哪个字段从什么值修改为了什么值,与 CDHDR 通过相关字段关联,用于详细记录每一个字段的修改情况。
为了方便查询,SAP 还提供了程序 RSSCD100 ,方便对特定数据类型更改的查找。比如,我们想查找物料主数据的修改,可以用 SE38 运行 RSSCD100,将对象类设为 MATERIAL:
这个程序的主要作用是提供批量的显示。如果需要查找某个用户,或者使用某个事务码进行的修改,这个程序就比较方便。比如,我们发现有人用 CKMM 修改物料的价格控制码,导致了差异数据的丢失,就可以用 RSSCD100 来查找。
SE16N_CD_KEY 和 SE16N_CD_DATA
SE16N 改表是一种常见的行为,但不表示没有蛛丝马迹可循。SE16N_CD_KEY 和 SE16N_CD_DATA 表记录了使用 SE16N 工具对表的修改
- SE16N_CD_KEY:当使用 SE16N 工具修改表记录时,该表记录抬头信息,包括修改的用户、时间、被修改的表名等基本信息,可用于快速定位和筛选修改记录的相关信息。
- SE16N_CD_DATA:存储使用 SE16N 修改表记录时的具体修改内容,与 SE16N_CD_KEY 中的记录相对应,记录了被修改字段的新值、旧值等详细数据。
比如,我们发现后台配置表 T090NP 被改了,需要查出是谁改的:
DBTABLOG
DBTABLOG:该表用于记录数据库表更改的日志,但需要为目标数据库表激活变更记录选项才会生效,记录对特定表进行的插入、更新或删除操作等详细变更记录,对于跟踪关键业务数据的变更历史、审计以及排错非常有用。