2006 Mar 02 7:39 PM
In SAP GUI "Where-used list (CtrlShiftF3)" for ABAP type STRING raises the following error "STRING is a predefined data type in ABAP/4". How else could I find how often String type is used in SAP System?
2006 Mar 02 7:42 PM
hi,
use this program <b>RPR_ABAP_SOURCE_SCAN</b>
to scan.
regards
vijay
2006 Mar 02 7:42 PM
hi,
use this program <b>RPR_ABAP_SOURCE_SCAN</b>
to scan.
regards
vijay
2006 Mar 02 7:45 PM
2006 Mar 03 1:40 AM
2 points for RPR_ABAP_SOURCE_SCAN, thanks!
I'd like to give 10 points for the following query or its result: "Find all exported RFC function modules that has STRING among their parameter types".
2006 Mar 03 1:53 AM
Run program RPR_ABAP_SOURCE_SCAN.
In selection screen enter the Program Type 'F' (Function Group)
And desired Development class.
'STRING' as parameter for 'Find String'.
Radio button ABAP Programs and execute.
You need to filter/ check this result again to get the RFC / function names.
2006 Mar 03 3:38 AM
GO TO SE11
GIVE TABLE NAME TFDIR,
GIVE VALUES FOR FIELDS FOR SELECTION AS FOLLOWS
FUNCNAME STRING
FMODE R
U WILL FIND ALL RFC USING STRINGS
2006 Mar 04 1:38 AM
Hymavathi Oruganti wrote:
> GO TO SE11
>
> GIVE TABLE NAME TFDIR,
>
> GIVE VALUES FOR FIELDS FOR SELECTION AS FOLLOWS
>
> FUNCNAME STRING
> FMODE R
>
>
> U WILL FIND ALL RFC USING STRINGS
2 points for the useful transaction (SE11), thanks.
But this will find all remotely enabled functions having "STRING" as part of their name, not parameter's type.
2006 Mar 03 3:51 AM
hi
If u r not remembering the name of program even though u can find program name
For that purpose u should no either variable name or string which used in the program.
1. Program Name : RPR_ABAP_SOURCE_SCAN
OR
2. Transaction Code : ewk1
regards
vinod
2006 Mar 03 4:00 AM
Hi Sam,
You can use program RPR_ABAP_SOURCE_SCAN.
This program has a field on the selection screen where you can provide the name of the program. However, this field is not mandatory. If you want, you can enter an * here to scan all programs <i>(THIS IS HOWEVER NOT RECOMMENDED SINCE THE EXECUTION TIME WILL BE EXTREMELY HIGH AND YOUR PROGRAM WILL TIME-OUT, ELSE SET IT AS A BACKGROUND TASK.)</i> In case, you just want to check all custom programs, you can specify Y* or Z* in this field.
Hope this helps.
Regards,
Madhur
NB: Please do award points if found helpful.
Message was edited by: Madhur Chopra
2006 Mar 04 3:29 AM
Thanks and 2 points to everybody for the proposed source code scanners (RPR_ABAP_SOURCE_SCAN, RSRSCAN1, ewk1, etc.) but I failed with them. Either timeout or too much efforts to review results for even small amount of functions.
Let's review our bonuses:
- 10 points for the following query "Find ALL exported RFC function modules that has ABAP TYPE STRING among their parameter types".
- 6 points for the result of this query that was performed on any SAP System without the query itself.
Example functions are STFC_STRING, STFC_DEEP_STRUCTURE, STFC_DEEP_TABLE.
2006 Mar 04 4:36 AM
i am not sure whether you would find a standard tool for this. you may have to write some code.
check out this FM FUNCTION_IMPORT_INTERFACE
this takes the function name as parameter and returns its import/export/tables parameters along with their types.
you could copy this to a custom namespace, and modify ito accept multiple fnction names or with wild card characters and do the search.
Regards
Raja
2006 Mar 04 4:49 AM
chk this code which is used to find programs,strings ... in SAP SCRIPTS forms , may be it may give u some idea
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