sap表修改记录查询 下载本文

内容发布更新时间 : 2024/5/3 3:59:04星期一 下面是文章的全部内容请认真阅读。

如有你有帮助,请购买下载,谢谢!

目录

SAP表修改记录查询 ..................................................................................... 错误!未定义书签。 更改记录表CDHDR和CDPOS ....................................................................... 错误!未定义书签。 SAP保存操作记录CDHDR和CDPOS表 ....................................................... 错误!未定义书签。 通过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(表键)中的最后两位表示订单行号,同理,我们可查看其他删除或修改的各种单据和凭证。

1页

如有你有帮助,请购买下载,谢谢!

转载自 (在此基础上做了修改)

sap的字段和对象的修改都会保存旧值,数据保存在CDHDR和CDPOS表中,提取旧值可以采用两种方法

1) 使用sap的标准函数CHANGEDOCUMENT_READ_HEADERS 和CHANGEDOCUMENT_READ_POSITIONS

CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS' \change document items EXPORTING

* archive_handle = 0 \ changenumber = \* tablekey = SPACE \* tablename = SPACE \

* tablekey254 = SPACE \* keyguid = SPACE \* keyguid_str = SPACE \IMPORTING

header = \

et_cdred_str = \* TABLES

* editpos = \EDITPOS_WITH_HEADER = \更改文档,显示结构 EXCEPTIONS

NO_POSITION_FOUND = 1 \

WRONG_ACCESS_TO_ARCHIVE = 2 \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 中设置中断获得对象类型。

2页

如有你有帮助,请购买下载,谢谢!

ex.

提取有变动的 Acc. changes

SELECT SINGLE tabkey value_new INTO (cdpos-tabkey,ikoinh) FROM cdpos

WHERE objectclas = 'KRED' AND objectid = itab-lifnr AND changenr = itab-changenr AND tabname = 'LFBK' AND fname = 'KOINH'. 提取有变动的vendor最新日期

SELECT MAX( udate ) INTO itab-cndate FROM cdhdr WHERE objectclas = 'KRED' AND objectid = itab-lifnr. -------------------------------------------------------------------------------- 抓取所有有变动的程序 report ztest001. TYPE-POOLS slis. DATA : cdhdr TYPE cdhdr. SELECT-OPTIONS :

s_objcls FOR cdhdr-objectclas OBLIGATORY, s_objtid FOR cdhdr-objectid, s_chngnr FOR cdhdr-changenr,

s_usrnam FOR cdhdr-username DEFAULT sy-uname, s_udate FOR cdhdr-udate DEFAULT sy-datum, s_time FOR cdhdr-utime, s_tcode FOR cdhdr-tcode, s_plncnr FOR cdhdr-planchngnr, s_chngno FOR cdhdr-act_chngno, s_wsplnd FOR cdhdr-was_plannd, s_chngid FOR cdhdr-change_ind.

SELECTION-SCREEN SKIP.

PARAMETERS p_max TYPE numc3 OBLIGATORY DEFAULT '200'.

*---------------------------------------------------------------------* TYPES :

BEGIN OF ty_s_cdhdr.

INCLUDE STRUCTURE cdhdr. TYPES : checkbox, END OF ty_s_cdhdr,

BEGIN OF ty_s_cdpos.

INCLUDE STRUCTURE cdpos. TYPES : checkbox,

3页