Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Search source code for a given string

Former Member
0 Likes
7,514

hello,

is there any standard program where if i give a string value (for exmpl GB04) it will give all the object names (report,function module,enhancement) which uses this string value.

7 REPLIES 7
Read only

Former Member
0 Likes
1,261

Hi:

If its are any type of SAP objects then whereuser list is available of these and you can find it.

Regards

Shashi

Read only

Former Member
0 Likes
1,261

hi,

for Search source code for a given string :

for eg:

if u want to find the respective report name just go to se38 put the string name with the * sign before and after the string name gb04 and then press F4.

U WILL GET ALL ENTRIES THAT HAS THAT STRING

and same is with smartforms etc

regards

rahul

Edited by: RAHUL SHARMA on Feb 20, 2009 11:17 AM

Edited by: RAHUL SHARMA on Feb 20, 2009 11:17 AM

Edited by: RAHUL SHARMA on Feb 20, 2009 11:17 AM

Edited by: RAHUL SHARMA on Feb 20, 2009 11:18 AM

Edited by: RAHUL SHARMA on Feb 20, 2009 11:18 AM

Edited by: RAHUL SHARMA on Feb 20, 2009 11:20 AM

Read only

ThomasZloch
Active Contributor
1,261

Look at program RPR_ABAP_SOURCE_SCAN.

Thomas

Read only

Former Member
1,261

Hi Rakhi,

Pleae use the report RPR_ABAP_SOURCE_SCAN for your requirement.

Thanks,

Vinay

Read only

Former Member
0 Likes
1,261

Hi,

data : fs type tadir-obj_name,
itab like table of fs.
select obj_name  from tadir into table itab.
loop at itab into fs.
if fs cs 'GB04'.
write : / fs.
endif.
endloop.

this will definetly work

thanks

pinaki.

Read only

0 Likes
1,261

Hello All

There is several method available to search which programs does have a specific string.

Search in to Program source code:

-


Reports: RS_ABAP_SOURCE_SCAN

RPR_ABAP_SOURCE_SCAN

RSRSCAN1

RKCTSEAR

Tcode: EWK1

To search a string in SAPSCRIPT the following report can be used:

-



REPORT ZSEARCH_ITEMS_IN_SAPSCRIPT
       NO STANDARD PAGE HEADING LINE-SIZE 208.

*=======================================================================
* Omschrijving : Searching different items (e.g. strings, field, text,
*                program-names etc..) in sapscript forms
* Auteur       : Angelo Hoppenbrouwer
* Datum        : 07-11-2001
*======================================================================*

TABLES: STXL,
        TLINE.

DATA BEGIN OF BDCDATA OCCURS 100.
        INCLUDE STRUCTURE BDCDATA.
DATA END OF BDCDATA.

DATA BEGIN OF LINES OCCURS 100.
        INCLUDE STRUCTURE TLINE.
DATA END OF LINES.

DATA: BEGIN OF STXL_ID,
        TDOBJECT LIKE STXL-TDOBJECT,
        TDNAME   LIKE STXL-TDNAME,
        TDID     LIKE STXL-TDID,
        TDSPRAS  LIKE STXL-TDSPRAS,
      END OF STXL_ID.

DATA: BEGIN OF KOP,
        TXT(208),
      END OF KOP.

DATA: I_STXL LIKE STXL OCCURS 10 WITH HEADER LINE,
      I_TAB(40) OCCURS 10 WITH HEADER LINE,
      CLIENT LIKE SY-MANDT,
      H_FIELD(40),
      H_VALUE(40),
      H_LINE LIKE SY-LINNO,
      H_OFFSET TYPE I,
      H_REGEL(70) TYPE C,
      H_TEL TYPE I,
      H_TOT TYPE I,
      H_POS TYPE I,
      H_POS1 TYPE I,
      H_POS2 TYPE I,
      H_LEN TYPE I,
      VORIGE_TDSPRAS_TDNAME(71) TYPE C,
      HUIDIGE_TDSPRAS_TDNAME(71) TYPE C,
      P_NAAM LIKE RSEUX-CP_VALUE,
      H_TXT1(40),
      H_TXT2(40),
      H_WINDOW(132),
      H_STRING(40),
      H_STRING1(40),
      H_STRING2 LIKE H_STRING1,
      H_LINE1 LIKE LINES-TDLINE,
      H_LINE2 LIKE H_LINE1.

SELECTION-SCREEN BEGIN OF BLOCK ZOEK_ITEM
                       WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM1 RADIOBUTTON GROUP ITEM DEFAULT 'X'.
