jueves, 9 de julio de 2015

Grafo de Llamada

Algunas ocasiones nos enfrentamos a situaciones en las cuales requerimos conocer la estructura con la que esta construida un programa. Una alternativa es ingresar por la transacción SE38 y navegar por el código fuente hasta obtener la información necesaria o en el peor caso, desistir.

Sin embargo, existe una herramienta que nos permite obtener de una manera sencilla la estructura de un programa partiendo de la transacción que este tiene asociada.

Para mostrar de una mejor manera, hemos creado el siguiente programa:

  *&-------------------------------------------------*
*&      Programa: YGRAFOLLAMADA
*&-------------------------------------------------*
REPORT  ygrafollamada.

*&-------------------------------------------------*
*&      Flujo Principal
*&-------------------------------------------------*
START-OF-SELECTION.
  PERFORM start_of_selection.

*&-------------------------------------------------*
*&      Form  START_OF_SELECTION
*&-------------------------------------------------*
*       text
*--------------------------------------------------*
FORM start_of_selection .

  PERFORM get_data.
  PERFORM set_data.
  PERFORM display_data.

ENDFORM.                    " START_OF_SELECTION
*&--------------------------------------------------*
*&      Form  GET_DATA
*&--------------------------------------------------*
*       text
*---------------------------------------------------*
FORM get_data .

  PERFORM get_data_spfli.

ENDFORM.                    " GET_DATA
*&--------------------------------------------------*
*&      Form  SET_DATA
*&--------------------------------------------------*
*       text
*---------------------------------------------------*
FORM set_data .

ENDFORM.                    " SET_DATA
*&--------------------------------------------------*
*&      Form  DISPLAY_DATA
*&--------------------------------------------------*
*       text
*---------------------------------------------------*
FORM display_data .

  DATA:
    lti_spfli TYPE STANDARD TABLE OF spfli.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    TABLES
      t_outtab      lti_spfli
    EXCEPTIONS
      program_error 1
      OTHERS        2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


ENDFORM.                    " DISPLAY_DATA
*&--------------------------------------------------*
*&      Form  GET_DATA_SPFLI
*&--------------------------------------------------*
*       text
*---------------------------------------------------*
FORM get_data_spfli .

ENDFORM.                    " GET_DATA_SPFLI


Al programa anterior, hemos asociado la transación YGRAFOLLAMADA.

Para acceder a la herramienta, ingresamos a la transacción SE93 y escribimos el nombre de la transacción: 



Posteriormente, accedemos a la opción "Utilidades->Grafo Llamada" de la manera que se muestra a continuación:





Al seleccionar la opción, se despliega un árbol que contiene la estructura del programa, desglosando llamados de eventos, subrutinas, módulos de función, clases, etc:











No hay comentarios.:

Publicar un comentario