Está en la página 1de 38

ABAP

Consejos en la depuración de código.


ÍNDICE 1 Cambio entre “Debugging
Clásica” y “Debugging
Nueva”.
2. “Degugging Externo”.
3. Watchpoint.
4. Variantes del Debugger.
5. Debugger en ventana modal.
6. Editar registro de tabla con debugger.
7. Saltar instrucciones.
8. Algunas limitaciones del nuevo debugger.
9. Debuggear Sapscript.
10. Deguggear Smartform.
Cambio entre “Debugging Clásica” y “Debugging Nueva”.

Debugging

El depurador clásico de ABAP no se utiliza mucho en la actualidad ya que su interfaz ha


quedado anticuada y tiene limitaciones a la hora de depurar cierto tipo de programas.
El nuevo depurador ABAP dispone de una interfaz de usuario más flexible y se puede
utilizar para depurar todo tipo de programas. Ofrece muchas características nuevas que
mejoran la eficiencia de la depuración tanto en soporte como en desarrollo.
En este manual se explicarán estas nuevas características, además de algunos trucos y
consejos para utilizar el depurador de forma eficiente.
Se puede cambiar del depurador clásico al nuevo y viceversa. Cualquiera de ellos puede
configurarse como predeterminado. Para ello se accede a Editor ABAP (SE38) → Utilidades →
Parametrizaciones...
En las opciones específicas del usuario se selecciona la pestaña Editor ABAP y dentro de ésta
se selecciona la pestaña Debugging, es aquí dónde se selecciona el modo predeterminado:
ÍNDICE 2 “Degugging Externo”.

3. Watchpoint.
4. Variantes del Debugger.
5. Debugger en ventana modal.
6. Editar registro de tabla con debugger.
7. Saltar instrucciones.
8. Algunas limitaciones del nuevo debugger.
9. Debuggear Sapscript.
10. Deguggear Smartform.
“Degugging Externo”.

La depuración externa se utiliza cuando se quiere depurar un programa que es llamado


por un usuario externo a través de HTTP como Web Dynpro ABAP, JAVA Web Dynpro y
BSP, etc. Para activar la depuración externa se establecen breakpoints externos, los
cuales se fijan de la misma forma que los breakpoints de sesión, manteniendo el cursor
en la línea de código deseada y haciendo click en el icono ‘Fijar/borrar breakpoint
externo’:
También se puede configurar el usuario externo para el que el punto de interrupción se
activará. Editor ABAP (SE38) → Utilidades → Parametrizaciones… click en la pestaña Editor
ABAP y a continuación en Debugging.
Aquí se puede especificar el nombre de usuario para el que se activarán los breakpoints
externos:
ÍNDICE 3 Watchpoint.

4. Variantes del Debugger.


5. Debugger en ventana modal.
6. Editar registro de tabla con debugger.
7. Saltar instrucciones.
8. Algunas limitaciones del nuevo debugger.
9. Debuggear Sapscript.
10. Deguggear Smartform.
Watchpoint.

Los watchpoint se pueden utilizar para parar la ejecución de un programa en función de


los valores de una variable. Esto ayuda a ir al lugar exacto en el que cambia una
variable.
También se pueden especificar condiciones mediante el botón ‘Watchpoint’, con ello la
ejecución del programa se parará tan pronto como se cumpla la condición especificada.
Para crear un Watchpoint o punto de observación en el nuevo depurador ABAP, se hace
click en el botón Watchpoint. En la ventana emergente Crear Watchpoint se introduce el
nombre de la variable para la que se desea crear el punto de observación:
ÍNDICE 4 Variantes del Debugger.

5. Debugger en ventana modal.


6. Editar registro de tabla con debugger.
7. Saltar instrucciones.
8. Algunas limitaciones del nuevo debugger.
9. Debuggear Sapscript.
10. Deguggear Smartform.
Variantes del Debugger.

Con la ayuda de las variantes de depuración se puede guardar la configuración de la


depuración actual en la base de datos o en un archivo local. Estos ajustes incluyen los
breakpoints, personalizaciones de interfaz de usuario y otras opciones para las
herramientas de depuración.
La siguiente vez que se depure el mismo programa no se tendrán que establecer de
nuevo los breakpoints ni hacer todos los ajustes. Además, cuando se trabaja en un
equipo grande también se pueden pasar las variantes de depuración a otros usuarios.
Para guardar la "Variante de depuración” se va a Función debugging → Sesión
debugging → Grabar.
Se puede guardar la sesión de depuración actual, bien en un archivo o en la base de datos y
seleccionar los componentes que deseemos:
Para cargar las variantes del depurador guardadas se va a Función debugging → Sesión
debugging → Cargar:
ÍNDICE 5 Debugger en ventana modal.