SELECTION-SCREEN COMMENT 4(16) TEXT-011.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM2 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-012.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM3 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-013.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM4 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-014.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM5 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-015.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK ZOEK_ITEM.

SELECTION-SCREEN BEGIN OF BLOCK ITEM_WAARDE
                       WITH FRAME TITLE TEXT-002.
PARAMETERS: PA_STR(40) OBLIGATORY,
            PA_MANDT LIKE SY-MANDT DEFAULT SY-MANDT.
SELECTION-SCREEN END OF BLOCK ITEM_WAARDE.

SELECTION-SCREEN BEGIN OF BLOCK FORM
                       WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS: SO_NAME  FOR STXL-TDNAME  NO INTERVALS
                                          DEFAULT 'Z*'
                                          OPTION CP,
                SO_SPRAS FOR STXL-TDSPRAS NO INTERVALS
                                          DEFAULT 'NL'.
SELECTION-SCREEN END OF BLOCK FORM.

START-OF-SELECTION.

  CLIENT = SY-MANDT.

  CLEAR: H_STRING1, H_STRING2.
  IF NOT PA_ITEM1 IS INITIAL.          " Standaardtekst
    CONCATENATE 'include' PA_STR INTO H_STRING1 SEPARATED BY ' '.
    H_TXT1 = 'standard text'.
  ENDIF.
  IF NOT PA_ITEM2 IS INITIAL.          " Tabel (+veld)
    CONCATENATE '&' PA_STR INTO H_STRING1.
    H_TXT1 = 'table (+field)'.
  ENDIF.
  IF NOT PA_ITEM3 IS INITIAL.          " Hulpveld
    CONCATENATE '&' PA_STR '&' INTO H_STRING1.
    H_TXT1 = 'variable'.
  ENDIF.
  IF NOT PA_ITEM4 IS INITIAL.          " Programma
    CONCATENATE 'in program' PA_STR INTO H_STRING1 SEPARATED BY ' '.
    H_TXT1 = 'program'.
  ENDIF.
  IF NOT PA_ITEM5 IS INITIAL.          " String
    H_STRING1 = PA_STR.
    H_TXT1 = 'string'.
  ENDIF.
  CONCATENATE '"' PA_STR '"' INTO H_TXT2.

  FORMAT COLOR COL_HEADING INTENSIFIED ON.

  CONCATENATE 'Use of'
              H_TXT1
              H_TXT2
              'in forms'
              INTO KOP SEPARATED BY ' '.
  WRITE: / KOP.
  ULINE.

  FORMAT COLOR COL_HEADING INTENSIFIED OFF.
  WRITE: /         'Clt',
          005      'Form',
          036      'Lang',
          041(030) 'Window',
          072(002) 'Fm',
          077(132) 'Row'.
  ULINE.

  FORMAT COLOR COL_NORMAL INTENSIFIED ON.

  STXL_ID-TDOBJECT = 'FORM'.
  STXL_ID-TDID = 'TXT'.

  SELECT * FROM STXL CLIENT SPECIFIED
          WHERE MANDT    = PA_MANDT
            AND RELID    EQ 'TX'
            AND TDOBJECT EQ 'FORM'
            AND TDID     EQ 'TXT'
            AND TDNAME   IN SO_NAME
            AND TDSPRAS  IN SO_SPRAS.
    MOVE-CORRESPONDING STXL TO I_STXL.
    APPEND I_STXL.
  ENDSELECT.

  SORT I_STXL.

  CLEAR HUIDIGE_TDSPRAS_TDNAME.
  CLEAR VORIGE_TDSPRAS_TDNAME.

  LOOP AT I_STXL.
    STXL_ID-TDNAME  = I_STXL-TDNAME.
    STXL_ID-TDSPRAS = I_STXL-TDSPRAS.
    STXL_ID-TDID    = I_STXL-TDID.
    CONCATENATE STXL_ID-TDSPRAS STXL_ID-TDNAME
                INTO HUIDIGE_TDSPRAS_TDNAME.

    IF HUIDIGE_TDSPRAS_TDNAME <> VORIGE_TDSPRAS_TDNAME.
      CONCATENATE STXL_ID-TDSPRAS STXL_ID-TDNAME
                                  INTO VORIGE_TDSPRAS_TDNAME.

      REFRESH LINES.
      CLEAR H_TEL.

      IMPORT TLINE TO LINES FROM DATABASE STXL(TX)
                                 CLIENT   I_STXL-MANDT
                                 ID       STXL_ID.

      LOOP AT LINES.
        IF LINES-TDFORMAT = '/W'.
          H_WINDOW = LINES-TDLINE.
        ENDIF.
        SEARCH LINES-TDLINE FOR H_STRING1.
        IF SY-SUBRC <> 0 AND H_STRING2 <> SPACE.
          SEARCH LINES-TDLINE FOR H_STRING2.
        ENDIF.
        IF SY-SUBRC EQ 0 AND LINES-TDFORMAT NE '/*'.
          H_POS = SY-FDPOS.
          IF NOT PA_ITEM1 IS INITIAL.
            ADD 8 TO H_POS.
          ENDIF.
          IF NOT PA_ITEM4 IS INITIAL.
            ADD 11 TO H_POS.
          ENDIF.
          H_LEN = STRLEN( PA_STR ).
          H_STRING = LINES-TDLINE+H_POS(H_LEN).
          IF H_TEL EQ 0.
            HIDE I_STXL-MANDT.
            HIDE STXL-TDNAME.
            HIDE I_STXL-TDSPRAS.
            WRITE: /001 I_STXL-MANDT,
                    005 STXL-TDNAME HOTSPOT ON,
                    036 I_STXL-TDSPRAS,
                    041 H_WINDOW(30).
            CLEAR STXL-TDNAME.
          ELSE.
            WRITE: /041 H_WINDOW(30).
          ENDIF.
          WRITE: 072 LINES-TDFORMAT.
          H_POS1 = 77 + H_POS.
          H_POS2 = H_POS + STRLEN( H_STRING ).
          IF H_POS EQ 0.
            CLEAR H_LINE1.
          ELSE.
            H_LINE1 = LINES-TDLINE(H_POS).
          ENDIF.
          H_LINE2 = LINES-TDLINE+H_POS2.
          H_POS2 = H_POS2 + 77.
          WRITE: 077       H_LINE1,
                 AT H_POS1 H_STRING COLOR COL_HEADING,
                 AT H_POS2 H_LINE2.

          H_TEL = H_TEL + 1.
          H_TOT = H_TOT + 1.
        ENDIF.
      ENDLOOP.
      IF NOT H_TEL IS INITIAL.
        ULINE.
      ENDIF.

    ENDIF.

  ENDLOOP.

  FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
  SKIP 1.
  WRITE: / 'Number of hits:', H_TOT.

