В примере разберем логирование таблиц через Документы изменений. Данные о модификациях будут сохраняться в таблицах CDHRD и CDPOS. Просмотр возможен из программы RSSCD200.
Для начала создадим таблицу
Нас будет интересовать, создание, удаление записи и изменение отдельных полей таблицы.
Чтобы изменения полей были зафиксированы, необходимо в элементе данных поля проставить "галку" "Документ изменений".
Далее перейдем в транзакцию SCDO для создания Документа изменений и нажимаем "создать".
Вводим имя объекта изменений и жмем "дальше"
Вводим имена Интересующих нас таблиц. В нашем случае она одна. Жмем "Вставить записи" и Сохраняем
Далее генерируем программу обновлений
В открывшемся окне жмем "Да"
Указываем желаемые параметры:
После генерации увидим окно с информацией:
В сгенерированной группе функций будет фм для записи с именем Z*WRITE_DOCUMENT его-то мы и будем использовать
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
" " DATA lt_cdtxt TYPE TABLE OF cdtxt. DATA lv_cdobjectv TYPE cdobjectv VALUE '1'. DATA lv_CHANGE_IND TYPE CDHDR-CHANGE_IND. CALL FUNCTION 'Z*тут должно имя вашего ФМ*_WRITE_DOCUMENT' EXPORTING objectid = lv_cdobjectv tcode = sy-tcode utime = sy-uzeit udate = sy-datum username = sy-uname n_*имя таблицы = is_new_line "имя и тип этих полей зависит от вашей таблицы o_*имя таблицы = is_old_line "имя и тип этих полей зависит от вашей таблицы upd_*имя таблицы = lv_change_ind "имя и тип этих полей зависит от вашей таблицы TABLES icdtxt_zmm_req_data = lt_cdtxt. |
- N_*имя таблицы -> Для новой записи
- O_*имя таблицы -> Для старой записи
- upd_*имя таблицы -> Параметр определяющий действие
Вставка записи - upd_*имя таблицы = 'I'
- N_*имя таблицы -> Новая строка
- O_*имя таблицы -> Игнорируется
Обновление записи - upd_*имя таблицы = 'U'
- N_*имя таблицы -> Новая строка
- O_*имя таблицы -> Старая строка
Удаление записи - upd_*имя таблицы = 'D'
- N_*имя таблицы -> Игнорируется
- O_*имя таблицы -> Старая строка
Просмотреть журнал изменений можно в программе RSSCD200.
Пример для таблицы из примера:
Чтобы лог учитывался в ракурсе необходимо вызывать ФМ в следующих событиях:
02 - после сохранения данных в базе данных
04-после удаления отображаемых данных
05-создание новой записи
08 - После корректировки содержимого выбранного поля.