Отключение проверки разработчика


Актуальная версия стстьи резмещена по адресу www.sapbasis.ru/articles/makesapdev/.


Кому это надо?

Вы поставили SAP-систему, скажем, домой, после чего Вам захотелось написать пару-тройку программ на языке ABAP... К сожалению, в этом сценарии есть одна проблема: при попытке создать или изменить программу, или другой объект разработки, SAP-система попросит ввести Вас код разработчика. Последний можно получить у создателя системы и это — самый правильный выход, хотя и не всегда возможный.

В тех случаях, когда Вы не имеете возможность запросить код разработчика (Интернет, впрочем как и телефон, вне досягаемости, или по каким-то другим веским причинам), можно попытаться отключить проверку кода разработчика. На время, конечно.

Идея

Проверка на наличие кода разработчика используется всякий раз, когда пользователь системы выполняет работу с объектом разработки. В системе нет "галочки", которая указывала бы, что тот пользователь — разработчик, а этот — нет. Всякий раз, когда пользователь пытается работать с объектом разработки, системы проверяет имеется ли код разработчика у пользователя. Проверка выполняется функциональным ABAP-модулем DEVELOPER_KEY_CHECK, который, в свою очередь, основан на функции ядра системы — CHECK_DEVELOPER_KEY. Самый простой способ отключить проверку, на мой взгляд, заключается в удалении кода вызова функции ядра. Для этого достаточно, в упомянутом ABAP-модуле, поменять строку:

CALL 'CHECK_DEVELOPER_KEY' ID 'KEY' FIELD DEVELOPKEY.
на:
SY-SUBRC=0

Реализация

Приведенная реализация верна для SAP-систем с функциональностью базиса версии 4.6D. Полагаю, что в других версиях реализация будет аналогичной.

Для отключения проверки код разработчика выполните следующие действия:

  1. Снимите блокировку на редактирование программы LSKEYU02. Указанная программа — код функционального модуля DEVELOPER_KEY_CHECK. В стандартной системе программа заблокирована пользователем с именем SAP. Блокировка может быть снята с помощью сброса поля EDTX в таблице TRDIR. В системе с СУБД Oracle эта задача может быть выполнена с помощью программы sqlplus: зарегистрируйтесь пользователем-владельцем схемы SAP-системы (пользователь sapr3 в не MCOD-инсталляциях). Выполните следующие команды:

    update sapr3.trdir set edtx= ' ' where name = 'LSKEYU02';
    commit;
    
  2. С помощью транзакции SM37 установите точку прерывания в функциональном модуле DEVELOPER_KEY_CHECK на строке вызова функции ядра.

  3. Создайте новый режим, вновь запустите транзакцию SM37, укажите функциональный модуль DEVELOPER_KEY_CHECK и выберите режим его редактирования.

  4. Система перейдет в режим отладки на точке прерывания, которую Вы установили. Вызовите функцию ядра CHECK_DEVELOPER_KEY (клавиша F6). В поле оценки и модификации переменных программы введите имя переменной SY-SUBRC и нажмите ENTER. В соответствующем поле FIELD CONTENTS система отобразит значение переменной (оно будет отличным от нуля). Замените содержимое переменной на 0 и зафиксируйте изменение (кнопка CHGE FLD CONTENTS).

  5. Выполните несколько шагов в отладчике (F6) — до вызова функционального модуля TADIR_OBJECT_CHECK. Нажмите F6.

  6. Система запросит Вас ввести ключ доступа на модификацию объекта SAP и ключ разработчика. Заполните эти поля произвольными значениями и выберете команду CONTINUE, на замечание, что код неверный и вопрос Do you want try again? ответьте NO.

  7. В отладчика сбросьте в 0 значение перемменной SY-SUBRC и запустите программу на выполнение (F8).

  8. Система перейдет в режим редактирования функционального модуля DEVELOPER_KEY_CHECK. Комментируйте вызов функции ядра, добавьте, после комментированный Вами строки, код обнуления переменной SY-SUBRC:

    SY-SUBRC = 0. 
    
  9. Сохраните и активируйте исправленный функциональный модуль. Система еще несколько раз перейдет в режим отладки, после чего Вам необходимо будет выполнить последовательность действий пп. 4–7. Обратите внимание, что на определенном этапе, после того как исправленный код будет уже сохранен, но еще не будет активирован, система может неверно позиционировать текст программы в отладчике.



Rambler's Top100

Сайт создан в системе uCoz