Finding all programs having particualr string in its Text symbols...
Hello Gurus,
If I want to search the string in ABAP code , I know I can use program RPR_ABAP_SOURCE_SCAN.
But I want to find all SAP programs in which the text-symbols is defined by a particular string. How can I do that ?
Please help....
Hello Rajesh
A function module which provides you will all text elements of a single report is RPY_PROGRAM_READ.
Given this fm it is quite simple to write a report for your requirement:
*& Report ZUS_SDN_READ_TEXT_ELEMENTS
*& Thread: Finding all programs having particualr string in its Text symbols...
*& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="814207"></a>
REPORT zus_sdn_read_text_elements.
TABLES: trdir.
TYPES: BEGIN OF ty_s_outtab.
TYPES: name TYPE trdir-name.
INCLUDE TYPE textpool AS text.
TYPES: END OF ty_s_outtab.
TYPES: ty_t_outtab TYPE STANDARD TABLE OF ty_s_outtab
WITH DEFAULT KEY.
DATA: gt_outtab TYPE ty_t_outtab,
gs_outtab TYPE ty_s_outtab,
gt_fcat TYPE lvc_t_fcat.
DATA: gt_trdir TYPE STANDARD TABLE OF trdir,
gs_trdir TYPE trdir.
DATA: gt_textpool TYPE STANDARD TABLE OF textpool.
DATA: gd_count TYPE i,
gd_perc TYPE i,
gd_text(50) TYPE c.
SELECT-OPTIONS:
o_report FOR trdir-name.
START-OF-SELECTION.
IF ( o_report[] IS INITIAL ).
ELSE.
SELECT * FROM trdir INTO TABLE gt_trdir
WHERE name IN o_report.
ENDIF.
CHECK ( gt_trdir IS NOT INITIAL ).
DESCRIBE TABLE gt_trdir.
gd_count = syst-tfill.
LOOP AT gt_trdir INTO gs_trdir.
gd_perc = ( syst-tabix * 100 ) / gd_count.
gd_text = gs_trdir-name.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = gd_perc
text = gd_text.
REFRESH: gt_textpool.
CALL FUNCTION 'RPY_PROGRAM_READ'
EXPORTING
* LANGUAGE = SY-LANGU
program_name = gs_trdir-name
with_includelist = ' '
* ONLY_SOURCE = ' '
only_texts = 'X'
* READ_LATEST_VERSION = ' '
* WITH_LOWERCASE = ' '
* IMPORTING
* PROG_INF =
TABLES
* INCLUDE_TAB =
* SOURCE =
* SOURCE_EXTENDED =
textelements = gt_textpool
EXCEPTIONS
cancelled = 1
not_found = 2
permission_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
DELETE gt_textpool WHERE ( id NE 'I ' ). " keep only text elements
CLEAR: gs_outtab.
gs_outtab-name = gs_trdir-name.
LOOP AT gt_textpool INTO gs_outtab-text.
APPEND gs_outtab TO gt_outtab.
ENDLOOP.
ENDLOOP.
PERFORM build_fieldcatalog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* i_structure_name =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT_LVC =
it_fieldcat_lvc = gt_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
TABLES
t_outtab = gt_outtab
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.
END-OF-SELECTION.
*& Form BUILD_FIELDCATALOG
* text
* --> p1 text
* <-- p2 text
FORM build_fieldcatalog .
* define local data
DATA: ls_fcat TYPE lvc_s_fcat,
lt_fcat TYPE lvc_t_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'TRDIR'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = gt_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
DELETE gt_fcat WHERE ( fieldname NE 'NAME' ).
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'TEXTPOOL'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = gt_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT gt_fcat INTO ls_fcat.
ls_fcat-col_pos = syst-tabix.
MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
ENDLOOP.
ENDFORM. " BUILD_FIELDCATALOG
Regards
Uwe
Similar Messages
-
How to fast replace text inside a program by its text symbol ?
Hi guys !
I'm new here and I have a little question for you.
I have a program with a lot of texts and I started to add them into the text symbols tables.
example:
Program :'Hello world'(001)
Symbol table : 001 | Hello world
I'm looking for a tip wich replaces the 'Hello world'(001) by text-001 inside my program. Is that possible to do this ?
Best regards,
SoniaHi Sonia,
The notation Hello world'(001)' stands both for text literal 'Hello world' and text symbol text-001 . During logon the system checks the language and if there is corresponding text symbol in this language. If text-001 doens't satify this check, text 'Hello world' is displayed instead.
It is therefore highly recomended to leave that notation, because as the system wouldn't find text symbol it would display empty string, which must be avoided. It usually happens in selection texts, so sometimes you can see selection screen field without explanation text, but its technical name like i.e. PA_BUKRS.
Regards
Marcin -
Gray screen after screen freeze and finder+all programs restart.
Sometimes, (like 4 or 5 times a day) my screen freezer, i get a loading circle, a gray screen and then Finder and all my programs restart.
It's doing that since i updated to Osx lion.
Computers
- 21.5" iMac 2010
- 15" MacBook Pro 2006
Does anyone know what this is? And how do I solve this problem?
Because its shuts down everything im busy with (and doesn't save it).I found this to work at least to get in and backup some files. It is VERY important to put these commands in EXACTLY as seen here, including spaces.
Boot into Single-User mode (Command-S while booting up)
Execute the following commands:
/sbin/fsck -fy /
/sbin/mount -uw /
mkdir /Disabled_System_Library_Extensions
cd /Disabled_System_Library_Extensions
mv /System/Library/Extensions/ATI* .
mv /System/Library/Extensions/AMD* .
touch /System/Library/Extensions
exit
I guess these two graphics extensions go bad quite often on Macbook Pro 15-inch. They are part of the logic board. The only problem I had was I still couldn't get into my computer any other way, and the graphics for Safari were messed up. Firefox was okay. Good Luck!
Here's the original thread:
http://apple.stackexchange.com/questions/120507/boot-hangs-on-grey-screen-even-w hen-booting-from-usb-drive-with-fresh-os-x-inst -
Find all texts in custom programs
my Client wants to tranlate all the Dutch text messages in English. He requested to find all the programs where the translation is required. Any suggestions on the approach.
I tried going to SE91 and do where used list of all the custom message classes. any other suggestions than this.Hi,
You may select all the custom messages from database table T100, specifitying the language, message classes starting with Y or Z. Get the translated text from the customer and update it for Dutch language in the same table.
There can also be some messages using the Text-symbols of the custom programs. You can use the text-symbols from all the custom programs using the ABAP statement:
READ TEXTPOOL prog ... INTO itab ... LANGUAGE lg.
The best approach would be to start with the collection of all the custom programs and custom message classes. Then you can use the above steps to get all the texts in english language. Get the translations for all these texts from user in an excel or notepad file. Write an upload program to upload the excel from local pc. Then update the messages for message class in T100 and update the Program text symbols using ABAP statemtnt INSERT TEXT-POOLS......
Regards,
Jayesh
Edited by: Jayesh Gupta on Apr 20, 2010 2:31 PM -
Rename SAP username - Find all references in the system
Hi all,
we want to rename (copy and create new sap user id) in our SAP system.
Now we have to find all objects and relationships where the old users are specified.
Is there a way how to find all program where the users are specified?
Z-Programs where users are specified?
Z-Customizing tables where users are specified?
Customizing settings where users are specified?
Any ideas?
regards>
CC_BC Team wrote:
> we want to rename (copy and create new sap user id) in our SAP system.
> Is there a way how to find all program where the users are specified?
> Z-Programs where users are specified?
> Z-Customizing tables where users are specified?
> Customizing settings where users are specified?
> Any ideas?
> regards
Last time one of our user changed her last name we create new user id for her and then locked and deleted old account.
I don't think its possible to change username from all documents/objects/change documents which users has created under his/her id. The best, and the only way I think is to create new user id and delete/lock old one.
Regards,
Pawan.
PS: profile parameters and favourites can be copied from old user id to new or any other user id.
Edited by: Pawan Kesari on Aug 17, 2010 8:21 PM -
How to find bdc programs?
Hi all,
I am working on upgrading project. I want to list all BDC programs. Is there any way i can find all programs which are using BDC Uploads?
Many Thanks
ShivaHI Shiva,
There is no Special Search in SAP, but you can make use of function module which we use in BDC.
In Se37 --> Do the where used list on BDC_OPEN_GROUP, BDC_INSERT
and also, do the search for <b>Call TRANSACTION</b>
or else, you can use the Structure BDCDATA, goto SE11 and give this Structure name and do the where used list, give only Z* and Y*, so you will get all BDC Programs
Regards
Sudheer -
Guys,
I want to download the programs from application server into one folder.If there is any program please help on this.
If there is any attachment please mail to this id.
mailid:[email protected]
regards,
vijayHI Vijay,
the following program works on 47..
[code]
REPORT ZDOWN.
$$================================================================$$
Direct download ver 4.12.
THIS SOFTWARE IS FOR PERSONAL USE ONLY.
THIS PROGRAM IS FREEWARE AND IS PROVIDED ON AN AS-IS BASIS
WITHOUT WARRANTY OF ANY KIND.
THE PROVIDER SPECIFICALLY DISCLAIMS ANY OTHER WARRANTY,
EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL PROVIDER BE LIABLE FOR ANY CONSEQUENTIAL,
INDIRECT, SPECIAL OR INCIDENTAL DAMAGES, EVEN IF PROVIDER
HAS BEEN ADVISED BY CLIENT OF THE POSSIBILITY OF SUCH
POTENTIAL LOSS OR DAMAGE. CLIENT AGREES TO HOLD PROVIDER
HARMLESS FROM AND AGAINST ANY AND ALL CLAIMS, LOSSES,
LIABILITIES AND EXPENSES. BY INSTALLING OR RUNNING
THIS PROGRAM YOU ARE AGREEING TO THE TERMS AND CONDITONS STATED
ABOVE.
$$----
$$
PROGRAM DESCRIPTION
Allows a user to download ABAPs, Functions DD definitions, etc to
the presentation server. This version searches recursively for
nested includes and function modules, and allows you to download
the resulting code as standard text or HTML web pages.
Compatible with R/3 versions 3 and 4.
$$----
$$
AUTHORS : E.Mellodew & John Davies-Hale
PROGRAM HISTORY
1.0 Original program created
2.0 Modified selection texts so they are now stored within
the actual abap program.
Added functionality to download text elements and selection
texts for any downloaded online programs.
Added functionality to download message classes.
Added functionality to download screens.
2.1 Fixed program names being truncated when downloading
programs on version 4 systems.
3.0 New version - allows you to download files in HTML format as
well as text format.
3.1 Added the ability to download nested include programs.
3.2 Added the ability to download custom dictionary structures
referenced within programs.
Added the option to include/exclude local private objects.
Fixed problem with HTML documents not displaying correctly
within Netscape Communicator.
3.21 Added domain name texts to HTML dictionary structure download.
Fixed issue whereby field symbols displayed incorrectly within
HTML documents.
4.00 Re-structured program.
Increased scope of options on parameter screen
Created user friendly screen showing downloads
Allows user to download function modules
Program is now fully recursive and allows downloading of
includes within includes/functions
and functions within functions/includes.
4.02 Added ability to download module pools
Added 'key' flag to dictionary downloads
4.03 Screen 1000's can now be downloaded if they belong to a
module pool and are not a parameter screen
4.10 Added ability to download function module documentation
4.11 Problem with some documentation not being downloaded fixed
Limitations
SAP does not have the provision to create sub-folders at present.
Messages are not downloaded for nested includes
TABLES - DATABASES
TABLES: RS38M, TADIR, TRDIR, DD01T, "REPOSRC,
TRDIRE, T100, TLIBV,
DD02L, DD03L, DD04T, V_FDIR, TFDIR, TFTIT, D010INC, DD02T.
TYPES
*----- Text element structure
TYPES: T_TEXTTAB LIKE TEXTPOOL.
*--- Message classes
TYPES: BEGIN OF T_MESSAGES,
MSGID LIKE TRDIRE-MSGID,
MSGNR LIKE T100-MSGNR,
TEXT LIKE T100-TEXT,
END OF T_MESSAGES.
*--- screen flow.
TYPES: BEGIN OF T_SCREEN_FLOW,
SCREEN LIKE D020S-DNUM,
CODE LIKE D022S-LINE,
END OF T_SCREEN_FLOW.
*--- Data dictionary objects - tables, structures.
TYPES: BEGIN OF T_DICT_STRUCT,
TABNAME LIKE DD03L-TABNAME,
TABTEXT LIKE DD02T-DDTEXT,
FIELDNAME LIKE DD03L-FIELDNAME,
POSITION LIKE DD03L-POSITION,
KEYFLAG LIKE DD03L-KEYFLAG,
ROLLNAME LIKE DD03L-ROLLNAME,
DOMNAME LIKE DD03L-DOMNAME,
DATATYPE LIKE DD03L-DATATYPE,
LENG LIKE DD03L-LENG,
DDTEXT LIKE DD04T-DDTEXT,
END OF T_DICT_STRUCT.
*--- Function Modules
TYPES: BEGIN OF T_FUNCTIONS,
FUNCNAME LIKE TFDIR-FUNCNAME,
INCLUDE LIKE TFDIR-INCLUDE,
PNAME LIKE TFDIR-PNAME,
STEXT LIKE TFTIT-STEXT,
END OF T_FUNCTIONS.
*--- Include program names
TYPES: BEGIN OF T_INCLUDES,
PROG LIKE TRDIR-NAME,
TEXT(255),
END OF T_INCLUDES.
*----- ABAP program list
TYPES: BEGIN OF T_PROGRAMMES,
DEVCLASS LIKE TADIR-DEVCLASS,
PROG LIKE TRDIR-NAME,
TEXT(255),
SUBC(1) TYPE C,
FUNCTIONS TYPE T_FUNCTIONS OCCURS 0,
END OF T_PROGRAMMES.
DATA - INTERNAL TABLES
*---- Program texts - declaration only not used
DATA: I_TEXTTAB TYPE T_TEXTTAB OCCURS 0 WITH HEADER LINE.
DATA: I_MESSAGES TYPE T_MESSAGES OCCURS 0 WITH HEADER LINE.
DATA: I_SCREEN_FLOW TYPE T_SCREEN_FLOW.
*----- Program content for text download
DATA: BEGIN OF CONTENT OCCURS 0,
LINE(255),
END OF CONTENT.
*--- Programme texts.
DATA: I_PROGRAMME_TEXTS TYPE T_TEXTTAB OCCURS 0 WITH HEADER LINE.
*--- dictionary object
DATA: I_DICTIONARY TYPE T_DICT_STRUCT OCCURS 0 WITH HEADER LINE.
*--- Allows HTML routines to create an HTML without the table name on
each line.
DATA: BEGIN OF I_DICT_MINUS_TABNAME OCCURS 0,
fieldname like dd03l-fieldname,
position like dd03l-position,
KEYFLAG LIKE DD03L-KEYFLAG,
rollname like dd03l-rollname,
domname like dd03l-domname,
datatype like dd03l-datatype,
leng like dd03l-leng,
ddtext like dd04t-ddtext,
END OF I_DICT_MINUS_TABNAME.
*--- Table names of customer tables, used for searching for tables
DATA: BEGIN OF TABLE_NAMES OCCURS 0,
TABNAME LIKE I_DICTIONARY-TABNAME,
TABTEXT LIKE DD02T-DDTEXT,
END OF TABLE_NAMES.
*--- Function Modules.
DATA: I_FUNCTIONS TYPE T_FUNCTIONS OCCURS 0 WITH HEADER LINE.
DATA: I_FUNCTIONS_2 TYPE T_FUNCTIONS OCCURS 0 WITH HEADER LINE.
*--- Customer function names, used for searching for functions
DATA: BEGIN OF FUNCTION_NAMES OCCURS 0,
FUNCNAME LIKE I_FUNCTIONS-FUNCNAME,
END OF FUNCTION_NAMES.
DATA: BEGIN OF I_PROGRAMMES OCCURS 0,
DEVCLASS LIKE TADIR-DEVCLASS,
PROG LIKE TRDIR-NAME,
TEXT(255),
SUBC(1) TYPE C,
MESSAGES TYPE T_MESSAGES OCCURS 0,
TEXT_ELEMENTS TYPE T_TEXTTAB OCCURS 0,
SELECTION_TEXTS TYPE T_TEXTTAB OCCURS 0,
SCREEN_FLOW TYPE T_SCREEN_FLOW OCCURS 0,
INCLUDES TYPE T_INCLUDES OCCURS 0,
FUNCTIONS TYPE T_FUNCTIONS OCCURS 0,
DICT_STRUCT TYPE T_DICT_STRUCT OCCURS 0,
END OF I_PROGRAMMES.
*--- Names of function modules used within programmes
data: i_prog_includes type t_includes occurs 0 with header line.
*--- Includes to download
DATA: I_INCLUDES LIKE I_PROGRAMMES OCCURS 0 WITH HEADER LINE.
*--- Tree display structure.
DATA: I_NODE LIKE SNODETEXT OCCURS 0 WITH HEADER LINE.
*--- Temp table of downloaded objects.
DATA: BEGIN OF I_DOWNLOADED OCCURS 0,
OBJECT(30),
END OF I_DOWNLOADED.
DATA - WORKING FIELDS
DATA: FOOTER_MESSAGE LIKE CONTENT-LINE.
DATA: MESS(100).
DATA: TEMP_FUNC_NAME LIKE I_FUNCTIONS-FUNCNAME.
DATA: FORCED_EXIT TYPE I VALUE 0.
DATA: START_TIME LIKE SY-UZEIT.
DATA: RUN_TIME LIKE SY-UZEIT.
DATA: RUN_TIME_CHAR(8).
RANGES: S_PROG FOR TRDIR-NAME.
RANGES: S_DEV FOR TADIR-DEVCLASS.
RANGES: S_AUTH FOR USR02-BNAME.
RANGES: S_TABLE FOR DD02L-TABNAME.
RANGES: S_FNAME FOR TFDIR-FUNCNAME.
RANGES: S_FGROUP FOR ENLFDIR-AREA.
CONSTANTS
CONSTANTS: C_TABLES(6) VALUE 'TABLES'.
CONSTANTS: C_LIKE(4) VALUE 'LIKE'.
CONSTANTS: C_TYPE(4) VALUE 'TYPE'.
CONSTANTS: C_STRUCTURE(9) VALUE 'STRUCTURE'.
CONSTANTS: C_COMMA(1) VALUE ','.
CONSTANTS: C_PERIOD(1) VALUE '.'.
CONSTANTS: C_VERSION_NO(4) VALUE '4.12'.
SELECTION SCREEN
*--- Author
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE T_B1.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 5(23) T_AUTH.
PARAMETERS: P_AUTH LIKE USR02-BNAME.
selection-screen end of line.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 5(36) T_PMOD.
parameters: p_mod as checkbox.
selection-screen end of line.
SELECTION-SCREEN: END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE T_B2.
*--- Tables
selection-screen begin of line.
PARAMETERS: R_TABLE RADIOBUTTON GROUP R1.
SELECTION-SCREEN COMMENT 5(20) T_RTABLE.
selection-screen end of line.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 10(18) T_PTABLE.
PARAMETERS: P_TABLE LIKE DD02L-TABNAME.
SELECTION-SCREEN END OF LINE.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 10(69) T_TNOTE.
selection-screen end of line.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 14(61) T_TNOTE1.
selection-screen end of line.
*--- Function Modules
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: R_FUNC RADIOBUTTON GROUP R1.
SELECTION-SCREEN COMMENT 5(30) T_RFUNC.
selection-screen end of line.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 10(18) T_PFNAME.
PARAMETERS: P_FNAME LIKE TFDIR-FUNCNAME.
selection-screen end of line.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 10(18) T_FGROUP.
PARAMETERS: P_FGROUP LIKE ENLFDIR-AREA.
selection-screen end of line.
*--- Programs / Includes
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: R_PROG RADIOBUTTON GROUP R1.
SELECTION-SCREEN COMMENT 5(18) T_RPROG.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 10(18) T_RPNAME.
PARAMETERS: P_PROG LIKE TRDIR-NAME MEMORY ID RID.
SELECTION-SCREEN END OF LINE.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 10(18) T_SDEV.
PARAMETERS: P_DEV LIKE TADIR-DEVCLASS.
selection-screen end of line.
*--- Local objects
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(27) T_$TMP.
PARAMETERS: P_$TMP AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK B2.
*----- Additional things to download.
SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME TITLE T_B3.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) T_PTEXT.
PARAMETERS: P_TEXT AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) T_PMES.
PARAMETERS: P_MES AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) T_PINC.
PARAMETERS: P_INC AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 40(20) T_RECU.
PARAMETERS: P_RECI AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 1(30) T_PFUNC.
PARAMETERS: P_FUNC AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 40(20) T_RECF.
PARAMETERS: P_RECF AS CHECKBOX DEFAULT 'X'.
selection-screen end of line.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) T_DOC.
PARAMETERS: P_DOC AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
selection-screen begin of line.
SELECTION-SCREEN COMMENT 1(30) T_PSCR.
PARAMETERS: P_SCR AS CHECKBOX.
selection-screen end of line.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) T_PDICT.
PARAMETERS: P_DICT AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK B3.
*----- File details
SELECTION-SCREEN: BEGIN OF BLOCK B4 WITH FRAME TITLE T_B4.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) T_PHTML.
PARAMETERS: P_HTML RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 30(20) T_PHEXT.
PARAMETERS: P_HEX(4) TYPE C DEFAULT 'Html' LOWER CASE.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) T_PTXT.
PARAMETERS: P_TXT RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 30(20) T_PEXT.
PARAMETERS: P_TEX(4) TYPE C DEFAULT 'Txt' LOWER CASE.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) T_PPATH.
PARAMETERS: P_PATH LIKE RLGRAP-FILENAME
OBLIGATORY DEFAULT 'C:\temp'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK B4.
INITIALIZATION
INITIALIZATION.
*--- parameter screen texts.
T_B1 = 'Author (Optional)'.
T_B2 = 'Objects to download'.
T_B3 = 'Additional downloads'.
T_B4 = 'Download parameters'.
T_AUTH = 'Author name'.
T_PMOD = 'Include programs modified by author'.
T_RTABLE = 'Tables'.
T_PTABLE = 'Table name'.
T_TNOTE = 'Please note: tables are stored under the username of'.
T_TNOTE1 = ' the last person who modified them.'.
T_RFUNC = 'Function modules'.
T_PFNAME = 'Function name'.
T_FGROUP = 'Function group'.
T_RPROG = 'Programs'.
T_RPNAME = 'Program name'.
T_SDEV = 'Development class'.
T_PTXT = 'Text document'.
T_PHTML = 'HTML document'.
T_PTEXT = 'Text elements'.
T_PINC = 'Include programs'.
T_RECU = 'Recursive search'.
T_PHEXT = 'File extension'.
T_PEXT = 'File extension'.
T_PPATH = 'File path'.
T_PMES = 'Message classes'.
T_PFUNC = 'Function modules'.
T_DOC = 'Function module documentation'.
T_RECF = 'Recursive search'.
T_PSCR = 'Screens'.
T_PDICT = 'Dictionary structures'.
T_$TMP = 'Include local objects'.
CONCATENATE 'Extracted by Direct download v' C_VERSION_NO
' 1998-2000.' INTO FOOTER_MESSAGE.
START-OF-SELECTION.
START-OF-SELECTION.
PERFORM CHECK_COMBO_BOXES.
PERFORM FILL_RANGES.
START_TIME = SY-UZEIT.
TRANSLATE P_HEX TO LOWER CASE.
TRANSLATE P_TEX TO LOWER CASE.
*--- Main program flow.
CASE 'X'.
*--- Select tables
WHEN R_TABLE.
PERFORM RETRIEVE_TABLES TABLES I_DICTIONARY
TABLE_NAMES
S_TABLE.
WHEN R_FUNC.
*--- Select function modules
PERFORM RETRIEVE_FUNCTIONS TABLES S_FNAME
S_FGROUP
I_PROGRAMMES
I_FUNCTIONS
USING 1.
LOOP AT I_FUNCTIONS.
PERFORM FUNC_INCLUDE_NAME USING I_FUNCTIONS-PNAME
I_FUNCTIONS-INCLUDE
TEMP_FUNC_NAME
0.
PERFORM FIND_INCLUDE_PROGRAMS USING TEMP_FUNC_NAME.
PERFORM FIND_CUSTOM_FUNCTIONS TABLES I_FUNCTIONS
USING TEMP_FUNC_NAME.
ENDLOOP.
SORT I_PROG_INCLUDES ASCENDING BY PROG.
DELETE ADJACENT DUPLICATES FROM I_PROG_INCLUDES COMPARING PROG.
perform retrieve_functions tables s_fname
s_fgroup
I_FUNCTIONS
I_FUNCTIONS_2
USING 0.
I_FUNCTIONS[] = I_FUNCTIONS_2[].
*--- Select programs
WHEN R_PROG.
MESS = 'Processing please wait...'.
PERFORM DISPLAY_STATUS USING MESS 0.
PERFORM RETRIEVE_PROGRAMS TABLES I_PROGRAMMES
S_PROG
S_DEV
S_AUTH.
ENDCASE.
END-OF-SELECTION
END-OF-SELECTION.
IF FORCED_EXIT = 0.
CASE 'X'.
WHEN R_TABLE.
IF NOT ( I_DICTIONARY[] IS INITIAL ).
PERFORM DOWNLOAD_DD_STRUCTURES TABLES I_DICTIONARY
USING P_PATH.
PERFORM FILL_TREE_NODE_TABLES TABLES I_DICTIONARY.
ENDIF.
WHEN R_FUNC.
IF NOT ( I_FUNCTIONS[] IS INITIAL ).
PERFORM DOWNLOAD_FUNCTIONS TABLES I_FUNCTIONS
USING P_PATH.
PERFORM FILL_TREE_NODE_FUNCTIONS TABLES I_FUNCTIONS.
ENDIF.
WHEN R_PROG.
IF NOT ( I_PROGRAMMES[] IS INITIAL ).
PERFORM DOWNLOAD_PROGRAMS TABLES I_PROGRAMMES
USING P_PATH.
PERFORM FILL_TREE_NODE_PROGRAMS TABLES I_PROGRAMMES.
ENDIF.
ENDCASE.
IF NOT ( I_NODE[] IS INITIAL ).
PERFORM DISPLAY_TREE TABLES I_NODE.
ELSE.
MESS = 'No items found matching selection criteria'.
PERFORM DISPLAY_STATUS USING MESS 2.
ENDIF.
ENDIF.
*--- Name parameters
SET PARAMETER ID 'RID' FIELD P_PROG.
SET PARAMETER ID 'DOB' FIELD P_TABLE.
SET PARAMETER ID 'DVC' FIELD P_DEV.
SET PARAMETER ID 'LIB' FIELD P_FNAME.
****************************SUBROUTINES*******************************
CHECK_COMBO_BOXES...
FORM CHECK_COMBO_BOXES.
IF P_AUTH IS INITIAL.
CASE 'X'.
WHEN R_TABLE.
IF P_TABLE IS INITIAL.
MESS = 'You must enter a table name or author'.
ENDIF.
WHEN R_FUNC.
IF ( P_FNAME IS INITIAL AND P_FGROUP IS INITIAL ).
CONCATENATE 'You must enter a function name,'
'function group or author'
INTO MESS SEPARATED BY SPACE.
ENDIF.
WHEN R_PROG.
IF P_PROG IS INITIAL.
CONCATENATE 'You must enter a program name'
'development class or author'
INTO MESS SEPARATED BY SPACE.
ENDIF.
ENDCASE.
ELSE.
IF R_FUNC = 'X'.
IF ( ( P_AUTH <> '' ) AND
( ( P_FNAME <> '' ) OR ( P_FGROUP <> '' ) ) ).
CONCATENATE 'You cannnot enter an author as well as'
'a func name or func group'
INTO MESS SEPARATED BY SPACE.
ENDIF.
ENDIF.
ENDIF.
IF NOT MESS IS INITIAL.
PERFORM DISPLAY_STATUS USING MESS 3.
FORCED_EXIT = 1.
STOP.
ENDIF.
ENDFORM. " CHECK_COMBO_BOXES
FILL_RANGES... for selection routines
FORM FILL_RANGES.
if not p_auth is initial.
s_auth-sign = 'I'.
s_auth-option = 'EQ'.
s_auth-low = p_auth.
append s_auth.
endif.
IF NOT P_TABLE IS INITIAL.
S_TABLE-SIGN = 'I'.
S_TABLE-OPTION = 'EQ'.
S_TABLE-LOW = P_TABLE.
APPEND S_TABLE.
endif.
IF NOT P_FNAME IS INITIAL.
S_FNAME-SIGN = 'I'.
S_FNAME-OPTION = 'EQ'.
S_FNAME-LOW = P_FNAME.
APPEND S_FNAME.
endif.
IF NOT P_FGROUP IS INITIAL.
S_FGROUP-SIGN = 'I'.
S_FGROUP-OPTION = 'EQ'.
S_FGROUP-LOW = P_FGROUP.
APPEND S_FGROUP.
endif.
IF NOT P_PROG IS INITIAL.
S_PROG-SIGN = 'I'.
S_PROG-OPTION = 'EQ'.
S_PROG-LOW = P_PROG.
APPEND S_PROG.
ENDIF.
IF NOT P_DEV IS INITIAL.
S_DEV-SIGN = 'I'.
S_DEV-OPTION = 'EQ'.
S_DEV-LOW = P_DEV.
APPEND S_DEV.
ENDIF.
IF P_$TMP IS INITIAL.
S_DEV-SIGN = 'E'.
S_DEV-OPTION = 'EQ'.
S_DEV-LOW = '$TMP'.
APPEND S_DEV.
ENDIF.
ENDFORM.
FIND_TABLES... Search for tables in dictionary
FORM RETRIEVE_TABLES TABLES I_DICTIONARY STRUCTURE I_DICTIONARY
TABLE_NAMES STRUCTURE TABLE_NAMES
RANGE_TABLE STRUCTURE S_TABLE.
SELECT TABNAME FROM DD02L
INTO TABLE_NAMES-TABNAME
WHERE TABNAME IN RANGE_TABLE
AND AS4USER IN S_AUTH.
SELECT SINGLE DDTEXT FROM DD02T
INTO TABLE_NAMES-TABTEXT
WHERE TABNAME = TABLE_NAMES-TABNAME
AND DDLANGUAGE = SY-LANGU.
APPEND TABLE_NAMES.
ENDSELECT.
IF NOT ( TABLE_NAMES[] IS INITIAL ).
PERFORM FIND_TABLE_DEFINITION TABLES I_DICTIONARY
TABLE_NAMES.
ENDIF.
ENDFORM.
find_table_definition... from sap database.
FORM FIND_TABLE_DEFINITION TABLES I_DICT STRUCTURE I_DICTIONARY
TABLENAMES STRUCTURE TABLE_NAMES.
DATA gotstate LIKE dcobjif-gotstate.
DATA dd02v_wa LIKE dd02v.
DATA dd09l_wa LIKE dd09l.
DATA: DEFINITION LIKE DD03P OCCURS 0 WITH HEADER LINE.
LOOP AT TABLENAMES.
CALL FUNCTION 'DDIF_TABL_GET'
EXPORTING
NAME = TABLENAMES-TABNAME
STATE = 'A'
LANGU = 'E'
IMPORTING
GOTSTATE = GOTSTATE
DD02V_WA = DD02V_WA
DD09L_WA = DD09L_WA
TABLES
DD03P_TAB = DEFINITION
EXCEPTIONS
ILLEGAL_INPUT = 1
OTHERS = 2.
IF SY-SUBRC = 0 AND GOTSTATE = 'A'.
LOOP AT DEFINITION.
MOVE-CORRESPONDING DEFINITION TO I_DICT.
MOVE TABLE_NAMES-TABTEXT TO I_DICT-TABTEXT.
APPEND I_DICT.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDFORM.
RETRIEVE_FUNCTIONS... Retrieve function modules from SAP DB
FORM RETRIEVE_FUNCTIONS TABLES S_FNAME STRUCTURE S_FNAME
S_FGROUP STRUCTURE S_FGROUP
FUNC_NAMES STRUCTURE I_FUNCTIONS
FOUND_FUNC STRUCTURE I_FUNCTIONS
USING MAIN_SCAN.
RANGES: SEL_FNAME FOR TFDIR-FUNCNAME.
RANGES: SEL_FGROUP FOR ENLFDIR-AREA.
SEL_FNAME[] = S_FNAME[].
SEL_FGROUP[] = S_FGROUP[].
IF MAIN_SCAN = 1.
IF NOT P_AUTH IS INITIAL.
*--- select all function groups by author
SELECT AREA FROM TLIBV INTO SEL_FGROUP-LOW
WHERE UNAME = P_AUTH.
SEL_FGROUP-SIGN = 'I'.
SEL_FGROUP-OPTION = 'EQ'.
APPEND SEL_FGROUP.
ENDSELECT.
ENDIF.
*--- Select by function name and/or function group.
SELECT * FROM V_FDIR
WHERE FUNCNAME IN SEL_FNAME
AND AREA IN SEL_FGROUP
AND GENERATED = ''.
SELECT SINGLE FUNCNAME
PNAME
INCLUDE FROM TFDIR
INTO (FOUND_FUNC-FUNCNAME,
FOUND_FUNC-PNAME,
FOUND_FUNC-INCLUDE)
WHERE FUNCNAME = V_FDIR-FUNCNAME.
SELECT SINGLE STEXT FROM TFTIT
INTO FOUND_FUNC-STEXT
WHERE SPRAS = SY-LANGU
AND FUNCNAME = V_FDIR-FUNCNAME.
APPEND I_FUNCTIONS.
ENDSELECT.
ELSE.
LOOP AT FUNC_NAMES.
SELECT SINGLE FUNCNAME
PNAME
INCLUDE FROM TFDIR
INTO (FOUND_FUNC-FUNCNAME,
FOUND_FUNC-PNAME,
FOUND_FUNC-INCLUDE)
WHERE FUNCNAME = FUNC_NAMES-FUNCNAME.
SELECT SINGLE STEXT FROM TFTIT
INTO FOUND_FUNC-STEXT
WHERE SPRAS = SY-LANGU
AND FUNCNAME = FUNC_NAMES-FUNCNAME.
APPEND FOUND_FUNC.
ENDLOOP.
ENDIF.
ENDFORM.
RETRIEVE_PROGRAMS... find programs and sub objects from SAP DB
FORM RETRIEVE_PROGRAMS TABLES I_PROG STRUCTURE I_PROGRAMMES
SEL_PROG STRUCTURE S_PROG
SEL_DEV STRUCTURE S_DEV
SEL_AUTH STRUCTURE S_AUTH.
DATA: COUNTER TYPE I VALUE 1.
DATA: WA_INCLUDES TYPE T_INCLUDES.
*----- Select by name, development class and author
IF P_MOD IS INITIAL.
SELECT PROGNAME SUBC FROM REPOSRC
INTO (I_PROG-PROG,
I_PROG-SUBC)
WHERE PROGNAME IN SEL_PROG
AND DEVCLASS IN SEL_DEV
AND CNAM IN SEL_AUTH.
AND ( SUBC = '1'
OR SUBC = 'M' ).
APPEND I_PROG.
ENDSELECT.
ELSE.
SELECT PROGNAME SUBC FROM REPOSRC
INTO (I_PROG-PROG,
I_PROG-SUBC)
WHERE PROGNAME IN SEL_PROG
AND DEVCLASS IN SEL_DEV
AND SUBC = '1'
AND ( CNAM IN SEL_AUTH
OR UNAM IN SEL_AUTH ).
APPEND I_PROG.
ENDSELECT.
ENDIF.
*----- Find extra items
LOOP AT I_PROG.
PERFORM FIND_PROGRAM_NAME USING I_PROG-PROG
CHANGING I_PROG-TEXT.
IF P_TEXT = 'X'.
PERFORM FIND_PROGRAM_TEXTS TABLES I_PROG.
ENDIF.
IF P_MES = 'X'.
PERFORM FIND_MESSAGES TABLES I_PROG USING I_PROG-PROG.
ENDIF.
IF P_SCR = 'X'.
PERFORM FIND_SCREEN_FLOW TABLES I_PROG USING I_PROG-PROG.
ENDIF.
if p_dict = 'X'.
perform find_custom_dict_structures tables i_prog
table_names
using i_prog-prog.
endif.
if p_func = 'X'.
PERFORM FIND_CUSTOM_FUNCTIONS TABLES FUNCTION_NAMES
USING I_PROG-PROG.
endif.
IF P_INC = 'X'.
PERFORM FIND_INCLUDE_PROGRAMS USING I_PROG-PROG.
PERFORM SORT_INCLUDES TABLES I_PROG.
*--- find all relevant data for the includes table.
IF NOT ( I_INCLUDES[] IS INITIAL ).
LOOP AT I_PROG-INCLUDES INTO WA_INCLUDES.
IF P_DICT = 'X'.
PERFORM FIND_CUSTOM_DICT_STRUCTURES TABLES I_PROG
TABLE_NAMES
USING WA_INCLUDES-PROG.
ENDIF.
IF P_FUNC = 'X'.
PERFORM FIND_CUSTOM_FUNCTIONS TABLES FUNCTION_NAMES
USING WA_INCLUDES-PROG.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
PERFORM SORT_DICT_STRUCTURES TABLES I_PROG TABLE_NAMES.
PERFORM SORT_FUNCTIONS TABLES I_PROG FUNCTION_NAMES.
MODIFY I_PROG INDEX COUNTER.
COUNTER = COUNTER + 1.
ENDLOOP.
ENDFORM.
FIND_PROGRAM_NAME... find programme name
FORM FIND_PROGRAM_NAME USING PROGramme_name
CHANGING programme_TEXT.
READ TEXTPOOL PROGRAMME_NAME INTO I_PROGRAMME_TEXTS LANGUAGE SY-LANGU.
READ TABLE I_PROGRAMME_TEXTS WITH KEY 'R'.
IF SY-SUBRC EQ 0.
PROGRAMME_TEXT = I_PROGRAMME_TEXTS-ENTRY.
DELETE I_PROGRAMME_TEXTS INDEX SY-TABIX.
ENDIF.
ENDFORM. " FIND_PROGRAMME_NAME
FIND_PROGRAM_TEXTS... Messages and text elements
FORM FIND_PROGRAM_TEXTS TABLES I_PROG STRUCTURE I_PROGRAMMES.
DATA: TEMP_SELECTION TYPE T_TEXTTAB.
*--- selection texts.
LOOP AT I_PROGRAMME_TEXTS WHERE ID = 'S'.
APPEND I_PROGRAMME_TEXTS TO I_PROG-SELECTION_TEXTS.
DELETE I_PROGRAMME_TEXTS INDEX SY-TABIX.
ENDLOOP.
*--- Text elements.
LOOP AT I_PROGRAMME_TEXTS WHERE ID = 'I'.
APPEND I_PROGRAMME_TEXTS TO I_PROG-TEXT_ELEMENTS.
ENDLOOP.
ENDFORM.
FIND_MESSAGES... finds all program messages including dynamically
called messages - providing they have been
declared on one complete line.
FORM FIND_MESSAGES TABLES I_PROG STRUCTURE I_PROGRAMMES
USING PROGNAME.
*--- lines for main program
DATA: I_REPORT_LINES LIKE CONTENT OCCURS 0 WITH HEADER LINE.
*-- Separate working area for internal table
DATA: WA_MESSAGES TYPE T_MESSAGES.
DATA: msgid LIKE trdire-msgid.
DATA: HEAD LIKE I_REPORT_LINES-LINE.
DATA: TAIL LIKE I_REPORT_LINES-LINE.
DATA: headlength TYPE i VALUE 0.
DATA: TAILLENGTH TYPE I VALUE 0.
*--- Read the program contents into memory
READ REPORT PROGNAME INTO I_REPORT_LINES.
*--- Read the report content looking for message calls.
LOOP AT I_REPORT_LINES.
TRANSLATE I_REPORT_LINES TO UPPER CASE.
IF NOT ( I_REPORT_LINES IS INITIAL ) AND I_REPORT_LINES(1) <> '*'.
Find the main message definition.
IF I_REPORT_LINES CS 'MESSAGE-ID'.
SHIFT I_REPORT_LINES LEFT DELETING LEADING SPACE.
SPLIT I_REPORT_LINES AT 'MESSAGE-ID' INTO HEAD TAIL.
SPLIT TAIL AT '.' INTO HEAD TAIL.
SHIFT HEAD LEFT DELETING LEADING SPACE.
MSGID = HEAD.
ELSE.
There are three different ways of calling a message to display
this routine looks for all three of them and strips the message
class and number out of the code
IF I_REPORT_LINES CS 'MESSAGE'.
SHIFT I_REPORT_LINES-LINE UP TO 'MESSAGE'.
IF I_REPORT_LINES-LINE CS '('.
SPLIT I_REPORT_LINES-LINE AT '(' INTO HEAD TAIL.
HEADLENGTH = STRLEN( HEAD ).
HEADLENGTH = HEADLENGTH - 3.
WA_MESSAGES-MSGNR = HEAD+HEADLENGTH(3).
SPLIT TAIL AT ')' INTO HEAD TAIL.
WA_MESSAGES-MSGID = HEAD.
ELSEIF I_REPORT_LINES-LINE CS 'ID'.
SHIFT I_REPORT_LINES UP TO 'ID'.
SPLIT I_REPORT_LINES AT SPACE INTO HEAD TAIL.
SHIFT TAIL LEFT DELETING LEADING SPACE.
HEAD = TAIL.
SPLIT HEAD AT SPACE INTO HEAD TAIL.
WA_MESSAGES-MSGID = HEAD.
SPLIT TAIL AT 'NUMBER' INTO HEAD TAIL.
SHIFT TAIL LEFT DELETING LEADING SPACE.
TAILLENGTH = STRLEN( TAIL ).
IF TAILLENGTH = 3.
WA_MESSAGES-MSGNR = TAIL+0(3).
ELSE.
CONTINUE.
ENDIF.
ELSE.
*--- use message class from main program
SPLIT I_REPORT_LINES-LINE AT SPACE INTO HEAD TAIL.
SHIFT TAIL LEFT DELETING LEADING SPACE.
WA_MESSAGES-MSGID = MSGID.
WA_MESSAGES-MSGNR = TAIL+1(3).
ENDIF.
APPEND WA_MESSAGES TO I_PROG-MESSAGES.
CLEAR WA_MESSAGES.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
*--- Sort the messages and delete multiple occurrences from the
internal table.
SORT I_PROG-MESSAGES ASCENDING BY MSGID MSGNR.
DELETE I_PROG-MESSAGES WHERE MSGID(1) <> 'Y'
AND MSGID(1) <> 'Z'.
DELETE ADJACENT DUPLICATES FROM I_PROG-MESSAGES.
DELETE I_PROG-MESSAGES WHERE MSGID IS INITIAL.
DELETE I_PROG-MESSAGES WHERE MSGNR IS INITIAL.
DELETE I_PROG-MESSAGES WHERE MSGNR CN '0123456789'.
LOOP AT I_PROG-MESSAGES INTO WA_MESSAGES.
SELECT SINGLE TEXT FROM T100 INTO WA_MESSAGES-TEXT
WHERE SPRSL = SY-LANGU
AND ARBGB = WA_MESSAGES-MSGID
AND MSGNR = WA_MESSAGES-MSGNR.
MODIFY I_PROG-MESSAGES FROM WA_MESSAGES INDEX SY-TABIX.
ENDLOOP.
ENDFORM.
FIND_SCREEN_FLOW...
FORM FIND_SCREEN_FLOW TABLES I_PROG STRUCTURE I_PROGRAMMES
USING PROGNAME.
DATA: FLOW TYPE T_SCREEN_FLOW OCCURS 0 WITH HEADER LINE.
call function 'DYNPRO_PROCESSINGLOGIC'
exporting
REP_NAME = PROGNAME
tables
SCR_LOGIC = FLOW.
SORT FLOW ASCENDING BY SCREEN.
DELETE ADJACENT DUPLICATES FROM FLOW COMPARING SCREEN.
IF I_PROG-SUBC <> 'M'.
DELETE FLOW WHERE SCREEN = '1000'.
ENDIF.
LOOP AT FLOW.
APPEND FLOW TO I_PROG-SCREEN_FLOW.
ENDLOOP.
ENDFORM. " FIND_SCREEN_FLOW
FIND_INCLUDE_PROGRAMS... Search each program for INCLUDE programs
FORM FIND_INCLUDE_PROGRAMS USING VALUE(PROGRAM).
DATA: FIP_PROG(255),
TAIL(255).
*--- Lines for include
DATA: I_INC_LINES LIKE CONTENT OCCURS 0 WITH HEADER LINE.
*----- Read ABAP
READ REPORT PROGRAM INTO I_INC_LINES.
*----- Examine each line of ABAP
LOOP AT I_INC_LINES.
*--- find include programs.
IF I_INC_LINES(1) = '*' OR I_INC_LINES IS INITIAL.
CONTINUE.
ENDIF.
TRANSLATE I_INC_LINES-LINE TO UPPER CASE.
SHIFT I_INC_LINES-LINE UP TO 'INCLUDE'.
IF ( I_INC_LINES-LINE(9) EQ 'INCLUDE Z' ) OR
( I_INC_LINES-LINE(9) EQ 'INCLUDE Y' )
AND I_INC_LINES-LINE+8(9) NE SPACE
AND SY-TABIX <> 1.
FIP_PROG = I_INC_LINES-LINE+8(64).
SPLIT FIP_PROG AT '.' INTO FIP_PROG TAIL.
Append program name to list of include programs
SELECT SINGLE * FROM TRDIR WHERE NAME EQ FIP_PROG.
CHECK SY-SUBRC EQ 0.
I_PROG_INCLUDES-PROG = FIP_PROG.
APPEND I_PROG_INCLUDES.
*--- Recursively look for other includes.
IF P_RECI = 'X'.
PERFORM FIND_INCLUDE_PROGRAMS USING FIP_PROG.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " FIND_INCLUDE_PROGRAMS
SORT_INCLUDES.. Remove any duplicates from include table.
FORM SORT_INCLUDES TABLES I_PROG STRUCTURE I_PROGRAMMES.
SORT I_PROG_INCLUDES.
DELETE ADJACENT DUPLICATES FROM I_PROG_INCLUDES COMPARING PROG.
LOOP AT I_PROG_INCLUDES.
PERFORM FIND_PROGRAM_NAME USING I_PROG_INCLUDES-PROG
CHANGING I_PROG_INCLUDES-TEXT.
MODIFY I_PROG_INCLUDES.
MOVE-CORRESPONDING I_PROG_INCLUDES TO I_INCLUDES.
APPEND I_INCLUDES.
ENDLOOP.
APPEND LINES OF I_PROG_INCLUDES TO I_PROG-INCLUDES.
CLEAR I_PROG_INCLUDES. REFRESH I_PROG_INCLUDES.
ENDFORM.
FIND_CUSTOM_DICT_STRUCTURES... Look for any dictionary objects
not created by SAP
FORM FIND_CUSTOM_DICT_STRUCTURES TABLES I_PROG STRUCTURE I_PROGRAMMES
TABLE_NAMES
STRUCTURE TABLE_NAMES
USING VALUE(PROGRAM).
DATA I_LINES LIKE CONTENT OCCURS 0 WITH HEADER LINE.
DATA: HEAD(76).
DATA: TAIL(76).
DATA: LINETYPE(9).
DATA: END_OF_LINE TYPE I VALUE 1.
*--- read abap
READ REPORT PROGRAM INTO I_LINES.
LOOP AT I_LINES.
*--- find custom tables.
IF I_LINES-LINE(1) = '*' OR I_LINES IS INITIAL.
CONTINUE.
ENDIF.
TRANSLATE I_LINES-LINE TO UPPER CASE.
Determine the linetype.
IF END_OF_LINE = 1.
SHIFT I_LINES-LINE UP TO C_TABLES.
IF SY-SUBRC = 0.
LINETYPE = C_TABLES.
ELSE.
SHIFT I_LINES-LINE UP TO C_LIKE.
IF SY-SUBRC = 0.
LINETYPE = C_TYPE.
ELSE.
SHIFT I_LINES-LINE UP TO C_TYPE.
-
All help me to find this program its really import...
i've nokia 6500 slide
u know its s40 i searched on a program to make my cam into a webcam but i just found .sis programs for symbian 60 so pls help me all to find a program for thatThe only one that i've seen that's compatible with series 40 is this this one.
Message Edited by psychomania on 12-Jun-2008 08:32 AM -
I was having a problem down loading photos, so I force quite all programs. Then there was problem launching finder. Relaunched and turned computer off to reboot. Now computer starts, but does not boot up I am stopped at a white blank screen
Welcome to Apple Discussions Dathanb
You have posted in the Feedback About New Discussions forum.
As you are a first time poster, you seem to have missed the text at the top of this forum that says:
Please Read This Before Posting Here
If your question concerns a hardware or software technical issue, please do not post in this forum
Go to the main Apple Discussions page, select an appropriate product category and follow the links until you reach the correct forum for your post, then click the POST NEW TOPIC link. Because your post doesn't indicate was OS you are using on your iMac, I can't give you a link to the most appropriate forum.
Basically, though, the version of TechTool on the AppleCare disks is not compatible with newer versions of OS X and/or Macs (I can't remember which). If you don't get a satisfactory response by posting in the appropriate iMac or OS X forum, I suggest you take your iMac to the geniuses at the Apple Store. You can set up an appointment time for the same day online before you leave home.
Peggy -
I am using an early 2008 MacBook Pro and am having issues with it deleting text on its own (in word, emails, etc.). As I am typing it all of a sudden starts deleting and I can't stop it. This happened once before and it was due to a buldging battery pressing on the track pad. I checked the battery and it appears to be fine. What can I do?
Please read this whole message before doing anything.
This procedure is a test, not a solution. Don’t be disappointed when you find that nothing has changed after you complete it.
Step 1
The purpose of this step is to determine whether the problem is localized to your user account.
Enable guest logins* and log in as Guest. For instructions, launch the System Preferences application, select Help from the menu bar, and enter “Set up guest users” (without the quotes) in the search box. Don't use the Safari-only “Guest User” login created by “Find My Mac.”
While logged in as Guest, you won’t have access to any of your personal files or settings. Applications will behave as if you were running them for the first time. Don’t be alarmed by this; it’s normal. If you need any passwords or other personal data in order to complete the test, memorize, print, or write them down before you begin.
Test while logged in as Guest. Same problem?
After testing, log out of the guest account and, in your own account, disable it if you wish. Any files you created in the guest account will be deleted automatically when you log out of it.
*Note: If you’ve activated “Find My Mac” or FileVault, then you can’t enable the Guest account. The “Guest User” login created by “Find My Mac” is not the same. Create a new account in which to test, and delete it, including its home folder, after testing.
Step 2
The purpose of this step is to determine whether the problem is caused by third-party system modifications that load automatically at startup or login.
Disconnect all wired peripherals except those needed for the test, and remove all aftermarket expansion cards. Boot in safe mode* and log in to the account with the problem. The instructions provided by Apple are as follows:
Shut down your computer, wait 30 seconds, and then hold down the shift key while pressing the power button.
When you see the gray Apple logo, release the shift key.
If you are prompted to log in, type your password, and then hold down the shift key again as you click Log in.
Safe mode is much slower to boot and run than normal, and some things won’t work at all, including wireless networking on certain Macs. The next normal boot may also be somewhat slow.
The login screen appears even if you usually log in automatically. You must know your login password in order to log in. If you’ve forgotten the password, you will need to reset it before you begin.
*Note: If FileVault is enabled, or if a firmware password is set, or if the boot volume is a software RAID, you can’t boot in safe mode.
Test while in safe mode. Same problem?
After testing, reboot as usual (i.e., not in safe mode) and verify that you still have the problem. Post the results of steps 1 and 2. -
Find contents in variant for all programs
Hi All,
I have to find out a string in variant for all programs which are using that string .
I have to find out this devcq1 string in varints for all programs.
How can i do that one?Hi,
You can get the variant name from table VARID and then pass it to the FM RS_VARIANT_CONTENTS and search the return values for your specific content.
tables: varid.
select-options: s_report for varid-report.
data: begin of itab occurs 0,
report like varid-report,
variant like varid-variant.
data: end of itab.
data: i_val type standard table of rsparams with header line.
select report variant
from varid
into table itab
where report in s_report.
check sy-subrc = 0.
loop at itab.
CALL FUNCTION 'RS_VARIANT_CONTENTS'
EXPORTING
report = itab-report
variant = itab-variant
TABLES
valutab = i_val.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
else.
loop at i_val.
.... <-- search i_val for devcq1 string
endloop.
endif.
endloop.
Regards.
Ferry Lianto -
Program that finds all servers on the net 76-lines
Hi Guys and Birds,
Here's a small program written by the dear brothers Asger (hjerl.dk) and Morten (www.mycgiserver.com/~game) which finds all servers on the net in a couple of hours. Good luck
package com.hjerl;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.util.*;
public class Browser extends JFrame {
int counterwww = 0;
ArrayList visitedUrls = new ArrayList();
ArrayList links = new ArrayList();
public static void main(String[] args) {
Browser b = new Browser();
public Browser() {
fetchLinesInPageAsArrayList("www.jp.dk");
System.out.println("Number of links found: " + counterwww);
private void fetchLinesInPageAsArrayList(String str) {
ArrayList al = new ArrayList();
try {
URL url = new URL("http://"+str);
URLConnection uc = url.openConnection();
uc.connect();
InputStream is = uc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
int c = 0;
while (br.ready()) {
al.add(br.readLine());
findLinksFromLineArrayList(al);
catch(Exception ex) {
ex.printStackTrace();
private void findLinksFromLineArrayList(ArrayList al) {
for (int c = 0; c < al.size(); c++) {
String s = ((String) al.get(c)).toLowerCase();
//int a = s.indexOf("http://");
int b = s.indexOf("www.");
int d = s.indexOf("/", b+4);
if (b == -1 | d == -1)
continue;
String link = s.substring(b,d);
//fjerner evt.""
int e = link.indexOf("\"");
if (e != -1) {
link = link.substring(0, e);
if (links.contains(link) == false)
System.out.println("New link found: " + link);
links.add(link);
counterwww++;
fetchLinesInPageAsArrayList(link);
else
System.out.println(" Old link found: " + link);
}Well, apart from the "finds all servers" bit and the "in a couple of hours" bit, that sounds quite plausible...
-
How to find all z-programs in system using spars field in select ???
hi all,
i have to make change in all program in my system in which spars field is used in select statement. how to fin all those z-programs
points will be awarded for all useful answers.
Regards
Deepak Kumarrun the report RPR_ABAP_SOURCE_SCAN, give 'z*' in "Program name" field, and 'SPRAS' in "Find string" field, u'll get to know the places where SPRAS is used, modify those programs accordingly....
Reward points if useful, get back in case of query...
Cheers!!! -
Is it possible to find out the program having the paramters?
Is it possible to find out the program having the paramters? if possible can you give the query
Search the forum/Google and you should get many hits (like the ones below).
Write a QUERY of Concurrent Program
Write a QUERY of Concurrent Program
Query to get Concurrent program name and its parameter
http://sureshvaishya.blogspot.com/2008/07/query-to-get-concurrent-program-name.html
Query to list concurrent program details with its parameter, values set and default value/type
http://www.knoworacle.com/2010/12/query-to-list-concurrent-program.html
Thanks,
Hussein -
While having a perfectly running iTunes and all programs associated, I was notified of the iTunes 10.4 upgrade. After following typical directions, I have had nothing but trouble. First “iTunesHelper was not installed correctly. Please reinstall iTunes. Error 7 (Windows error 5)” occurred. Following directions found at https://discussions.apple.com/message/15087646#15087646, I now get the following “iTunes.exe - System Error The program can't start because AVFoundationCF.dll is still missing from your computer. Try reinstalling the program to fix this problem.”, Along with “iTunesHelper was not installed correctly. Please reinstall iTunes. Error 7 (Windows error 126)” I am running Win 7 Ultimate 64 bit on HP TouchSmart tx2-1275dx. I was one week away from buying an iPad but not if this is what I have to deal with. Please help
I actually managed to resolve this on my own by downloading iTunes from the Apple website and reinstalling iTunes that way. Here's the link: http://www.apple.com/itunes/download/ That should fix your problem. Good luck!
Maybe you are looking for
-
Tried to restore iPod and am now having difficulties with formatting
Hi everyone, I had been having problems with my iPod Classic recently and I tried to restore it to factory settings. I believe the restore worked but I had walked away from my computer while it was going. Now, each time that i try to plug in my compu
-
Pages vs PDF: Colors look different in the print out
I'm currently creating some templates for letters in pages and I encountered irregularities when printing directly from pages versus printing the PDF from Acrobat. This is the workflow: I created the Logo in Adobe Illustrator CS4 using CMYK color def
-
Please help how do i delete so
Hello, I just recently bought a zen micro and have a few questions. First it comes with a battery. So when i put in the battery there is another thing there like a chips is that a battery too was i suppose to hold onto the other battery? I might not
-
I've googled this to death, and have seen folks having similar problems, but no resolutions. What I'm doing seems very straight forward, but I get the following exception. "org.apache.jasper.JasperException: ExtensionsFilter not correctly configured.
-
Profit center segment characteristics fileds activation.
Hi All Where we can activite (t.code or path) Profit center segment fields (charasteristics) while generation of Sales order.