AT LINE-SELECTION.

  CHECK STXL-TDNAME <> SPACE.

  GET CURSOR FIELD  H_FIELD
             VALUE  H_VALUE
             LINE   H_LINE
             OFFSET H_OFFSET.

  CHECK H_FIELD = 'STXL-TDNAME'.

  CHECK I_STXL-MANDT = SY-MANDT.

  REFRESH BDCDATA.
  PERFORM BDC_DYNPRO USING 'SAPMSSCF'      '1102'.
  PERFORM BDC_FIELD  USING 'RSSCF-TDFORM'  STXL-TDNAME.
  PERFORM BDC_FIELD  USING 'RSSCF-TDSPRAS' I_STXL-TDSPRAS.
  CALL TRANSACTION 'SE71'  USING BDCDATA.

  CLEAR STXL-TDNAME.

*&---------------------------------------------------------------------*
*&      Form  BDC_DYNPRO
*&---------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.

  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.

ENDFORM.                               " BDC_DYNPRO

*&---------------------------------------------------------------------*
*&      Form  BDC_FIELD
*&---------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.

  CLEAR BDCDATA.
  BDCDATA-FNAM = FNAM.
  BDCDATA-FVAL = FVAL.
  APPEND BDCDATA.

ENDFORM.                               " BDC_FIELD

*******************************************************

*Comment Angelo:
*
*Selection-texts:
*PA_ITEM1
*PA_ITEM2
*PA_ITEM3
*PA_ITEM4
*PA_ITEM5
*PA_MANDT     Client
*PA_STR       Search-item
*SO_NAME      Form
*SO_SPRAS     Language
*
*Text-symbols:
*001	Selection search-item
*002	Value
*003	Selection form(s)
*011	Standard text
*012	Table (+ field)
*013	Variable
*014	Program
*015	String
*		
*

I am looking for a report, tcode or function to find all functions that contain a string.

Example: String to search "Credit"

function "Z*"

is anyone knows a tcode, program or function doing it?

Regards

dstj

DSTJ - when copying from elsewhere. It's better to just give the link rather than copying and pasting. In this case, it is:

http://searchsap.techtarget.com/tip/0,289483,sid21_gci798360,00.html

Since the author is mentioned in the documentation, I didn't remove the code.

Edited by: Rob Burbank on Mar 2, 2009 11:52 AM

Read only

0 Likes
1,261

Hi,

I hope you can try 3rd party tool - 'ExamDiff Freeware Application', ofcourse it will be used to compare 2 text files too.

Regards,

~Satya