SAP-ABAP批量查询SAP标准日志(更改历史記錄)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
描述OBJECTCLAS對象物料主数据变更查询(MM03)MATERIAL
采购信息记录变更查询(ME1L)INFOSATZ
采购申请(PR)BANF
采购订单变更查询(PO)EINKBELEG
销售凭证(含合同、订单等)VERKBELEG
客户DEBI
供应商KRED
信⽤(FD32)KLIM
CDHDR -抬头表
OBJECTCLAS对象类
OBJECTID对象值
CHANGENR⽂档更改编号
CHANGE_IND U 更新
I 插⼊
E 删除 (单字段⽂档) D 删除
J 插⼊ (单字段⽂档)
SAP-ABAP批量查询SAP标准⽇志(更改历史記錄)
常⽤對象名:
如何查找对象
1.对象表:TCDOB
TCDOBT(SE11,根據表查詢
對象)/SCDO(根據對象查詢
表)
2.⽤单号,编码模糊查询
3.限定时间与⽤户进⾏测试
批量查询标准⽇志
⽅法⼀:事务代码(SE38):RSSCD100 / (RC1CD100\RSSCD1TS)
⽅法⼆:后台表(SE11):CDHDR 和 CDPOS
CDPOS-项⽬表
OBJECTCLAS对象类
OBJECTID对象值
CHANGENR⽂档更改编号
TABNAME表名
TABKEY已更改的表记录码
FNAME字段名
CHNGIND修改类型 (U, I, E, D)
TEXT_CASE标识:X=⽂本更改
UNIT_OLD更改⽂档,参照的单位
UNIT_NEW更改⽂档,参照的单位
CUKY_OLD更改⽂档,参照货币
CUKY_NEW更改⽂档,参照货币
VALUE_NEW更改字段的新内容
VALUE_OLD更改字段的新内容
*&---------------------------------------------------------------------*
*& Report ZCDHDR_CDPOS
*&
*&---------------------------------------------------------------------*
*&
*& 标准程序:RSSCD100
*&---------------------------------------------------------------------*
REPORT zcdhdr_cdpos NO STANDARD PAGE HEADING .
TYPE-POOLS: slis.
TABLES: cdhdr,cdred,tcdob.
DATA: fldct TYPE slis_t_fieldcat_alv,
slayt TYPE slis_layout_alv ,
varnt LIKE disvariant,
repid LIKE sy-repid .
DATA: itab TYPE TABLE OF cdred WITH HEADER LINE.
DATA: it_cdhdr TYPE TABLE OF cdhdr WITH HEADER LINE.
DATA: it_cdred TYPE TABLE OF cdred WITH HEADER LINE.
SELECT-OPTIONS :
s_clas FOR tcdob-object OBLIGATORY ,
s_objtid FOR cdhdr-objectid,
s_usrnam FOR cdhdr-username ,
s_udate FOR cdhdr-udate DEFAULT sy-datum,
s_time FOR cdhdr-utime,
s_tcode FOR cdhdr-tcode,
s_tab FOR cdred-tabname,
s_fname FOR cdred-fname,
s_tabkey FOR cdred-tabkey .
AT SELECTION-SCREEN OUTPUT.
%_s_clas_%_app_%-text = '对象类'.
%_s_objtid_%_app_%-text = '对象值'.
%_s_usrnam_%_app_%-text = '⽤户名'.
%_s_udate_%_app_%-text = '⽇期'.
%_s_time_%_app_%-text = '时间'.
%_s_tcode_%_app_%-text = '事务码'.
%_s_tab_%_app_%-text = '修改的表名'.
%_s_fname_%_app_%-text = '字段名'.
%_s_tabkey_%_app_%-text = 'KEY值'.
START-OF-SELECTION.
PERFORM getdata.
PERFORM outdata.
*&---------------------------------------------------------------------*
*& Form getdata
*&---------------------------------------------------------------------* FORM getdata.
CLEAR: itab,itab[],it_cdhdr,it_cdhdr[].
SELECT * INTO TABLE it_cdhdr
FROM cdhdr
WHERE objectclas IN s_clas AND
objectid IN s_objtid AND
username IN s_usrnam AND
udate IN s_udate AND
utime IN s_time AND
tcode IN s_tcode .
LOOP AT it_cdhdr.
CLEAR: it_cdred,it_cdred[].
CALL FUNCTION'CHANGEDOCUMENT_READ'
EXPORTING
changenumber = it_cdhdr-changenr
objectclass = it_cdhdr-objectclas
objectid = it_cdhdr-objectid
TABLES
editpos = it_cdred
EXCEPTIONS
no_position_found = 1
wrong_access_to_archive = 2
time_zone_conversion_error = 3
OTHERS = 4.
IF sy-subrc = 0.
LOOP AT it_cdred WHERE fname IN s_fname AND tabname IN s_tab AND
tabkey IN s_tabkey .
APPEND it_cdred TO itab.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDFORM. "getdata
*&---------------------------------------------------------------------*
*& Form outdata
*&---------------------------------------------------------------------* FORM outdata.
DATA lines(10).
slayt-colwidth_optimize = 'X'.
slayt-zebra = 'X'.
slayt-detail_initial_lines = 'X'. "&ETA 空单元格也显⽰ repid = sy-repid.
CALL FUNCTION'REUSE_ALV_GRID_DISPLAY' EXPORTING
i_callback_program = repid
i_structure_name = 'CDRED'
i_save = 'A'
is_layout = slayt
i_callback_user_command = 'USER_COMMAND' TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "outdata
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------* FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfld TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
READ TABLE itab INDEX rs_selfld-tabindex.
CHECK sy-subrc = 0.
WHEN 'REFRESH'.
PERFORM getdata.
ENDCASE.
rs_selfld-row_stable = 'X'.
rs_selfld-col_stable = 'X'.
rs_selfld-refresh = 'X'.
ENDFORM. "user_command
*&--------------------------------------------------------------------*
*& Form set_status
*&--------------------------------------------------------------------* FORM set_status USING rt_extab TYPE slis_t_extab. SET PF-STATUS'STANDARD' EXCLUDING rt_extab . ENDFORM. "set_status
ZCDHDR_CDPOS。