Poner un breakpoint en una transacción
A veces, analizar el código en sí mismo no ayuda a comprender realmente su propósito. Si nos quedamos atascado en el análisis del código, a veces ayuda el uso del Debugger ABAP. El Debugger ABAP te permite detener una transacción en ejecución en un punto concreto y te da la oportunidad de mirar entre bastidores en tiempo de ejecución.
Por ejemplo, si quieres entender cómo el sistema recoge y trata los datos, puedes establecer un punto de interrupción (break-point) y ver cómo funciona en ejecución.
Establecer el break-point es muy fácil. Primero, encuentra el pedazo de código sobre el que necesitas conocer algo. Vamos a la transacción SE38 y elegimos el programa en cuestión MV45AF0B_BELEG_LESEN. Coloca un punto de ruptura en la línea 177 haciendo clic aquí.

break-point ABAP
Aquí está el break point. El siguiente paso es lanzar un pedido de ventas. Para ello, abramos una nueva sesión, ejecuta el VA03 y abre el pedido de venta que desee.

break-point va03
Después de presionar en «enter», el sistema detiene la ejecución del VA03 donde has establecido el punto de ruptura. Es el Debugger ABAP. Ahora estás en la perspectiva estándar.

break-point programa
La primera vista interesante para aquí es el ABAP y la pila de pantallas. Te muestra una jerarquía de códigos, es decir, el orden de programas por donde pasa el código, a partir de la transacción VA03.

break-point Pila de programas
Bien, la jerarquía de códigos es una gran función, pero el Debugger nos da mucho más información, ejemplo, puede comprobar el contenido actual de una variable.
Evaluar el contenido de las variables en debugging
Para evaluar el contenido de las variables, es mas práctica la vista de Desktop 1. Sólo tienes que hacer clic en él.

break-point funcion
Este es el área donde puedes evaluar las variables. Evaluar las variables es simple. Sólo hay que hacer doble clic en la variable que queremos seguir. Por ejemplo, ¿qué hay dentro de esta variable?

break-point variable
En cambio, esta variable es una variable compleja. Es una tabla, con contenido de varios campos.

break-point Estructura
Para ver el contenido de una variable de estructura, simplemente haga doble clic en ella.

break-point Estructura 2
Esta es la lista de campos y sus valores actuales de la tabla VBAK.
Navegando en el código: F5, F6, F7 y F8
Una vez parado el programa en el sitio que queremos podemos ir avanzando a través de los botones F5, F6 y F7.
Funcionamiento de F5
F5 hace que el programa vaya navegando línea a línea a través del código, de manera que si el programa pasa por un PERFORM o por una función, entra en ellos.
Funcionamiento de F6
F6 funciona igual que F5, pasando línea a línea pero saltándose, o no entrando por los perform o las funciones.
Funcionamiento de F7
F7 lo que hace es salir del sitio en el que está el debug. De manera que si el debug está en un programa pues se sale hacia el programa superior.
Detener una transacción condicionalmente
Una vez en DEBUG, se puede buscar el sitio en el que queremos parar el programa:

break-point at Statement
Si, por ejemplo, se quiere parar el programa en una función concreta, hay que elegir la opción BRAKPOINT AT FUNCTION MODULE.

break-point en función ABAP
Se selecciona una función concreta y se presiona ENTER.
Al pulsar F8, el programa continúa hasta que llega a la función elegida.

break-point en función ABAP2