ABAP/BC/Редактирование любой стандартной ABAP программы без ключа на модификацию

Материал из Викиучебника — открытых книг для открытого мира
Перейти к навигации Перейти к поиску

Есть 2 пути редактирования стандартных программ без запроса ключа на модификацию.

1. С помощью программы:

 1 *&---------------------------------------------------------------------*
 2 *& Report  ZBC_EDIT_ABAP
 3 *&
 4 *&---------------------------------------------------------------------*
 5 *& Название разработки: Редактор абап кода без запроса модификации     *
 6 *& Разработчики: Югов А.                                               *
 7 *&                                                                     *
 8 *& Описание: Чума! Не зупскать без уверенного понимания того что       *
 9 *& произойдет. Данная программа позволяет редактировать любой исходный *
10 *& код, доступный через SE38                                           *
11 *& Например, программа ZTEST, класс необходимо искать по F4 Название   *
12 *& класса + * в TRDIR.                                                 *
13 *&                                                                     *
14 *& Обозначения постфиксов в таблице TRDIR для классов                  *
15 *& CCDEF - часть определения типов                                     *
16 *& CCIMP -                                                             *
17 *& CCMAC - определение макросов                                        *
18 *& CI - атрибуты класса                                                *
19 *& CM001, CM002, CM004... - реализация методов                         *
20 *& CO - объявления методов                                             *
21 *& CP - пул инклюдов класса                                            *
22 *& CT -                                                                *
23 *& CU - объявления методов                                             *
24 *&                                                                     *
25 *&---------------------------------------------------------------------*
26 
27 REPORT  zbc_edit_abap.
28 
29 DATA itab TYPE TABLE OF string.
30 
31 DATA lv_answer TYPE c.
32 
33 PARAMETERS p_progn LIKE rs38m-programm.
34 
35 READ REPORT p_progn INTO itab.
36 
37 EDITOR-CALL FOR itab.
38 
39 CALL FUNCTION 'POPUP_TO_CONFIRM'
40   EXPORTING
41     titlebar              = 'Точно сохранить????'
42     text_question         = 'Изменнения стандарта могут нарушить правильную работу системы!'
43     text_button_1         = 'Да'
44     text_button_2         = 'Нет'
45     default_button        = '2'
46     display_cancel_button = ' '
47   IMPORTING
48     answer                = lv_answer
49   EXCEPTIONS
50     text_not_found        = 1
51     OTHERS                = 2.
52 
53 IF sy-subrc EQ 0
54 AND lv_answer EQ '1'.
55   " Чтобы случайно не сломать разработку безвозвратно.
56   CHECK itab IS NOT INITIAL.
57   CLEAR sy-uname.
58   INSERT REPORT p_progn FROM itab.
59   GENERATE REPORT p_progn.
60   COMMIT WORK AND WAIT.
61 ELSE.
62   ROLLBACK WORK.
63 ENDIF.

2. С помощью отладчика.

Перед редактированием любого стандартного объекта заходим в SE80.

Выбираем объект "Группа функций" "SKEY".

Разворачиваем подпрограммы данной группы функций.

Находим программу JUMP_THE_WALL.

Ставим точку прерывания на строке

78   CHECK SY-SUBRC NE 0.

Переходим на изменение модифицируемого стандартного объекта. И тут же попадаем на точку прерывания.

Меняем в отладчике SY-SUBRC на 0 (ноль).

Жмем F8.

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

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