Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8372

Re: Reading source code for an enhancement implementation.

$
0
0

Hi Eugene,

 

 

I have developed logic for the same.

 

 

START-OF-SELECTION.

  PERFORM GET_SOURCE USING   'X' ' ' ' ' 'MV45AFZZ'.        "report

  PERFORM GET_SOURCE USING   ' ' 'X' ' ' 'CL_WB_PGEDITOR'.  "Class

  PERFORM GET_SOURCE USING   ' ' ' ' 'X' 'READ_IBAN_EXT'.   "fm

 

 

 

 

 

 

*&---------------------------------------------------------------------*

*&      Form  GET_SOURCE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->U_PROG     text

*      -->U_CLASS    text

*      -->U_FM       text

*      -->U_NAME     text

*----------------------------------------------------------------------*

FORM GET_SOURCE USING U_PROG  TYPE BOOLEAN

                      U_CLASS TYPE BOOLEAN

                      U_FM    TYPE BOOLEAN

                      U_NAME  TYPE STRING.

 

 

  DATA ABAP_EDITOR       TYPE REF TO CL_WB_PGEDITOR.

  DATA SOURCE_TAB        TYPE SEDI_SOURCE.

  DATA SOURCE_NAME       TYPE SY-REPID.

  DATA LV_COUNT          TYPE STRING.

 

 

  CASE 'X'.

 

 

    WHEN U_PROG.

      SOURCE_NAME = U_NAME.

 

 

      IF SOURCE_NAME IS NOT INITIAL.

 

 

        CREATE OBJECT ABAP_EDITOR

          EXPORTING

            P_IS_IN_ADJUSTMENT_MODE = ' '.

 

 

        CALL METHOD ABAP_EDITOR->READ_SOURCE

          EXPORTING

            SOURCE_NAME             = SOURCE_NAME

            INITIALIZE_EDIT_CONTROL = ' '

            STATUS                  = ' '

            WITH_IMPL_ENHANCEMENTS  = ' '

            SINGLE_ENHNAME          = ' '

          IMPORTING

            SOURCE_TAB              = SOURCE_TAB

          EXCEPTIONS

            NOT_FOUND               = 1

            CANCELLED               = 2

            READ_PROTECTED          = 3.

 

 

 

 

        LV_COUNT = LINES( SOURCE_TAB ).

        WRITE : / LV_COUNT.

        REFRESH SOURCE_TAB[].

      ENDIF.

 

 

    WHEN U_CLASS.

      DATA CLSKEY   TYPE SEOCLSKEY.

      DATA INCLUDES TYPE SEOP_METHODS_W_INCLUDE.

      DATA LS_INCLUDES LIKE LINE OF INCLUDES.

 

 

      CLSKEY = U_NAME.

 

 

      CALL FUNCTION 'SEO_CLASS_GET_METHOD_INCLUDES'

        EXPORTING

          CLSKEY                       = CLSKEY

        IMPORTING

          INCLUDES                     = INCLUDES

        EXCEPTIONS

          _INTERNAL_CLASS_NOT_EXISTING = 1.

 

 

      CASE SY-SUBRC.

 

 

        WHEN 0.

          LOOP AT INCLUDES INTO LS_INCLUDES.

 

 

            SOURCE_NAME = LS_INCLUDES-INCNAME.

            IF SOURCE_NAME IS NOT INITIAL.

 

 

              CREATE OBJECT ABAP_EDITOR

                EXPORTING

                  P_IS_IN_ADJUSTMENT_MODE = ' '.

 

 

              CALL METHOD ABAP_EDITOR->READ_SOURCE

                EXPORTING

                  SOURCE_NAME             = SOURCE_NAME

                  INITIALIZE_EDIT_CONTROL = ' '

                  STATUS                  = ' '

                  WITH_IMPL_ENHANCEMENTS  = ' '

                  SINGLE_ENHNAME          = ' '

                IMPORTING

                  SOURCE_TAB              = SOURCE_TAB

                EXCEPTIONS

                  NOT_FOUND               = 1

                  CANCELLED               = 2

                  READ_PROTECTED          = 3.

 

 

 

 

              LV_COUNT = LINES( SOURCE_TAB ).

              WRITE : / LV_COUNT.

              REFRESH SOURCE_TAB[].

            ENDIF.

 

 

          ENDLOOP.

      ENDCASE.

 

 

 

 

    WHEN U_FM.

 

 

      DATA FUNCNAME   TYPE RS38L-NAME.

      DATA R3STATE    TYPE D010SINF-R3STATE.

      DATA PTFDIR     TYPE STANDARD TABLE OF TFDIR.

      DATA PTFTIT     TYPE STANDARD TABLE OF TFTIT.

      DATA PFUNCT     TYPE STANDARD TABLE OF FUNCT.

      DATA PENLFDIR   TYPE STANDARD TABLE OF ENLFDIR.

      DATA PTRDIR     TYPE STANDARD TABLE OF TRDIR.

      DATA LS_PTRDIR  LIKE LINE OF PTRDIR.

      DATA PFUPARAREF TYPE STANDARD TABLE OF SFUPARAREF.

      DATA UINCL      TYPE STANDARD TABLE OF ABAPTXT255.

 

 

      FUNCNAME = U_NAME.

 

 

      CALL FUNCTION 'FUNC_GET_OBJECT'

        EXPORTING

          FUNCNAME           = FUNCNAME

*         R3STATE            = 'A'

        TABLES

          PTFDIR             = PTFDIR

          PTFTIT             = PTFTIT

          PFUNCT             = PFUNCT

          PENLFDIR           = PENLFDIR

          PTRDIR             = PTRDIR

          PFUPARAREF         = PFUPARAREF

          UINCL              = UINCL

        EXCEPTIONS

          FUNCTION_NOT_EXIST = 1

          VERSION_NOT_FOUND  = 2.

 

 

      CASE SY-SUBRC.

 

 

        WHEN 0.

          READ TABLE PTRDIR INTO LS_PTRDIR INDEX 1.

          CASE SY-SUBRC.

            WHEN 0.

              IF LS_PTRDIR-NAME IS NOT INITIAL.

                SOURCE_NAME = LS_PTRDIR-NAME.

 

 

                IF SOURCE_NAME IS NOT INITIAL.

 

 

                  CREATE OBJECT ABAP_EDITOR

                    EXPORTING

                      P_IS_IN_ADJUSTMENT_MODE = ' '.

 

 

                  CALL METHOD ABAP_EDITOR->READ_SOURCE

                    EXPORTING

                      SOURCE_NAME             = SOURCE_NAME

                      INITIALIZE_EDIT_CONTROL = ' '

                      STATUS                  = ' '

                      WITH_IMPL_ENHANCEMENTS  = ' '

                      SINGLE_ENHNAME          = ' '

                    IMPORTING

                      SOURCE_TAB              = SOURCE_TAB

                    EXCEPTIONS

                      NOT_FOUND               = 1

                      CANCELLED               = 2

                      READ_PROTECTED          = 3.

 

 

 

 

                  LV_COUNT = LINES( SOURCE_TAB ).

                  WRITE : / LV_COUNT."Print lines of souce code with enahncement lines as well

                  REFRESH SOURCE_TAB[].

 

 

                ENDIF.

 

 

              ENDIF.

          ENDCASE.

 

 

      ENDCASE.

 

 

  ENDCASE.

 

 

ENDFORM.                    "get_source

 

regards,

Rahul Bhayani


Viewing all articles
Browse latest Browse all 8372

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>