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
Similar Messages
-
Query to find all text attachments for items
I am using the query below to try to find all active items for my org that have an attachment of type 33 (something we have defined I believe) and contain specific text. Some of the items appear to meet all criteria (active, right category, etc) but do not show up in my results. Can someone please take a look and see if there is a join missing, an outer join that should be used, or an overall easier way to do this query and get the text information?
SELECT i.segment1 "Item Number",
i.description "Item Description",
u.user_name || ' (' || ppx.first_name || ' ' || ppx.last_name || ')' "Created By",
i.creation_date "Created Date",
to_number(r.revision) "Revision",
to_char(r.effectivity_date, 'MM/DD/YYYY') "Effectivity Date",
nvl(tx.short_text, '<No Drawing Info>') "Drawing Info / Attachment"
FROM apps.mtl_system_items_b i,
apps.mtl_item_revisions_b r,
apps.fnd_user u,
apps.per_people_x ppx,
apps.fnd_attached_documents ad,
apps.fnd_documents d,
apps.fnd_documents_tl t,
apps.fnd_documents_short_text tx
WHERE i.organization_id = 90 AND -- for MBE only
r.organization_id = 90 AND -- for MBE only
ad.pk1_value = 90 AND -- for MBE only
ad.entity_name = 'MTL_SYSTEM_ITEMS' AND
(upper(tx.short_text) LIKE '%DWG%' OR
upper(tx.short_text) LIKE '%SIZE%' OR
upper(tx.short_text) LIKE '%DRAW%') AND
tx.short_text != 'DWG NONE' AND
d.document_id = t.document_id AND
t.source_lang = 'US' AND
t.LANGUAGE = 'E' AND
to_number(ad.pk2_value) = i.inventory_item_id AND
t.document_id = ad.document_id AND
tx.media_id = t.media_id AND
d.category_id = 33 AND
i.inventory_item_status_code = 'Active' AND
i.inventory_item_id = r.inventory_item_id AND
u.employee_id = ppx.person_id AND
u.user_id = i.created_by AND
to_number(r.revision) =
(SELECT MAX(to_number(r2.revision))
FROM apps.mtl_item_revisions_b r2
WHERE r2.inventory_item_id = i.inventory_item_id) AND
r.effectivity_date =
(SELECT MAX(r3.effectivity_date)
FROM mtl_item_revisions_b r3
WHERE r3.inventory_item_id = i.inventory_item_id)
GROUP BY i.segment1,
r.revision,
i.description,
u.user_name,
ppx.first_name,
ppx.last_name,
i.creation_date,
r.effectivity_date,
tx.short_text
ORDER BY i.segment1 ASC;
Thank you!
Message was edited by:
matt.schutzThere is no workbook/worksheet linkage to a business area. So you cannot search for a business area and find all the workbooks "attached" to that business area. The attachment of workbooks is at the folder level. It is actually possible, if you are sharing folders among business areas, to create a workbook with data from 2 or more business areas. I have tested that and it is indeed possible. In Discoverer Administrator you can check on folder dependencies to see what workbooks use the folder. Though in my version of Discoverer, there is a problem with Discoverer Plus, such that the workbook save in Plus is not creating this dependency information like it should. At least I have not found any way to take a business area and determine what workbooks would fall under it. Maybe someone else has found a way.
John Dickey -
Facing a problem with standard text in custom program
Hi,
As per my requirement i need to create a standard text (transaction code s010 ) in custom program using below code. But when click save button then it needs to be come out of the screen without click back button.
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
FID = G_THEAD-TDID
FLANGUAGE = G_THEAD-TDSPRAS
FNAME = G_THEAD-TDNAME
FOBJECT = G_THEAD-TDOBJECT
SAVE_DIRECT = 'X'
FFORMAT = '*'
TABLES
FLINES = I_TLINE
EXCEPTIONS
NO_INIT = 1
NO_SAVE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
ELSE.
CALL FUNCTION 'EDIT_TEXT'
EXPORTING
HEADER = G_THEAD
SAVE = 'X'
TABLES
LINES = I_TLINE
EXCEPTIONS
ID = 1
LANGUAGE = 2
LINESIZE = 3
NAME = 4
OBJECT = 5
TEXTFORMAT = 6
COMMUNICATION = 7
OTHERS = 8.
IF SY-SUBRC <> 0.
ENDIF.
ENDIF.
Can you please help me how to do this
Regards
nagBut when click save button then it needs to be come out of the screen without click back button.
can you explain me, what do you mean by that.
~satya -
How to find all aliases? Search program needed
Whenever I try to browse certain types of Web sites with Firefox - and I'm not sure what the common denominator is, but it might be Javascript - the OS tries to connect to an AFP share point on another machine. There's no good reason for it to do this.
This is apparently a common problem. Google for "AFP Connection Status" and you'll see a lot of reports of "stale" AFP pointers being generated by various Mac programs, which cause this sort of behavior ever after. Solutions invariably involve looking in directories associated with the application, like "Plugins", for stale link alias files.
I've looked in the obvious places and I can't find it. Now, what I need to do is find (or write) a program which lists ALL the alias files in the system, or, preferably, all the aliases which point to an AFP share point. Because there SHOULDN'T BE ANY. Aliases are, these days, zero-length files with structured information in the resource fork containing the actual information about the file being pointed at.
Can anyone help by pointing out such a program? The BSD "find" command hasn't been extended (yet) to search file metatdata, it seems, at least not according to the man page. I am no stranger to the Terminal, being an old FreeBSD hand, so UNIX-style solutions are welcome.
Mac Pro (4-core) Mac OS X (10.4.9)Had to solve this one on my own. Hopefully people will see this when they Google for it, but this is a general solution to the problem of persistent "AFP Connection Status" popups that won't go away.
The problem, as others have stated, is that there is an alias somewhere on the system that points to the missing share. The share won't be mentioned in a regular file; the share point's information is located in the resource fork of the alias. What's needed is a way to search the entire file system for any resource fork that mentions the share.
Here is how to do that:
# find / -type f -exec grep funkyshare '{}'/rsrc \; -print
When this command finds the aliases - and there may be more than one - you can delete them. -
Does font search find all texts in my movie?
Hi,
when opening my flash movie I get the message that some fonts
are
missing. When I try to search for the missing fonts in my
movie the
related texts are not found.
I remember that the search feature doesn't always work 100%
correct i.e.
searching for strings or regular expressions (the last one
crashes flash
completely). My question: is the font search reliable?
TIAI would use the Movie Explorer or Find and Replace panel for
this - not the "missing font" warning
when opening a doc.
Chris Georgenes
Animator
http://www.mudbubble.com
http://www.keyframer.com
Adobe Community Expert
*\^^/*
(OO)
<---->
castten wrote:
> Hi,
>
> when opening my flash movie I get the message that some
fonts are
> missing. When I try to search for the missing fonts in
my movie the
> related texts are not found.
>
> I remember that the search feature doesn't always work
100% correct i.e.
> searching for strings or regular expressions (the last
one crashes flash
> completely). My question: is the font search reliable?
>
> TIA -
I installed the add-on from the below url:
https://addons.mozilla.org/en-US/firefox/addon/printpdf/.
Then Click File->Print to PDF,
The pdf file created and open the file, you will find all text are gone.
This add-on works fine in Firefox 3.5 and 3.6.
is it a bug of firefox 4.01?create a new profile on firefox
http://kb.mozillazine.org/Creating_a_new_Firefox_profile_on_Windows
if dat doesnt work, do a clean reinstall -
ResolveNodes doesn't find all nodes
Hi there,
I would like to find all text fields with a specific name in my form (and do things with them...).
Funny thing is: I sometimes get only one hit or no hits at all. I never managed to get the correct whole list of fields. Am I doing something wrong?
My code is (here in the form-ready event):
var arrayFields = xfa.resolveNodes("myField[*]");
if (arrayFields == null) {
xfa.host.messageBox("nothing found");
else {
xfa.host.messageBox(String("Number of Fields found: " + arrayFields.length));
for (var iFieldCounter = 0; iFieldCounter < arrayFields.length; iFieldCounter++) {
xfa.host.messageBox( arrayFields.item(iFieldCounter).somExpression);
} // for iFieldCounter
} // else some result
PS. I have a little sample form ready. Yet I don't find a way to upload it to the forum.
Uli[email protected] wrote:
As resolveNodes has an issue with returning objects located in subforms below $template.#subform.#subform[*], you're left with traversing the dom tree yourself.
Thanks for that information. Saved me from trying things for ever.
I wrote this function "resolveNodesFixed()" instead. Whoever has the same problem in the future may try it this way:
var arrayFields = resolveNodesFixed("myField");
if (arrayFields == null) {
xfa.host.messageBox("nothing found");
else {
xfa.host.messageBox(String("Number of Fields found: " + arrayFields.length));
for (var iFieldCounter = 0; iFieldCounter < arrayFields.length; iFieldCounter++) {
xfa.host.messageBox( arrayFields[iFieldCounter].somExpression);
} // for iFieldCounter
} // else some result
function resolveNodesFixed(sObjectName) {
// Finds all objects by the name of sObjectName starting from the top.
// Parameters:
// sObjectName: Name of the searched for object
// Result:
// returns an array of found objects. It may be empty.
arrayHits = new Array();
traverseForm(xfa.form, arrayHits, sObjectName);
return arrayHits;
} // function resolveNodesFixed()
function traverseForm(oFormNode, arrayHits, sObjectName) {
// runs thru all nodes of the form and adds every node with the name "sObjectName" to arrayHits
// Parameters:
// oFormNode: starting node. From this node downwards this function searches for nodes.
// arrayHits: array to add the found nodes to
// sObjectName: Name of the searched for object
// Result:
// returns true if everything is all right
try {
//xfa.host.messageBox(oFormNode.somExpression + " - " + oFormNode.nodes.length);
for (var iIndexChildObject = 0; iIndexChildObject < oFormNode.nodes.length; ++iIndexChildObject) {
var oChild = oFormNode.nodes.item(iIndexChildObject);
if (oChild.name == sObjectName) {
arrayHits.push(oChild);
} // if oChild.className == sObjectName
if (oChild.isContainer) {
// this node appears to be a subform. Recursivly we check this subform's sub nodes.
traverseForm(oChild, arrayHits, sObjectName); // if the node contains subnodes make a recursive call to the function
} // if oChild.isContainer
} // for iIndexChildObject
} // try
catch (e) {
console.println("Error: " + e);
return false;
} // catch
return true;
} // function traverseForm() -
Hi ALL,
Is it possible to find the Skew content in the document???
For example, if the skew is like as 1 to 180 etc.,
We can catch the skew characters like as below only
app.findTextPreferences.skew = 8; //this is possible
app.findTextPreferences.skew = -20; //this is possible
Thanks in advance
Siraj@Chinna – you can skew a text by -1.5 .
So it seems to be best:
If you do not have assigned any character styles:
1. First find all not skewed text and assign a character style
2. Search for text with character style "None" => all found texts are skewed by some value
Or, if there are already character styles into play:
1. First find all not skewed text and change the value of a property, that is never set to a special value throughout all texts in your document. Set this property to a special value.
2. Do a search where this value is set to default => all found texts are skewed by some value!
Here some code to show this with the property strikeThru that should be not used in the text!
Find a different one that is working with findTextPrefernces or changeTextPreferences, if you are using strikeThru in the formatting of your text!
//strikeThru is NOT used in the document!
var mySkope = app.documents[0];
app.findTextPreferences = app.changeTextPreferences = null;
//First find all text that is not skewed:
app.findTextPreferences.skew = 0;
//Format the found text with a property not used in the text:
app.changeTextPreferences.strikeThru = true;
mySkope.changeText();
app.findTextPreferences = app.changeTextPreferences = null;
//Find all text that is not set with that property.
//THAT must be the text skewed in various angles:
app.findTextPreferences.strikeThru = false;
var mySkewedTextsArray = mySkope.findText();
app.findTextPreferences = app.changeTextPreferences = null;
//Skewed texts contents written to console:
//Or do here something else with the skewed text!
for(var n=0; n<mySkewedTextsArray.length;n++){
$.writeln(mySkewedTextsArray[n].contents);
//Reset the property used for the not-skewed text:
app.findTextPreferences.strikeThru = true;
app.changeTextPreferences.strikeThru = false;
mySkope.changeText();
app.findTextPreferences = app.changeTextPreferences = null;
Uwe -
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 -
How to find which custom program uses authorization checks
Hi all,
I have been asked to find out which custom ABAP program in our organization is using Authorizations checks and which is not.
Since there are thousands of custom programs I will need to automatize this process somehow. But I am not an ABAP expert and I will need some help.
Could any of you give me an idea of what would be the best strategy to find out if authorization objects/checks exist in a number of ABAP programs? (would a simple text search do?).
Many thanks,
AldoIf you are looking out for Authorization related to Execution of any program, then look for entries in table TRDIR where field SECU (Authorization Group) is not blank.
Below SAP documentation may help you:
Authorization Group
Authorization group to which the program is assigned.
The assignment of a program to an authorization group plays a role when the system checks whether the user is authorized to:
Execute a program
--> Authorization object S_PROGRAM
Edit a program (-Include) in the ABAP Workbench
--> Authorization object S_DEVELOP
Programs that are not assigned to an authorization group are not protected against display and execution.
Security-related programs should, therefore, always be assigned to an authorization group.
Report RSCSAUTH can also be used to assign programs to authorization groups. This report is documented in detail. -
Need to check all custom programs with open data set
Hi all ,
i have to list all custom programs and f.m. which are using ftp server (file share).
Is there any way to list that programsHi,
You can use program RPR_ABAP_SOURCE_SCAN to find custom programs with providing find string criteria (i.e open data set).
Regards,
Ferry Lianto -
How to find all Billing Doc fields(SAP / customer) for IDOC ?
Hi all,
I need to send customer billing information with all billing document fields by idoc,
the question is, we have a lot customer defined fields in billing doc, so that i cannot just use standard iDOC types,
can anybody tell me a easy way to find all billing doc related fields and put it in iDOC type?
Thanks & Best Regards,Hi,
try the table ROOSOURCE and search the data source with string in astrick attr for master data and for text with text
This will give you the list of all the master data source in the system and it contains a column which tells about the extract structure and function module used by each.
Thanks
Ajeet -
Hi all,
Please let me know the process to track or find all the SAP Standard and custom objects. that got changed from a specific point of time.
Is there any function module or any table where this change log is maintained.?
I just only need the details ,wheather that SAP standard or Custom object has got changed or not.
Thanks in advanceHi RK v ,
I really don't know what your actual requirement is , but if you want to know the objects as per the modification , then transport request will be much help to you .
Have a look into table E070 and E071 .
Regards ,
Yogendra Bhaskar -
Adobe reader X and XI search don´t find text like other programs including adobe reader 9? Thanks
You mean, you are trying to search text in a PDF file, and you can do it in Reader 9 but not in later versions of Reader (using the same file)?
-
How can I find the text only in the custom text frame?
Well guys, I have a problem.
I have such code:
app.findTextPreferences.findWhat = "text";
text = app.activeDocument.findText();
position = text[0].insertionPoints[0].index
in the variable "position" I get global(not depending in which frame the text is) position(number of chars) of the found text, but I want to get the number of the frame where is text was found! Or how can I find only in the custome frame?
Please, help meAssuming that you have some way of identifying that text frame, then it is just a matter of doing the search only against that frame. For example:
myFrame = app.documents[0].pages[3].textFrames[5];
app.findTextPreferences.findWhat = "text";
text = myFrame.findText();
position = text[0].insertionPoints[0].index
However, unless myFrame is the first in a story, the index will not be relative to the start of myFrame. To get that, you need:
framePos=myFrame.characters[0].index;
textOffsetInFrame =position - framePos;
Dave
Maybe you are looking for
-
Multiple iPads tied to an iTunes account
How can I tell which iPad downloaded an App when there are multiple iPads that share an iTunes account? Thanks!
-
HP Photsmart 5524 All-in-one in Error State under Windows 8.1 Continually
I am at the end of tether with HP. Since the installation of Windows 8.1 I have experienced printer failures upt o 8 times per day. Initially it was rectified by a combiation of just powering off and on the printer OR by powering off and on the BT
-
Where are my images!!
Over the last week i have managed to whittle down a project containing 600 raw images to just over 400 and in the process have made many small adjustments. I then created a folder so i could split up this 400 into different chapters/projects to then
-
Problem selecting audio from menu
When I choose the audio option in the menu and play the movie, it goes well. But if I choose an audio option and then a particular chapter from the Chapter menu, the audio option is not taken. Why is that?
-
Dont want to restart Server everytime I reimport model
Hello, Everytime I reimport a model, I get a popup saying "Please restart your J2EE Server......" with no option to cancel it. Any ways I can avoid this? Regards, Shubham