Если нужно понять, как работает та или иная функция в системе, а документации нет, то на помощь придет некоторое знание программирования и отладчик. В отладчик можно войти двумя способами: из любой точки системы с текущего момента и установив точку останова. Первый вариант позволяет из любого места системы запустить отладчик и следующим шагом уйти в него. Нужно в окне транзакций написать “/h” (без кавычек). Любая следующая операция в системе или нажатие функциональной клавиши запустит отладчик. Либо, второй вариант, открываем исходный код программы, класса, функционального модуля, экрана и ставим точку прерывания.
Если у вас открывается окно с отладчиком, но в другом виде, то это старый отладчик. Он работоспособен, но менее удобен. Рекомендую включить новый. Нужно зайти в SE38, выбрать меню «Утилиты-Параметры на-стройки». Поставить переключатель на «Редактор фронтэнд (нов.)». Это включит отображение АБАП кода в новом редакторе. Там же, на вкладке «Отладка» нужно установить переключатель «Новый отладчик», чтобы задействовать более удобный отладчик. Нужно помнить, что при новом отладчике открывается новый режим, если уже открыто 6 режимов, то система не сможет открыть окно отладчика и предложит переключиться в старый отладчик.
Основные приемы работы заключаются в следующем. В правой половине окна можно внести переменные и отслеживать их значения. Можно написать имя переменной вручную, либо кликнуть два раза мышью на ней в левой части. Слева от имени переменной отражается иконка с типом переменной: обычная переменная или табличного типа. Для табличных переменных можно посмотреть как заголовок таблицы (текущую запись) кликнув на имя переменной в правой части. Либо посмотреть всю таблицу – кликнув на иконку таблицы слева от имени.
Шагать по программе можно горячими кнопками (F5-F8) или нажимая иконки слева вверху:
• Отдельный шаг (F5) – переход на следующую команду.
• Выполнить (F6) – переход на следующую команду. Если следующая команда это вызов процедуры или функции, то она выполняется полностью, без захода внутрь.
• Возврат (F7) – выйти на логический уровень выше. Полезно, когда вы находитесь внутри процедуры, а нужно выполнить ее и выйти к месту ее вызова.
• Дальше (F8) – продолжить выполнение программы до следующей точки останова.
Достаточно удобен механизм рабочих столов. Автор чаще всего использует первые два рабочих стола. Первый для непосредственной отладки приложений, а второй для просмотра стека вызова функций и процедур. Если с первым все понятно, то объясню, для чего полезен стек вызова. Например, нужно узнать, где вызывается определенный функциональный модуль, какие в него попадают параметры и как они формируются. Одним из типичных примеров была отладка формы СЗВ при настройке отчетности в Пенсионный Фонд РФ. Что мы делаем. Открываем функциональный модуль, который нам интересен для изучения, ставим точку прерывания. Запускаем расчет стажа (с помощью утилиты HRUCALCSEN или форму СЗВ). Система открывает отладчик как только дойдет до точки прерывания. Переходим на второй рабочий стол и видим всю историю вызовов программы. Теперь осталось найти вышестоящий модуль по стеку и уже поставить точку прерывания в нем и исследовать его. Именно таким способом удалось выявить некоторые ошибки в настройке, так и программные ошибки разработчиков.
One Comment
Neon
Добавлю еще одну незаменимую возможность отладки для модальных окон. Делаем ярлык через пунк меню «Создать соединение» в строке кнопок «Назад», «Выйти», «Отмена». Она третья справа. В разделе приложение в поле тип ставим — Системная команда, в поле команда — /h, нажимаем ОК, ярлык сохраняется по указанному пути на компьютере. Запускаем SAP GUI, делаем окно не во весь экран, чтобы был виден созданный ярлык на рабочем столе, вызываем модальное окно или любое другое. Мышь цепляем созданный ярлык отладки и тянем на наше окно. Система напишет, что включен режим отладки. Любое движение и вы в отладчике.