BREAK-POINT ID to help ABAP developer

The use of break and break-point statements in ABAP development is considered bad manners. The break-point id statement is another matter entirely. It is useful and in this post you will learn what you can use it for.



What is he doing



The operator sets a group of control points. Any consultant user in transaction SAAB can activate a specific group , limiting the maximum activation period. When the break-point id with an active group is reached , the debugger will be launched for this consultant.



How can it be used



One group of points can be placed in objects related in their meaning to one functional or project. It can be some kind of subsystem or service implementation. In this case, the group name should describe the meaning or contain an abbreviation / name of the subsystem:

  • Standard point groups:
    • cpe_formula_evaluation , cpe_formula_check , cpe_failing_quot_forecast - calculation of formulas and checking in pricing;
    • alv_grid , salv_bs - formation of alv grids.
  • Client point groups:
    • zabap_edo - implementation of electronic document management;
    • zabap_odata - implementation of the odata service.


The break-point id can be placed inside the functionality, which is called via configuration or remote calls. Such software modules do not have an explicit call place and the group name can explain the calling principle. Checkpoint activation can make it easier to find z-functionality that is invoked during a standard transaction or web service.

Example:

  • zabap_pc_open_fi , z_bf_open_fi - checkpoints for handling open-fi / BTE events ;
  • zabap_bp_bdt - breakpoints for extending BP transaction via BDT ;
  • zabap_hr_padru - points for debugging form extensions in hr;


It is convenient to have universal checkpoint groups when a group is created for a particular type of standard extension. The name of such a group must indicate the type of extension:

  • zabap_badi - implementation of BADI ;
  • zabap_exit - user exits;
  • zabap_enh - implementation of explicit and implicit extensions.


Since it is impossible to temporarily disable active groups during debugging, in some cases it is worthwhile to provide for their software disable. For example, like this:



  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 is a simple and convenient tool to reduce the time spent on maintaining your code. As with any tool, the main thing is not to abuse it. The better you define the rules for its use, the more effective it will be. What if you do not use it, and the system already has many extensions in which it could be useful? Introduce it into your arsenal and use it in all new developments, and add it in old ones when adjustments are made to them.



All Articles