sap表修改记录查询
目录
SAP表修改记录查询 ..................................................................................... 错误!未定义书签。更改记录表CDHDR和CDPOS....................................................................... 错误!未定义书签。SAP保存操作记录CDHDR和CDPOS表....................................................... 错误!未定义书签。
错误!未定义书签。
错误!未定义书签。
SAP表修改记录查询
SAP中修改频率较低的定制表(T001等)一般都会有修改记录存在,查看一个表有没有修改记录可以在SE11中查看他的技术设置,如果其中的LOG DATA CHANGES选中则表示此表有历史修改记录存在。
要查看他的修改记录可以使用Tcode:SCU3 。
菜单路径:工具-定制-IMG-IMG Logging
参考说明:
系统读取历史修改记录的Function :DBLOG_READ_WITH_STATISTIC
转载:
SE16N 通过&sap_edit 可以修改表,修改表后如何查看呢。分两步进行。
1. 事务码SE16N, 然后输入表 SE16N_CD_Key,输入相应的查询条件。例如table 名,查出相应的ID
2. 事务码SE16N,然后输入表SE16N_CD_DATA, 输入相应的ID,就可以查询到修改的内容。其他方式:表
DBTABLOG
CDHDR 更改日志表头
CDPOS 更改日志行项目
查询用户的最近一次登陆日期和时间,USR02中有个上次登陆日期和登陆时间;或者用SE38跑下RSUSR200,输入用户名即可查询上次登陆日期
还有个方法是ST03N,专家模式,选择时间段,选择user和user profile,可惜,小弟权限不够没法测试
更改记录表CDHDR和CDPOS
SE16N查询CDPOS表,在字段OBJECTCLAS(更改文档对象,VERKBELEG表示销售凭证,不同的凭证类别代码不同的文档对象,如需查看文档对象,可使用事务代码SCDO,相关表为TCDOB/TCDOBT)中输入:VERKBELEG,TABNAME(表名)输入:VBAK/VBAP(VBAK 查询整张订单、VBAP查询订单行项目),CHNGIND(修改标识符)输入:D(U表示更新,I 表示插入,E表示删除单个字段,D表示删除整行或整个单据),执行后,字段OBJECTID(对象价值)表示订单号码,字段TABKEY(表键)中的最后两位表示订单行号,同理,我们可查看其他删除或修改的各种单据和凭证。
转载自(在此基础上做了修改)
sap的字段和对象的修改都会保存旧值,数据保存在CDHDR和CDPOS表中,提取旧值可以采用两种方法
1) 使用sap的标准函数CHANGEDOCUMENT_READ_HEADERS 和CHANGEDOCUMENT_READ_POSITIONS
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS' "Change document: Read change document items
EXPORTING
* archive_handle = 0 " sy-tabix Handle on Open Archive Files
changenumber = " cdpos-changenr Change document number
* tablekey = SPACE " cdpos-tabkey Object class table key
* tablename = SPACE " cdpos-tabname Object class table name
* tablekey254 = SPACE " cdpos_uid-tabkey Table Key for CDPOS in Character 254
* keyguid = SPACE " cdpos_uid-keyguid UUID in Character Format
* keyguid_str = SPACE " cdpos_str-keyguid UUID in Character Format
IMPORTING
header = " cdhdr Change document header (structure CDHDR)
et_cdred_str = " cdred_str_tab Additional Change Document - Table for STRINGs * TABLES
* editpos = " cdshw Table with edited change document items
EDITPOS_WITH_HEADER = "CDRED 更改文档,显示结构
EXCEPTIONS
NO_POSITION_FOUND = 1 " No item foun
WRONG_ACCESS_TO_ARCHIVE = 2 " incorrect access to archive
2)使用select语句直接从表中读取。
直接使用SELECT语句读取数据的示例:
*提取信用额度字段修改的抬头信息 select cdhdr~changenr cdhdr~udate
cdhdr~utime into corresponding fields of table p_cdhdr from cdhdr where cdhdr~objectclas = 'KLIM' and cdhdr~objectid = wa_customerinfo-kunnr. if sy-subrc = 0. *提取信用额度字段修改的字段值 select cdpos~changenr cdpos~value_old
cdpos~value_new into corresponding fields of table p_cdpos from
cdpos for all entries in p_cdhdr where cdpos~objectclas = 'KLIM'
and cdpos~objectid = wa_customerinfo-kunnr and cdpos~changenr =
p_cdhdr-changenr and cdpos~tabname = 'KNKK' and cdpos~fname =
'KLIMK'. if sy-subrc = 0. endif. endif.
可以在CHANGEDOCUMENT_READ_HEADERS 中设置中断获得对象类型。