6. Editar registro de tabla con debugger.


7. Saltar instrucciones.
8. Algunas limitaciones del nuevo debugger.
9. Debuggear Sapscript.
10. Deguggear Smartform.
Debugger en ventana modal.

En general, podemos activar la depuración mediante el comando /h en la línea de comandos,


pero no siempre se dispone de ésta.
A menudo se encontrará con ventanas modales y otros pop-up windows en los que la línea
de comandos no está presente y no se puede activar la depuración directamente. En tales
casos, puede crear un acceso directo SAP GUI de tipo 'Command System' y el comando '/h' o
crear un archivo de texto con el siguiente texto.

[FUNCTION]
=Comando / H
Title = Depurador
Tipo = SystemCommand

Para depurar una ventana modal hay que arrastrar y soltar el archivo anteriormente creado
sobre ella.
ÍNDICE 6 Editar registro de tabla con
debugger.

7. Saltar instrucciones.
8. Algunas limitaciones del nuevo debugger.
9. Debuggear Sapscript.
10. Deguggear Smartform.
Editar registro de tabla con debugger.

Muchas veces, debido a una entrada incorrecta en una tabla de base de datos o a una
tabla sin vista de actualización resulta imposible crear, editar o eliminar un registro. En
estos casos se puede usar este truco de depuración.
Para ello, se va al código de transacción SE16:
Se introduce el nombre de la tabla de base de datos, se selecciona la línea que se desea
procesar y se pulsa el botón ‘Visualizar’. A continuación se introduce /h en la línea de
comandos y se pulsa enter dos veces.
Ahora, la ventana del depurador se abrirá y se podrá ver el código fuente. Haga clic en la
variable code, tendrá 'SHOW' como valor:

Aquí se puede editar esta variable y establecer el nuevo valor basado en la operación que se
desea realizar.
Al establecer la variable 'CODE' con valor 'EDIT' se pueden editar registros, 'INSR', inserta
nuevos registros 'DELE', elimina registros y, 'ANVO' sirve para modificar el registro con claves
principales.
Después de establecer la variable con la operación deseada, se presiona F8. Ahora, está en el
modo edición. Se pulsa el botón Guardar para registrar los cambios:
ÍNDICE 7 Saltar instrucciones.

8. Algunas limitaciones del nuevo debugger.


9. Debuggear Sapscript.
10. Deguggear Smartform.
Saltar instrucciones.
La magia de SHIFT + F12
Se puede utilizar esta combinación de teclas para pasar de una línea específica del
código como un chequeo de SY-SUBRC o una verificación de autorización. Para saltar
o pasar por alto cualquier línea/líneas de código lo único que hay que hacer es poner el
cursor en la línea a la que se quiera saltar y pulsar la tecla SHIFT + F12, o mediante:
ÍNDICE 8 Algunas limitaciones del
nuevo debugger.

9. Debuggear Sapscript.
10. Deguggear Smartform.
Algunas limitaciones del nuevo debugger.
Debugger en Dynpro.
Cuando se intenta establecer puntos de interrupción en los programas de
pantalla/diálogo, se obtiene el mensaje que indica que la depuración no es compatible
aún:
Para depurar esta pantalla/diálogo volver a la depuración clásica:
ABAP ID Memory
En el nuevo depurador no es posible ver la memoria utilizada ABAP ID y su contenido. Pero, en
el depurador clásico puede ver los identificadores de memoria ABAP mediante el menú Pasar a
→ Ámbitos de sistema → Memoria ABAP:
ÍNDICE 9 Debuggear Sapscript.

10. Deguggear Smartform.


Debuggear Sapscript.

Para activar el debugger en un Sapscript, vamos a la transacción SE71 e introducimos el


nombre del Formulario, a continuación pulsamos en Utilidades  Activar Debugger:
ÍNDICE 10 Deguggear Smartform.
Deguggear Smartform.

Si por ejemplo queremos debuggear el código:


Primero obtenemos el módulos de funciones del Smartform pulsando en Entorno Nombre del
módulo de funciones:
Con el nombre obtenido nos vamos a la transacción SE37:

Cuando tengamos el código pulsamos en buscar e introducimos el nombre del nodo (en
nuestro ejemplo %CODE5):
Hacemos doble click sobre:
Esto nos lleva al código del nodo dónde ya podemos poner el breakpoint con el botón: