ABAP/BC/Редактирование любой стандартной ABAP программы без ключа на модификацию
< ABAP
Есть 2 пути редактирования стандартных программ без запроса ключа на модификацию.
1. С помощью программы:
*&---------------------------------------------------------------------*
*& Report ZBC_EDIT_ABAP
*&
*&---------------------------------------------------------------------*
*& Название разработки: Редактор абап кода без запроса модификации *
*& Разработчики: Югов А. *
*& *
*& Описание: Чума! Не зупскать без уверенного понимания того что *
*& произойдет. Данная программа позволяет редактировать любой исходный *
*& код, доступный через SE38 *
*& Например, программа ZTEST, класс необходимо искать по F4 Название *
*& класса + * в TRDIR. *
*& *
*& Обозначения постфиксов в таблице TRDIR для классов *
*& CCDEF - часть определения типов *
*& CCIMP - *
*& CCMAC - определение макросов *
*& CI - атрибуты класса *
*& CM001, CM002, CM004... - реализация методов *
*& CO - объявления методов *
*& CP - пул инклюдов класса *
*& CT - *
*& CU - объявления методов *
*& *
*&---------------------------------------------------------------------*
REPORT zbc_edit_abap.
DATA itab TYPE TABLE OF string.
DATA lv_answer TYPE c.
PARAMETERS p_progn LIKE rs38m-programm.
READ REPORT p_progn INTO itab.
EDITOR-CALL FOR itab.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Точно сохранить????'
text_question = 'Изменнения стандарта могут нарушить правильную работу системы!'
text_button_1 = 'Да'
text_button_2 = 'Нет'
default_button = '2'
display_cancel_button = ' '
IMPORTING
answer = lv_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0
AND lv_answer EQ '1'.
" Чтобы случайно не сломать разработку безвозвратно.
CHECK itab IS NOT INITIAL.
CLEAR sy-uname.
INSERT REPORT p_progn FROM itab.
GENERATE REPORT p_progn.
COMMIT WORK AND WAIT.
ELSE.
ROLLBACK WORK.
ENDIF.
2. С помощью отладчика.
Перед редактированием любого стандартного объекта заходим в SE80.
Выбираем объект "Группа функций" "SKEY".
Разворачиваем подпрограммы данной группы функций.
Находим программу JUMP_THE_WALL.
Ставим точку прерывания на строке
CHECK SY-SUBRC NE 0.
Переходим на изменение модифицируемого стандартного объекта. И тут же попадаем на точку прерывания.
Меняем в отладчике SY-SUBRC на 0 (ноль).
Жмем F8.
Может потребоваться сделать это несколько раз.
Теперь можно менять данный стандартный объект.