РАЗРАБОТКА ABAPP1L2

ABAP: отладчик, трассы и ATC

Как воспроизводить ошибку, выбирать отладчик или измерительную трассу и интерпретировать ATC с учётом варианта проверок.

Ревизия 2 Применимость к указанным контекстам Частичное покрытие Контекст: CTX-GENERAL документальная опора: недостаточно данных
Справочный материал. Контракты данных, архитектурные решения и ограничения применения. Источники приведены в материалах, где используются внешние основания.

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 и замеры не заявляются.

Источники и документация

  1. Debugging ABAP Code ↗
  2. ABAP Runtime Trace in SAT ↗
  3. SQL Trace Analysis ↗
  4. ABAP Test Cockpit ↗

Источники нужны для самостоятельной проверки. Примеры и интерпретации на сайте могут быть учебными упрощениями.