ABAP: отладчик, трассы и ATC#
Разбор дефекта и анализ производительности отвечают на разные вопросы. Отладчик помогает понять путь выполнения и состояние значений при воспроизводимом сценарии. Runtime trace показывает, где расходуется время и какие вызовы выполняются. SQL trace показывает обращения к базе и их характеристики. ATC запускает выбранный набор статических и иных проверок, но не доказывает, что бизнес-результат корректен во всех данных.
Начинайте с воспроизводимого случая#
Зафиксируйте систему и релиз, объект и версию кода, параметры, пользователя, полномочия, ключи данных, ожидаемый и фактический результат, частоту ошибки и временные границы. Для периодической ошибки сохраняйте корреляционный идентификатор и контекст запуска. Уберите персональные данные из диагностических материалов, если они не нужны.
Уменьшайте пример до одного объекта или короткой последовательности. Сформулируйте, что именно проверяете: ветвь условия, изменение поля, исключение, повторный вызов, время CPU, число запросов или блокировку. Без гипотезы и ограниченного сценария трасса быстро становится большой и трудно интерпретируемой.
Отладчик для логики и состояния#
Поставьте breakpoint перед ожидаемым переходом и на месте, где фактическое состояние расходится с ожиданием. Проследите стек вызовов, параметры, значения и исключения шаг за шагом. Watchpoint помогает остановиться при изменении выбранной переменной, но может повышать расход памяти и замедлять выполнение, особенно для крупных внутренних таблиц.
Сначала воспроизводите дефект на тестовых данных в подходящей среде. Не меняйте значения вручную в производственной сессии и не используйте изменение переменных в отладчике вместо исправления и теста кода. Если ошибка возникает в фоновой задаче, обработчике RFC или Update Task, настройте сценарий отладки именно для этого контекста и проверьте, не изменяет ли наблюдение время или конкурентность.
Runtime trace и SQL trace#
SAT/ABAP Profiler помогает анализировать вызовы и длительность выполнения операторов ABAP. ST05 SQL trace нужен, когда гипотеза касается запросов к базе, количества прочитанных строк, повторных SQL-вызовов или времени доступа. Для блокировок, RFC и буферизации применяйте соответствующую трассу по гипотезе; один инструмент не объясняет автоматически поведение всех слоёв.
Ограничьте трассу пользователем, запуском, объектом и коротким интервалом; отключите её после измерения и храните результаты по правилам среды. Накладные расходы трассировки могут влиять на поведение. Сравнивайте одинаковые входы и объёмы до и после изменения. Отделяйте время ABAP, SQL, RFC, ожидания блокировки и сериализации, чтобы оптимизировать измеренное узкое место, а не предполагаемую причину.
ATC и границы статической проверки#
ABAP Test Cockpit может запускать конфигурируемые наборы проверок, включая extended program checks, статические проверки производительности и безопасности, пакетные проверки, а также ABAP Unit, если это включено в конфигурацию. Результат зависит от variant, версии проверок, выбранного набора объектов и системного контекста.
Сохраняйте идентификатор варианта, дату и область запуска, список объектов, найденные сообщения, приоритет, владельца исправления и обоснование каждого разрешённого исключения. ATC clean в одном варианте означает только отсутствие findings этого запуска. Он не доказывает корректность финансового процесса, достаточность тестов, безопасность неохваченной динамики или поддержку API в другом выпуске.
Завершите цикл доказательством#
Для исправления свяжите исходный дефект, минимальный пример, причину, изменение, тест или ATC-находку и повторный результат. Для производительности фиксируйте одинаковый объём данных, замеры до и после, SQL-объём, время и ограничения. Для финансовой логики отдельно сверяйте ключи и суммы в разрезе ledger, компании, периода и валюты. Не закрывайте расследование только потому, что ошибка больше не воспроизвелась один раз.
Источники относятся к ABAP Platform, ADT и указанным версиям инструментов. Трассы и проверки требуют подходящих прав и настройки. В этом проекте нет SAP runtime; отладчик, SAT, ST05 и ATC не запускались, findings и замеры не заявляются.