Pull to refresh

BREAK-POINT ID в помощь ABAP-разработчику

Reading time2 min
Views2.4K
Использование операторов break и break-point в ABAP разработке считается моветоном. Оператор break-point id — совсем другое дело. Он полезен, и в этом посте вы узнаете, для чего его можно использовать.

Что делает


Оператор ставит группу контрольных точек. Активировать конкретную группу может любой пользователь консультант в транзакции SAAB, ограничив максимальный срок действия активации. При достижении break-point id с активной группой для этого консультанта будет запущен отладчик.

Как может быть использован


Одна группа точек может ставиться в объектах, относящихся по смыслу к одному функционалу или проекту. Это может быть какая-нибудь подсистема или реализация cервиса. В этом случае название группы должно описывать смысл или содержать аббревиатуру/название подсистемы:
  • Стандартные группы точек:
    • cpe_formula_evaluation, cpe_formula_check, cpe_failing_quot_forecast — расчет формул и проверки в прайсинге;
    • alv_grid, salv_bs — формирование alv grid-ов.
  • Клиентские группы точек:
    • zabap_edo — внедрение электронного документооборота;
    • zabap_odata — реализация odata сервиса.

break-point id может ставиться внутри функционала, который вызывается через настройку или удаленные вызовы. Такие программные модули не имеют явного места вызова и название группы может пояснять принцип вызова. Активация контрольных точек может облегчить поиск z-функционала, вызываемого в процессе работы стандартной транзакции или при работе веб-сервиса.
Пример:
  • zabap_pc_open_fi, z_bf_open_fi — контрольные точки для обработки событий open-fi / BTE;
  • zabap_bp_bdt — точки остановки для расширения транзакции BP через BDT;
  • zabap_hr_padru — точки для дебага расширений форм в hr;

Удобно иметь универсальные группы контрольных точек, когда для отдельного типа расширения стандарта создается своя группа. В названии такой группы должен быть указан тип расширения:
  • zabap_badi — реализации BADI;
  • zabap_exit — user-exit-ы;
  • zabap_enh — реализация явных и неявных расширений.

Так как во время отладки нельзя временно отключить активные группы, в некоторых случаях стоит предусмотреть их программное отключение. Например, так:

  STATICS sv_break_off  TYPE flag.
  " Если вам больше не требуется остановка в этом месте,  
  " установите значение переменной sv_break_off = ‘X’.
  IF sv_break_off = abap_false.

    BREAK-POINT ID zabap_exit.

  ENDIF.


break-point id — это простой и удобный инструмент, позволяющий сократить время, затрачиваемое на поддержку кода. Как с любым инструментом, им главное не злоупотреблять. Чем лучше вы определите правила его использования, тем эффективнее он будет. Что делать, если вы его не используете, а в системе уже много расширений, в которых он мог бы пригодиться? Ввести его в свой арсенал и использовать во всех новых разработках, а в старых добавлять его тогда, когда в них вносятся корректировки.
Tags:
Hubs:
+1
Comments4

Articles