有时候需要使用文档变更记录,可以用Change Document实现。
1. 表:技术设置-“日志数据修改”选上。
2. 需要记录的Fields-字段类型:选上“更改文档”。
3. SCDO创建变更凭证对象。
4. 程序中调用:
Top Include f<Object Name>cdt
Content Include f<Object Name>cdc
5. 查询:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
详细内容CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
REPORT Z_TESTDC2 .
INCLUDE FZNCNCDT.
DATA: BEGIN OF ICDHDR OCCURS 50.
INCLUDE STRUCTURE CDHDR.
DATA: END OF ICDHDR.
DATA WA_ICDHDR LIKE ICDHDR.
DATA: WA_ZNEW26 LIKE ZNEW26,
WA_OZNEW26 LIKE ZNEW26.
DATA: OK_CODE TYPE SY-UCOMM,
SAVE_OK TYPE SY-UCOMM.
CALL SCREEN 0100.
START-OF-SELECTION.
LOOP AT ICDHDR.
WRITE: / ICDHDR-USERNAME.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'SHOW'.
SELECT SINGLE * FROM ZNEW26 INTO WA_ZNEW26
WHERE WERKS = ZNEW26-WERKS.
MOVE-CORRESPONDING WA_ZNEW26 TO ZNEW26.
MOVE WA_ZNEW26 TO *ZNEW26.
WHEN 'UPDATE'.
MOVE-CORRESPONDING ZNEW26 TO WA_ZNEW26.
MODIFY ZNEW26 FROM WA_ZNEW26.
MOVE: 'ZNEW26' TO OBJECTID,
SY-TCODE TO TCODE,
SY-UZEIT TO UTIME,
SY-DATUM TO UDATE,
SY-UNAME TO USERNAME,
'U' TO UPD_ZNEW26.
PERFORM CD_CALL_ZNCD.
COMMIT WORK.
WHEN 'SHOWCD'.
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
OBJECTCLASS = ''
OBJECTID = 'ZNEW26'
DATA_OF_CHANGE = '20080526'
DATA_UNTIL = '20080526'
TABLES
I_CDHDR = ICDHDR
EXCEPTIONS
no_position_found = 1
OTHERS = 2.
LEAVE TO SCREEN 0.
WHEN OTHERS.
* Nothings
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
INCLUDE FZNCNCDC.