Hi, Have you consider FUNCTION "CHANGEDOCUMENT_SINGLE_CASE" ?
I am using it to track changes in Z tables .
Can you add code where you update your Z file ?
Make sure your data elements "Indicator for writing change documents" is set.
Regards.
Code: *----------------------------------------------------------------------* FORM do_add_change_document USING objectclas TYPE cdhdr-objectclas tabname TYPE cdpos-tabname change_ind TYPE cdhdr-change_ind objectid TYPE cdhdr-objectid image_new image_old . DATA: st_cdhdr TYPE cdhdr . DATA: st_cdpos TYPE cdpos . st_cdhdr-objectclas = objectclas . st_cdpos-tabname = tabname . st_cdhdr-change_ind = change_ind . st_cdhdr-objectid = objectid . CALL FUNCTION 'CHANGEDOCUMENT_OPEN' EXPORTING objectclass = st_cdhdr-objectclas objectid = st_cdhdr-objectid planned_change_number = ' ' planned_or_real_changes = ' ' EXCEPTIONS sequence_invalid = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CALL FUNCTION 'CHANGEDOCUMENT_SINGLE_CASE' EXPORTING change_indicator = st_cdhdr-change_ind docu_delete = 'X' tablename = st_cdpos-tabname workarea_new = image_new workarea_old = image_old EXCEPTIONS nametab_error = 1 open_missing = 2 position_insert_failed = 3 OTHERS = 4. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. st_cdhdr-username = sy-uname . st_cdhdr-udate = sy-datum . st_cdhdr-utime = sy-uzeit . st_cdhdr-tcode = sy-tcode . CALL FUNCTION 'CHANGEDOCUMENT_CLOSE' EXPORTING objectclass = st_cdhdr-objectclas objectid = st_cdhdr-objectid tcode = st_cdhdr-tcode username = st_cdhdr-username date_of_change = st_cdhdr-udate time_of_change = st_cdhdr-utime object_change_indicator = st_cdhdr-change_ind IMPORTING changenumber = st_cdhdr-changenr EXCEPTIONS header_insert_failed = 1 no_position_inserted = 2 object_invalid = 3 open_missing = 4 position_insert_failed = 5 OTHERS = 6. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM . "do_add_change_document *----------------------------------------------------------------------* FORM do_changedocu_key USING record TYPE data tabname TYPE tabname CHANGING objectid TYPE cdobjectv . * For the object ID. DATA: ev_tabkey TYPE cdpos_uid-tabkey . CALL FUNCTION 'CHANGEDOCU_KEY_ANY2CHAR' EXPORTING iv_struct_in = record iv_tabname = tabname IMPORTING ev_tabkey = ev_tabkey EXCEPTIONS tabname_is_empty = 1 nametab_error = 2 OTHERS = 3. IF sy-subrc NE 0. ENDIF. objectid = ev_tabkey . ENDFORM . "do_changedocu_key *----------------------------------------------------------------------* FORM do_dsp_change_document USING objectclas TYPE cdhdr-objectclas tabname TYPE cdpos-tabname objectid TYPE cdhdr-objectid . * Display . DATA: editpos TYPE TABLE OF cdred . CALL FUNCTION 'CHANGEDOCUMENT_READ' EXPORTING objectclass = objectclas tablename = tabname objectid = objectid TABLES editpos = editpos EXCEPTIONS no_position_found = 1 wrong_access_to_archive = 2 time_zone_conversion_error = 3 OTHERS = 4. CHECK sy-subrc EQ 0. CALL FUNCTION 'CHANGEDOCUMENT_DISPLAY' EXPORTING i_applicationid = sy-repid flg_autocondense = abap_false i_screen_start_line = 10 i_screen_start_column = 10 i_screen_end_line = 20 i_screen_end_column = 150 TABLES i_cdred = editpos. ENDFORM . "do_dsp_change_document