Приемы эффективной работы с отладчиком в SAP

Начнем с азов. SAP ABAP Debugger нужен для отладки приложений, которые разработал вендор или третий производитель (программист). По-русски, это отладчик – инструмент для поиска ошибок в стандартых приложения SAP или наших собственных. Единственная программа, которую можно запустить сразу и без отладчика, это “Hello, world”. Все что сложнее, обычно требует минимальных навыков отладки “дедовскими” способами или современными – с помощью отладчика. 

Запустить отладчик можно по-разному

  • Набрать /h в окне транзакций и нажать Enter или произвести любое действие в системе
  • Поставить точку остановки в исходном коде
  • Подключиться к уже работающей программе в SM50
  • Остановиться в заранее предусмотренных местах в коде

Основные кнопочки

Как только вы попали в отладчик пригодятся основные кнопочки

  • F5 – сделать шаг вперед по коду
  • F6 – сделать шаг вперед по коду, но не входить в процедуры (выполнять их как один шаг)
  • F7 – выйти на уровень выше. Полезно, если вы находитесь внутри процедуры или ФМ
  • F8 – забить на все и поехать дальше

В окне переменных можно ввести переменную и посмотреть ее значение. Там же можно изменить ее значение.

Это вы все и без меня знаете. Давайте попробуем решить типовые для HR задачи с помощью отладчика. Типовые задачи разумеется на мой взгляд, но вы можете накидать своих идей в комментариях, чтобы я сделал отдельную статью или видео по обозначенным вопросам.

Читать далее


Как быстро создать соединения в SAP OM

Если нам нужно быстро создать соединения в SAP OM, а под рукой нет никаких инструментов, то можно использовать маленький трюк с матричной структурой. Например, мы хотим собрать в одной оргединицы разных людей. Таскать мышкой долго и неудобно.

Решается просто. Открываем транзакцию PPME – Change, которая позволяет изменять матричную структуру компании. Только у нас будет не матрица, а оргединица с одной стороны (в колонках) и штатные должности в строчках. Создавая таким образом соединения, кликая мышкой, мы можем очень быстро обработать большое количество записей ИТ1001.

Кликаем по пустым квадратикам, система спрашивает, хотим ли мы создать соединение. Подтверждаем и вуаля. 


Одна из самых интересных нот у SAP

Друзья, хочу представить вашему вниманию одну из самых интересных и полезных нот от вендора. Нота посвещена принципам отладки драйвера расчета заработной платы, различным тонкостям. Полезно прочитать бывалым зарплатчикам (я сам большую часть советов не знал), так и всем, кто хоть раз открывал абап или отладчик – есть что почерпнуть.

1818219 – Debugging the payroll Schema

На всякий случай прикладываю PDF версию здесь.

Debugging PY schema

P.S. Спасибо Наталье за эту ценную информацию.

P.S.S. Если непонятно, что написано внутри или есть проблемы с языком, но напишите в комментариях, я переведу.


Волшебная клавиша в отладчике

Бес в ребро, седина мне в бороду.

Если вам нужно обойти какой-то кусок кода, который нельзя с помощью переменных поправить (перепрыгнуть проверку полномочий, например), то есть волшебная кнопочка.

Встаете на строчку, куда нужно перейти из текущего положения и нажимаете Shift-F12. Система не выполняет код между текущим и целевым положением, а просто перепрыгивает. Команда JMP в ассемблере, GOTO в бейсике.

Супер-удобно! Не забывайте, что отладчик стоит изучить хотя бы из соображений быстрого поиска ошибок в системных дампах.


Основы работы с большими данными в SAP

Рано или поздно каждый консультант сталкивается с задачей быстрой и эффективной обработки большого массива данных из системы. Предметная область тут неважна. Многие компании практически не используют современные аналитические решения на благо повседневной трудовой деятельности. Причин тому много, но сегодня речь о другом. Наиболее типичные ситуации, это сверка данных при миграции данных или выгрузка большого объема данных из системы с целью последующей обработки в MS Excel. В 99% случаев будут именно такие задачи.

Вроде бы что сложного в выгрузке данных из отчета в системе? Совершенно ничего, когда мы говорим о паре десятков или сотен строк. Если речь идет о десятках тысяч строк или сотен тысяч строк, то мировоззрение начинает меняться. Попробуйте в ваших системах запустить оперативный запрос с даты старта SAP по паре инфотипов. А потом все это выгрузите и нарисуйте несколько формул рядом.

Исходя из моего опыта, могу дать некоторые базовые советы.

Совет 1. Выгрузка в MS Excel может быть осуществлена множеством способов. Даже нажимая одну кнопочку выгрузки разные системы обрабатывают событие по-разному. В ALV отчетах есть две возможность выгрузить данные в файл.

Левая кнопочка  зависимости от версии системы либо откроет MS Excel Inplace (то есть внутри системы откроется XLS файл). Очень неудобно, мелко, но достаточно для просмотра пары записей. Файл можно сохранить. В другом случае система спросит, в каком формате желаете выгрузить данные.

По умолчанию у всех стоит первый вариант – MHTML. И не дай вам чебурашке выгружать тысячи записей в этом формате. Система внутри готовит данные, потом запускает XLST трансформацию и вываливает все это в страшненький полу-HTML код. Это занимает очень много памяти на сервере и часто приводит к дампам. При открытии такого файла Excel наоборот производит конвертацию из XML файла в свой XLS формат, что, по сути, дублирует работу. Если выгружать сразу в Excel XLS/XLSX формате, то лишние действия не производятся, файл выгружается существенно быстрее.

Читать далее