ABAP/BC/Редактирование любой стандартной 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.

Может потребоваться сделать это несколько раз.

Теперь можно менять данный стандартный объект.