方案一:se38:RCS00100,F8執行(DATUM表示開始日期,tabname:BOM的Header,填寫STKO;如落實到item級別,填寫STPO)。然后再執行即可看到00104708該用戶所做得創建,修改,刪除bom得所有記錄(哈哈很簡單把,我也覺得很簡單,而且結果確實看到了,我所做得關於bom得每一筆數據,測試成功!)
方案二:se11/se12:CDHDR【CDHDR是記錄Header層面的Change,CDPOS記錄item級別的Change】(實用程序-表內容-顯示)
第一步:SE12,Table=CDHDR,Table Contents。字段選擇如下填寫:
Change doc. object=STUE(排他性的)
Date:起止日期,自己確定,日期段落越大,運行時間越長
Transaction:CS02(除了CS02變更BOM之外,我想不出還有什么刪除BOM的方法)
Appl.obj.change:U(只能是U,但我本人也很迷惑為什么刪除了的BOM不能是D)執行。系統將顯示有關的記錄,記錄下有關的Object value的號碼。
第二步:SE12,Table=CDPOS,Table Contents。字段選擇如下填寫:
Change doc. object=STUE(排他性的)
Object Value:從第一步獲得
Table name:STPO(排他性的)
Change ID:D,U反映的是item值的新舊對比記錄
-------------------------------------------------求SAP系統用ABAP開發關於BOM的修改記錄或日志報表[程序未測試]------------------------------------------
1 concatenate sy-mandt 'M' itab_bom-stlnr into objectid. 2 clear itab_cdhdr. 3 refresh itab_cdhdr. 4 clear change_data. 5 refresh change_data. 6 7 CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS' 8 EXPORTING 9 DATE_OF_CHANGE = '00000000' 10 OBJECTCLASS = 'STUE' 11 OBJECTID = objectid 12 TIME_OF_CHANGE = '000000' 13 USERNAME = '' 14 TABLES 15 I_CDHDR = ICDHDR 16 EXCEPTIONS 17 NO_POSITION_FOUND = 1 18 OTHERS = 2. 19 20 if icdhdr[] is not initial. 21 loop at icdhdr where udate >= s_erdat-low. 22 itab_cdhdr-objectclas = icdhdr-objectclas. 23 itab_cdhdr-objectid = icdhdr-objectid. 24 itab_cdhdr-changenr = icdhdr-changenr. 25 itab_cdhdr-udate = icdhdr-udate. 26 append itab_cdhdr. 27 28 CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS' 29 EXPORTING 30 CHANGENUMBER = ICDHDR-CHANGENR 31 * TABLEKEY = TABKEY 32 TABLENAME = 'STPO' 33 IMPORTING 34 HEADER = CDHDR 35 TABLES 36 EDITPOS = ICDSHW 37 EXCEPTIONS 38 NO_POSITION_FOUND = 1 39 OTHERS = 2. 40 * 41 * select objectclas objectid changenr tabname tabkey fname chngind 42 * value_new value_old from cdpos into table change_data 43 * where objectclas = 'STUE' and objectid = bom_temp-objectid 44 * and tabkey = bom_temp-tabkey and tabname = 'STPO' and 45 * ( fname = 'IDNRK' or fname = 'MENGE' or fname = 'KEY' ). 46 47 if icdshw[] is not initial. 48 loop at icdshw. 49 MOVE itab_cdhdr-objectclas TO change_data-objectclas. 50 MOVE itab_cdhdr-objectid TO change_data-objectid. 51 MOVE itab_cdhdr-changenr TO change_data-changenr. 52 MOVE itab_cdhdr-udate TO change_data-udate. 53 MOVE ICDSHW-TABNAME TO change_data-tabname. 54 MOVE ICDSHW-TABKEY TO change_data-tabkey. 55 MOVE ICDSHW-FNAME TO change_data-fname. 56 MOVE ICDSHW-F_OLD TO change_data-value_old. 57 MOVE ICDSHW-F_NEW TO change_data-value_new. 58 MOVE ICDSHW-CHNGIND TO change_data-chngind. 59 APPEND change_data. 60 endloop. 61 endif. 62 endloop. 63 endif.