cancel
Showing results for 
Search instead for 
Did you mean: 

name of sap script form

Former Member
0 Kudos

hi ,

If I am calling a subroutine from a SAP SCRIPT ....and I want the name of the sap script which is calling it ... means there is a subroutine which more that one script calls ...if I want to find out which one is calling it how can we find that out.for example like sy-cprog or sy-repid..is there anything????? pls advise

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member196280
Active Contributor
0 Kudos

Unfortunately, by using where used list we cannot trace which SAPscript by using sub-routine program... to over-come this kind of situation it is good program practice to use comment with short description, by what all Scripts are using the sub-routine.

Regards,

SaiRam

Former Member
0 Kudos

Hi,

I hereby attach the source code of a pgm which may be used to do a 'search' operation in source code of the SAP Script.Please note that this is not my pgm, I had downloaded from one of the sites. Unfortunately I neither remember the name of teh site nor the name of the author. However I have been using it without any problems.


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

Once you copy the above mentioned program.Just run this pgm with the parameters:-

Selection search text: String

Search text: PERFORM name_of_the_subroutine

Selection Forms: Z*

Language: E

& it will display all the SAP Scripts from where this routine is being called.

I hope this helps,

Regards

Raju Chitale