Autor Tema: Metodos Avanzados de Debug  (Leído 6408 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado damlaplata

  • Usuario Jr
  • **
  • Mensajes: 25
    • Ver Perfil
Metodos Avanzados de Debug
« en: 28 de Diciembre de 2011, 03:19:51 pm »
Que tal Gente... Les consulto por aca si alguien podria acercar sus trucos de debug o mas que nada metodologias de debug, a ver, a lo que me refiero es algun truquito o buena costumbre, herramientas para trabajar con excelencia con el debug de sap-abap. :(

Otras preguntas:

-Que son los registros con cabecera y para que me sirven, se usan?

-Field Symbols, un manual bien equipado, saque datos del help.sap, pero se queda medio corto?

por ahora nada mas.
Se agradece cquier aporte!. :P

Saludos.

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re:Metodos Avanzados de Debug
« Respuesta #1 en: 28 de Diciembre de 2011, 05:29:02 pm »
Te paso un ejemplo sencillo de un Field Symbol... y remarco en rojo lo mas importante.



  DATA: lf_var(30).
  DATA: lf_num TYPE n.

  DATA: BEGIN OF gt_ficha OCCURS 1.
          INCLUDE STRUCTURE ficha .
  DATA: END OF gt_ficha.

  FIELD-SYMBOLS <var> TYPE ANY.


  CLEAR gt_ficha.  REFRESH gt_ficha.
  CALL FUNCTION 'Z_FICHAS'
    EXPORTING
      pernr    = p_pernr
      ldate    = p_datum
    TABLES
      gt_teven = gt_ficha.


  LOOP AT gt_ficha.
    ADD 1 TO lf_num.
    CONCATENATE 'gf_f' lf_num INTO lf_var.

    ASSIGN (lf_var) TO <var>.
    MOVE gt_ficha-ltime TO <var>.


    IF lf_num = 9.
      EXIT.
    ENDIF.
  ENDLOOP.

  MOVE gt_ficha-ldate TO ficha-ldate.


Sobre los registros de cabecera, no se que comentarte. No es que sirvan o no sirvan, son formas de trabajar diferentes. Hay gente que se acostumbra a trabajar con las cabeceras en las tablas internas y otros utilizan Work Areas en su lugar.

Aquí tienes +Info
http://www.abap.es/foro/index.php?topic=178.0

Saludos.






Desconectado ale12

  • Usuario Completo
  • ***
  • Mensajes: 92
    • Ver Perfil
Re:Metodos Avanzados de Debug
« Respuesta #2 en: 28 de Diciembre de 2011, 05:46:24 pm »
MODO DEBUGGING:

Un programa Abap/4 puede ejecutarse paso a paso o pueden insertarse breakpoints para parar en cualquier sentencia la ejecución del mismo. Para activar la ejecución en "modo debugging" al testear una transacción o durante la ejecución de un programa hay que ir a la función debugging, por el menú: Sistema – Utilidades – Debugging Abap/4, o bien introducir '/H' en la barra de comandos. Con esto también se saltan los procesos PBO (Process Before Output) y se pasa directamente a la pantalla de selección. Empieza la ejecución paso a paso o con breakpoints.

Los breakpoints pueden fijarse desde el editor pulsando el botón Fijar Breakpoint. Para ver los que hay definidos, por menú ir a Utilidades – Breakpoints – Visualizar. También se pueden codificar breakpoints en el programa de forma estática, usando la sentencia Abap/4:

BREAK–POINT.

Al depurarse un programa, cuando se llega a un breakpoint la ejecución se detiene. En ese momento se puede conocer el contenido actual de todos los campos, variables, tablas internas, sus cabeceras, y bases de datos referenciadas en el report (incluso campos del sistema). Para ello hacer doble clic sobre el campo a ver, o bien pulsar el botón Seleccionar, o incluso escribir su nombre directamente. Para ver todas las entradas de una tabla interna, pulsar el botón Tabla y escribir su nombre. Su registro de cabecera se distingue con el símbolo: >>>>>.

También se puede cambiar el contenido de los campos o variables en ese momento, forzando la ejecución del programa para ver cómo responde éste, o para corregir valores incorrectos. Para ello teclear el nuevo valor para una variable, y pulsar el botón Retener para 'guardarlo'.

La línea actual en proceso en modo debugging está marcada con un '>' (es el punto de ejecución). En modo "paso a paso" se puede ejecutar una subrutina, función o bloque de programa todo seguido, pulsando el botón Ejecutar, o bien hacerlo paso a paso, con el botón Paso-a-paso.

Los breakpoints dentro de un SELECT. ENDSELECT. pueden dar problemas, pues el acceso a la base de datos no puede ser interrumpido. Mejor ponerlos antes o después, y saltar hasta él, o bien ejecutar paso a paso. Se pueden seleccionar breakpoints que dependan del código de retorno dado por SY-SUBRC. Se pueden grabar breakpoints para la duración de la sesión de diálogo (con Grabarfunción). Para parar el proceso en ciertas rutinas, eventos o palabras clave, ir a: Breakpoints – Breakpoint at – At event / form / keyword. Para que el control de programa vuelva al llamante, elegir Debugging Return.

Desconectado damlaplata

  • Usuario Jr
  • **
  • Mensajes: 25
    • Ver Perfil
Re:Metodos Avanzados de Debug
« Respuesta #3 en: 03 de Enero de 2012, 03:25:07 pm »
<<Carlos>>: Gracias kpo por el ejemplo del Field-Symbol, aunque medio complex, pero lo entendi. Voy a mirar la pagina que dejaste, se agradece. Saludos.

<<ale12>>: Gracias kpo por la info, me la hiciste repasar, la tenia un poco de vista. Se agradece.

Consulto Alguien sabe como usar el WatchPoint en el viejo debug?
en el nuevo me andan joya, y hago lo mismo en el viejo y no quiere funcar el forro...