sap表修改记录查询.docx
- 文档编号:30611942
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:13
- 大小:19.03KB
sap表修改记录查询.docx
《sap表修改记录查询.docx》由会员分享,可在线阅读,更多相关《sap表修改记录查询.docx(13页珍藏版)》请在冰豆网上搜索。
sap表修改记录查询
SAP表修改记录查询
SAP中修改频率较低的定制表(T001等)一般都会有修改记录存在,查看一个表有没有修改记录可以在SE11中查看他的技术设置,如果其中的LOGDATACHANGES选中则表示此表有历史修改记录存在。
要查看他的修改记录可以使用Tcode:
SCU3。
菜单路径:
工具-定制-IMG-IMGLogging
参考说明:
...cfab6d/frameset.htm
系统读取历史修改记录的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和userprofile,可惜,小弟权限不够没法测试
更改记录表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表
转载自 (在此基础上做了修改)
sap的字段和对象的修改都会保存旧值,数据保存在CDHDR和CDPOS表中,提取旧值可以采用两种方法
1) 使用sap的标准函数CHANGEDOCUMENT_READ_HEADERS 和CHANGEDOCUMENT_READ_POSITIONS
CALLFUNCTION'CHANGEDOCUMENT_READ_POSITIONS'"Changedocument:
Readchangedocumentitems
EXPORTING
* archive_handle=0 "sy-tabix HandleonOpenArchiveFiles
changenumber= "cdpos-changenr Changedocumentnumber
* tablekey=SPACE "cdpos-tabkey Objectclasstablekey
* tablename=SPACE "cdpos-tabname Objectclasstablename
* tablekey254=SPACE "cdpos_uid-tabkey TableKeyforCDPOSinCharacter254
* keyguid=SPACE "cdpos_uid-keyguid UUIDinCharacterFormat
* keyguid_str=SPACE "cdpos_str-keyguid UUIDinCharacterFormat
IMPORTING
header= "cdhdr Changedocumentheader(structureCDHDR)
et_cdred_str= "cdred_str_tab AdditionalChangeDocument-TableforSTRINGs
*TABLES
* editpos= "cdshw Tablewitheditedchangedocumentitems
EDITPOS_WITH_HEADER = "CDRED 更改文档,显示结构
EXCEPTIONS
NO_POSITION_FOUND=1 " Noitemfoun
WRONG_ACCESS_TO_ARCHIVE=2 " incorrectaccesstoarchive
2)使用select语句直接从表中读取。
直接使用SELECT语句读取数据的示例:
*提取信用额度字段修改的抬头信息 selectcdhdr~changenrcdhdr~udatecdhdr~utime intocorrespondingfieldsoftablep_cdhdr fromcdhdr wherecdhdr~objectclas='KLIM'and cdhdr~objectid=wa_customerinfo-kunnr. ifsy-subrc=0.*提取信用额度字段修改的字段值 selectcdpos~changenrcdpos~value_oldcdpos~value_new intocorrespondingfieldsoftablep_cdpos fromcdpos forallentriesinp_cdhdr wherecdpos~objectclas='KLIM'and cdpos~objectid=wa_customerinfo-kunnrand cdpos~changenr=p_cdhdr-changenrand cdpos~tabname='KNKK'and cdpos~fname='KLIMK'. ifsy-subrc=0. endif.endif.
可以在CHANGEDOCUMENT_READ_HEADERS 中设置中断获得对象类型。
ex.
提取有变动的 Acc.changes
SELECTSINGLEtabkeyvalue_new INTO(cdpos-tabkey,ikoinh)
FROMcdpos
WHERE objectclas='KRED'
ANDobjectid=itab-lifnr
ANDchangenr=itab-changenr
ANDtabname='LFBK'
ANDfname='KOINH'.
提取有变动的vendor最新日期
SELECTMAX(udate)INTOitab-cndateFROMcdhdr
WHEREobjectclas='KRED'ANDobjectid=itab-lifnr.
--------------------------------------------------------------------------------
抓取所有有变动的程序
reportztest001.
TYPE-POOLSslis.
DATA:
cdhdrTYPEcdhdr.
SELECT-OPTIONS:
s_objclsFORcdhdr-objectclasOBLIGATORY,
s_objtidFORcdhdr-objectid,
s_chngnrFORcdhdr-changenr,
s_usrnamFORcdhdr-usernameDEFAULTsy-uname,
s_udate FORcdhdr-udate DEFAULTsy-datum,
s_time FORcdhdr-utime,
s_tcode FORcdhdr-tcode,
s_plncnrFORcdhdr-planchngnr,
s_chngnoFORcdhdr-act_chngno,
s_wsplndFORcdhdr-was_plannd,
s_chngidFORcdhdr-change_ind.
SELECTION-SCREENSKIP.
PARAMETERSp_maxTYPEnumc3OBLIGATORYDEFAULT'200'.
*---------------------------------------------------------------------*
TYPES:
BEGINOFty_s_cdhdr.
INCLUDESTRUCTUREcdhdr.
TYPES:
checkbox,
ENDOFty_s_cdhdr,
BEGINOFty_s_cdpos.
INCLUDESTRUCTUREcdpos.
TYPES:
checkbox,
ENDOFty_s_cdpos.
*---------------------------------------------------------------------*
DATA:
*LayoutforALV
gs_layoutTYPEslis_layout_alv,
*Changedocumentheader
t_cdhdrTYPETABLEOFty_s_cdhdr.
*---------------------------------------------------------------------*
START-OF-SELECTION.
*ReadChangedocumentheader
SELECT*INTOTABLEt_cdhdr
UPTOp_maxROWS
FROMcdhdr
WHEREobjectclasINs_objcls
andobjectid ins_objtid
andchangenr ins_chngnr
ANDusername INs_usrnam
ANDudate INs_udate
ANDutime INs_time
ANDtcode INs_tcode
ANDplanchngnrINs_plncnr
ANDact_chngnoINs_chngno
ANDwas_planndINs_wsplnd
AND
change_indINs_chngid.
gs_layout-zebra='X'.
gs_layout-colwidth_optimize='X'.
gs_layout-box_fieldname='CHECKBOX'.
*DisplayALV
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program =sy-cprog
i_callback_user_command='USER_COMMAND'
i_structure_name ='CDHDR'
is_layout =gs_layout
TABLES
t_outtab =t_cdhdr.
*---------------------------------------------------------------------*
* FORMUSER_COMMAND *
*---------------------------------------------------------------------*
FORMuser_commandUSINGu_ucomm TYPEsyucomm
us_selfieldTYPEslis_selfield. "#ECCALLED
*Macrodefinition
DEFINEm_sort.
add1tols_sort-spos.
ls_sort-fieldname=&1.
ls_sort-up='X'.
appendls_sorttolt_sort.
END-OF-DEFINITION.
DATA:
ls_cdhdrTYPEty_s_cdhdr,
ls_sort TYPEslis_sortinfo_alv,
lt_sort TYPEslis_t_sortinfo_alv,
* Changedocumentitems
lt_cdposTYPETABLEOFty_s_cdpos.
CASEu_ucomm.
WHEN'&IC1'.
PERFORMcheck_markedUSINGus_selfield.
* ReadChangedocumentitems
LOOPATt_cdhdrINTOls_cdhdrWHEREcheckbox='X'.
SELECT*APPENDINGTABLElt_cdpos
FROM
cdpos
WHEREobjectclas=ls_cdhdr-objectclas
ANDobjectid =ls_cdhdr-objectid
ANDchangenr =ls_cdhdr-changenr.
ENDLOOP.
m_sort'CHANGENR'.
* DisplayALV
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name='CDPOS'
is_layout =gs_layout
it_sort =lt_sort
TABLES
t_outtab =lt_cdpos.
ENDCASE.
ENDFORM. "USER_COMMAND
*--------------------------------------------------------------------FORMcheck_markedUSINGus_selfieldTYPEslis_selfield.
FIELD-SYMBOLS:
READTABLEt_cdhdrTRANSPORTINGNOFIELDSWITHKEYcheckbox='X'.
IFNOTsy-subrcISINITIALAND
NOTus_selfield-tabindexISINITIAL.
READTABLEt_cdhdrINDEXus_selfield-tabindexASSIGNING
ENDIF.
ENDFORM.
通过CDHDRCDPOS获取增量数据
REPORTzscm_vendor2LINE-SIZE1023.
DATA:
BEGINOFitabOCCURS0,
sprasLIKElfa1-spras,
lifnrLIKElfa1-lifnr,
name1LIKEadrc-name1,
name3LIKEadrc-name3,
regioLIKElfa1-regio,
strasLIKElfa1-stras,
str_suppl1LIKEadrc-str_suppl1,
pstlzLIKElfa1-pstlz,
telf1LIKElfa1-telf1,
telfxLIKElfa1-telfx,
name2LIKEknvk-name1,
smtp_addrLIKEadr6-smtp_addr,
buy_id(12)TYPEc,
stcegLIKElfa1-stceg,
bankaLIKEbnka-banka,
banknLIKElfbk-bankn,
vendor_type(3)TYPEc,
* balance_type(4)TYPEc,
ENDOFitab.
DATA:
BEGINOFitab_tempOCCURS0,
adrnrLIKElfa1-adrnr.
INCLUDESTRUCTUREitab.
DATA:
ENDOFitab_temp.
DATA:
BEGINOFitab_adrcOCCURS0,
addrnumberLIKEadrc-addrnumber,
name1LIKEadrc-name1,
name3LIKEadrc-name3,
str_suppl1LIKEadrc-str_suppl1,
smtp_addrLIKEadr6-smtp_addr,
ENDOFitab_adrc.
DATA:
BEGINOFitab_knvkOCCURS0,
lifnrLIKElfa1-lifnr,
name2LIKEknvk-name1,
ENDOFitab_knvk.
DATA:
BEGINOFitab_bnkaOCCURS0,
lifnrLIKElfbk-lifnr,
bankaLIKEbnka-banka,
banknLIKElfbk-bankn,
ENDOFitab_bnka.
DATA:
BEGINOFitab_lfb1OCCURS0,
lifnrLIKElfb1-lifnr,
bukrsLIKElfb1-bukrs,
ztermLIKElfb1-zterm,
ENDOFitab_lfb1.
DATA:
changenrLIKEzcdhdr_max-changenr.
PARAMETER:
dateTYPEsyst-datum.
DATA:
BEGINOFitab_objectOCCURS0,
objectidLIKElfa1-lifnr,
ENDOFitab_object.
PERFORMgetvendordata.
*&---------------------------------------------------------------------*
*& Form getvendordata
*&---------------------------------------------------------------------*
FORMgetvendordata.
**getmaxchangenr
* SELECTMAX(zcdhdr_max~changenr)
* INTOchangenr
* FROMzcdhdr_max
* WHEREzcdhdr_max~erdat *get
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sap 修改 记录 查询