Está en la página 1de 8

Como hacer DEBUG a partir de un mensaje de error

https://blogs.sap.com/author/dairolozano/
En ocasiones nos sucede que una transacción presenta mensajes de error que no
son claros o que no nos proporcionan información suficiente para determinar cuál
es la causa del error, o por ejemplo cuando el mensaje se pudo haber generado
desde una validación, un exit o una BADI pero no podemos saber exactamente
donde se generó.

En ocasiones como estas es bastante útil poder detener la ejecución en el punto


exacto donde se generó el mensaje y poder analizar en el DEBUG todo el entorno
que rodea la generación de este mensaje. Vamos a ver cómo hacerlo en el
siguiente ejemplo:

Supongamos que necesitamos ver los datos de un material por la transacción


MM03 y obtenemos el siguiente mensaje:

Para ver el código del error hacemos doble click sobre el mensaje y obtenemos el
siguiente dialogo:
Vemos entonces que el código del mensaje es M3305 donde 305 es el número del
mensaje y M3 es la clase de mensajes. El numero del error se almacena en la
variable SY-MSGNO.

Nuevamente ingresamos a la transacción MM03, pero antes de digitar el código del


material escribimos /h en la línea de comandos y presionamos ENTER para activar
el debugger.
Luego escribimos el código de material y presionamos ENTER. Una vez dentro del
debugger presionamos el botón watchpoint:

En la ventana de diálogo que aparece escribimos la variable SY-MSGNO y en


condición escribimos SY-MSGNO = ‘305’ para que solo se detenga cuando el ID del
error sea 305. Si no se agrega esta condición, la ejecución se detendrá cada vez
la variable SY-MSGNO cambie de valor, es decir, cada vez que se genere un error.
Presionamos Enter o el botón aceptar y luego presionamos la Tecla F8 para que
continúe la ejecución. La ejecución continuara hasta el punto exacto donde la
variable SY_MSGNO tome el valor 305 y se genere el mensaje de error M3305.
A partir de este punto es posible analizar el código y revisar el contenido de las
variables y tablas internas con del fin de determinar las circunstancias que
generaron el error.

Finalmente, es importante tener en cuenta que para poder activar el debugger


debes tener las autorizaciones necesarias. Normalmente en sistemas de pruebas y
desarrollo la mayoría de los consultores los tienen habilitados, no obstante en
sistemas productivos o con usuarios finales es posible que se genere un mensaje
de error similar al siguiente.

En este caso puedes hacer la solicitud de las autorizaciones correspondiente al


lider BASIS o la persona responsable de roles y perfiles del sistema en que quieras
hacer el análisis.

Muchas gracias por su atención y espero que les sea de utilidad.

INTRODUCCION
El debugger es una de las herramientas más poderosas que tiene SAP para el
análisis y la solución de problemas. Se utiliza para ejecutar programas paso a paso y
durante el proceso se puede verificar la lógica, inspeccionar el contenido de variables de programa,
tablas internas, variables del sistema, áreas de memoria entre otras opciones.
DOS ESTILOS DE DEBUG
En versiones iniciales de SAP, el debugger Clásico tenía una interface algo anticuada
y era algo limitado así que fue reemplazado por un Nuevo debugger más completo y
amigable, haciendo más eficiente el análisis de programas.

Las versiones nuevas de SAP incorporan tanto el debugger clásico como el nuevo, de
modo que es posible alternar el uso de los dos modos. Para cambiar el debugger por
defecto ingresamos a la transacción SE38 y seleccionamos el menú Utilidades y
luego hacemos clic en Opciones.

Seleccionamos después la pestaña Debugging

y activamos la opción Func.debugging clás o F.Debugging según sea el caso.

COMO PONER BREAKPOINTS EN EL DEBUG DE UNA DYNPRO


Para algunos la nueva versión resulta mas conveniente mientras que otros extrañaran
la forma en que hacían las cosas en el debugger clásico. Por ejemplo en el nuevo
debugger nos encontraremos con el siguiente mensaje al intentar poner breakpoints
haciendo debug de una Dynpro:

Basta con cambiarse al debugger clásico para que esto ya no sea una limitante. Para
cambiar de modo dentro del debug utilizamos el menú Función debugging y la
opción Cambiar a función debugging clásica.
Una vez hecho el cambio podemos hacer doble clic en la linea donde queremos poner
el break-point.

Para regresar al Nuevo debug seleccionamos nuevamente el menú Debugging pero


esta vez utilizamos la opción Cambio a función debugging.
Otros consejos y TIPS.
En los siguientes documentos encontraremos otros consejos y tips para aprovechar
mejor esta valiosa herramienta:
Como guardar una sesión Debug para uso posterior mediante Variantes
Análisis DEBUG de errores de Autorización
Como hacer Debug a ventanas Modales (POPUP)
Saltar una línea al hacer Debug
Como hacer DEBUG a partir de un mensaje de error
Como hacer debug a procesos en fondo (JOBS)

También podría gustarte