日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP保存操作记录CDHDR和CDPOS表

發布時間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP保存操作记录CDHDR和CDPOS表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自http://hi.baidu.com/derrial/item/4eb7c5da614ed83c49e1dd0b?(在此基礎上做了修改)

sap的字段和對象的修改都會保存舊值,數據保存在CDHDRCDPOS表中,提取舊值可以采用兩種方法

1)?????使用sap的標準函數CHANGEDOCUMENT_READ_HEADERS?和CHANGEDOCUMENT_READ_POSITIONS

CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS' "Change document: Read change document items EXPORTING *???archive_handle = 0??????????" sy-tabix??????Handle on Open Archive Files ????changenumber =??????????????" cdpos-changenr??Change document number *???tablekey = SPACE????????????" cdpos-tabkey??Object class table key *???tablename = SPACE???????????" cdpos-tabname??Object class table name *???tablekey254 = SPACE?????????" cdpos_uid-tabkey??Table Key for CDPOS in Character 254 *???keyguid = SPACE?????????????" cdpos_uid-keyguid??UUID in Character Format *???keyguid_str = SPACE?????????" cdpos_str-keyguid??UUID in Character Format IMPORTING ????header =????????????????????" cdhdr???Change document header (structure CDHDR) ???et_cdred_str =??????????????" cdred_str_tab??Additional Change Document - Table for STRINGs * TABLES *???editpos =??????????????????" cdshw?????Table with edited change document items EDITPOS_WITH_HEADER?=???????????????"CDRED??更改文檔,顯示結構 EXCEPTIONS NO_POSITION_FOUND = 1???????"???????????????No item foun WRONG_ACCESS_TO_ARCHIVE = 2??"??????????????incorrect access to archive

?

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?中設置中斷獲得對象類型。

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,
??END OF ty_s_cdpos.

*---------------------------------------------------------------------*
DATA :
* Layout for ALV
???gs_layout TYPE slis_layout_alv,
* Change document header
???t_cdhdr TYPE TABLE OF ty_s_cdhdr.

*---------------------------------------------------------------------*
START-OF-SELECTION.

* Read Change document header
??SELECT * INTO TABLE t_cdhdr
?????????????UP TO p_max ROWS
???????????FROM cdhdr
??????????WHERE objectclas IN s_objcls
????????????and objectid???in s_objtid
????????????and changenr???in s_chngnr
????????????AND username???IN s_usrnam
????????????AND udate??????IN s_udate
????????????AND utime??????IN s_time
????????????AND tcode??????IN s_tcode
????????????AND planchngnr IN s_plncnr
????????????AND act_chngno IN s_chngno
????????????AND was_plannd IN s_wsplnd
????????????AND change_ind IN s_chngid.

???gs_layout-zebra = 'X'.
???gs_layout-colwidth_optimize = 'X'.
???gs_layout-box_fieldname = 'CHECKBOX'.

* Display ALV
??CALL FUNCTION '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.

*---------------------------------------------------------------------*
*????????FORM USER_COMMAND??????????????????????????????????????????????*
*---------------------------------------------------------------------*
FORM user_command USING u_ucomm?????TYPE syucomm
?????????????????????????us_selfield TYPE slis_selfield.?????"#EC CALLED

* Macro definition
??DEFINE m_sort.
????add 1 to ls_sort-spos.
?????ls_sort-fieldname = &1.
?????ls_sort-up = 'X'.
????append ls_sort to lt_sort.
??END-OF-DEFINITION.

??DATA :
?????ls_cdhdr TYPE ty_s_cdhdr,
?????ls_sort??TYPE slis_sortinfo_alv,
?????lt_sort??TYPE slis_t_sortinfo_alv,
*????Change document items
?????lt_cdpos TYPE TABLE OF ty_s_cdpos.

??CASE u_ucomm.
????WHEN '&IC1'.
??????PERFORM check_marked USING us_selfield.

*??????Read Change document items
??????LOOP AT t_cdhdr INTO ls_cdhdr WHERE checkbox = 'X'.
????????SELECT * APPENDING TABLE lt_cdpos
?????????????????FROM cdpos
????????????????WHERE objectclas = ls_cdhdr-objectclas
??????????????????AND objectid????= ls_cdhdr-objectid
??????????????????AND changenr????= ls_cdhdr-changenr.
??????ENDLOOP.

???????m_sort 'CHANGENR'.

*??????Display ALV
??????CALL FUNCTION '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
*--------------------------------------------------------------------FORM check_marked USING us_selfield TYPE slis_selfield.

??FIELD-SYMBOLS :
?????<cdhdr> TYPE ty_s_cdhdr.

??READ TABLE t_cdhdr TRANSPORTING NO FIELDS WITH KEY checkbox = 'X'.
??IF NOT sy-subrc IS INITIAL AND
?????NOT us_selfield-tabindex IS INITIAL.
????READ TABLE t_cdhdr INDEX us_selfield-tabindex ASSIGNING <cdhdr>.
?????<cdhdr>-checkbox = 'X'.
??ENDIF.

ENDFORM.

總結

以上是生活随笔為你收集整理的SAP保存操作记录CDHDR和CDPOS表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。