Accessing raw text of TextFlow and performing a search

I am trying to figure out the best way to perform a search
within a TextFlow to locate a specific piece of text (either a word
or set of words).
I have had a hard time figuring out how to actually gain
access to the raw text of the TextFlow that is loaded. Once that is
loaded, I need to be able to search through that text, find the
location of the text, and show that container.
Essentially add search capability to the Pagination example.
The only thing I can think of that seems like it may work
would be to export the TextFlow into an XML file, then perform the
search on the XML file. Once that is done, I would have to figure
out which position in the xml file the text was located, and load
the container with that position....
Surely there is a better way?
Thanks, Tim

I think so - here's how I'd reccomend approaching the
problem.
Given a TextFlow I'd do a getFirstLeaf. That returns a
FlowLeafElement. I'd then look at the FlowLeafElement.text property
to access the text for matching. To advance to the next leaf
element use FlowLeafElement.getNextLeaf.
You'll have to do some book keeping when you find a match to
figure out the absolute position of the beginning of the match.
Next step would be to use
textFlow.flowComposer.findControllerIndexAtPosition to figure out
which container has the matched text.
Adding niceties you could search a paragraph at a time by
taking advantage of the limitElement parameter to getNextLeaf.
After calling getFirstLeaf call getParagraph to find the paragrah
and use that as the limit element. To advance to the next paragraph
use null as the limit element and call getParagraph again for the
new limit element.
Hope that helps.
Richard

Similar Messages

  • Why isn't my iTunes store loading properly? It lists everything in text without images, and I can't seem to access the store when I try to search for music or movies etc.

    Why isn't my iTunes store loading properly? It lists everything in text without images, and I can't seem to access the store when I try to search for music or movies etc.

    1) The best way to relocate the iTunes library folder is to move the entire iTunes folder with all subfolders to the new path, then press and hold down shift as start iTunes and keep holding until prompted to choose a library, then browse to the relocated folder and open the file iTunes Library.itl inside it.
    If you've done something different then provide some more details about what is where and I should be able to help.
    2) Purchases on the device should automatically transfer to a Purchased on <DeviceName> playlist, but it my depend a bit on whether automatic iCloud downloads are enabled. If there is a cloudy link then the transfer might not happen. You can use File > Devices > Transfer Purchases. In iTunes you should also check out iTunes Store > Quick Links > Purchased > Music > Not on this computer.
    3) Backup the device, then immediately restore it. In some cases you need to add a restore as new device into that equation. Obbviously not to be attempted until you're sure all your media is in your library. See Recover your iTunes library from your iPod or iOS device should it be needed.
    4) I believe there is complimentary 1 incident 90-day support with hardware purchases, but no free software support for iTunes itself. AppleCare gets you a different level of support.
    tt2

  • My iPhone has recently been crashing (or rather the apps) when I would try to access my text messages, contacts, phonebook, facebook, or email. I tried restarting my phone and lost all of my contacts. Anyone know what's wrong/how to fix it

    My iPhone has recently been crashing (or rather the apps) when I would try to access my text messages, contacts, phonebook, facebook, or email. I tried restarting my phone and lost all of my contacts. This has been happening more and more frequently. Today I was in my pictures and was trying to crop one and my phone shut off completely. Anyone know what's wrong with it or how to fix it?

    Make sure all apps are fully closed:
    - double tap your home button
    - hold your finger on an app
    - when the apps start to wiggle press the red "-" button on all the apps
    Now do a hard reset:
    - hold the home button and the sleeps/wake button down at the same time
    - the phone will shut off then when the apple logo ppears release both buttons
    If by then your contacts have not been restored you would need to try and retreive them from a back up on itunes/icloud that was made when the contacts were on the phone. You could even stream them from the cloud if they were synced to the cloud. The link beow will show you how to restore from an itunes/icloud back up:
    http://support.apple.com/kb/ht1766
    Also to prevent this issue which i have seen alot when users are still running iOS 5 it would be best to update the iOS on your phone. To do this follow the link below:
    http://support.apple.com/kb/ht4623
    Hope this helps

  • Accessing ai0 to ai16 on DAQ and performing operations on them

    Hi all,
    I have a problem, I am using an NI-Daq interface board, I am able to get the waveforms ( plot of the 16 channels collectively) and work the interface correctly, but the problem is  I have to perform different operations on each of the 16 channels, I am finding it difficult to access each channel individually and perform the operations. Also, this deals with continuous signal acquisition and generation which needs to be synchronized as well, if anyone has any suggesting a way to access the 16 channels and perform the operations, p[lease help me out.
    I tried pushing the data into a queue , but the the program indicates memory buffer full error after a few hours of run.
    Thank You

    @ PCSNF  I will getthe code asap...i have t in another system rite now..
    @smercurio_fc- i am dealing with dynamic data..!!......"operations"are primarily  peak detection, I also have to sort outsets of data which Ithink i need 2 use arrays for that....so in a way itis amisture of all data types available in labview!!...
    i couldnt find the split channels function....!>...

  • Installed PSE 8 and am now unable to access RAW files through Camera Raw.

    Help! I have installed PSE 8 and
    now cannot access Raw files through Camera Raw click
    on Editor and the photographs open in Editor.
    I have tried installing the upda
    te 8bi in the plug-in and there was already a plug-in there.
    PSE6 worked fine on this system. Any help appreciated.

    Firstly thanks to the people who
    offered help. This is what I did and somehow the problem is solved. I installed PSE 8 on my old machine with XP and an old Xerox monitor and it worked OK. I uninstalled PSE 8 from the newer machine on Vista. Made sure all the adobe files for pug-ins had gone then reinstalled. I then tested the screen resolution of my monitor a HP w1907v, smaller resolutions made no difference but opening it up to max did. When I wish to open a RAW file click open click the photograph and in the bottom file format box make sure you are asking for RAW files to be opened and 'bingo'. This upgrade for PSE 8 has the latest CameraRaw on it but the problem was there from the first installation so perhaps it is a combination of screen resolution and making sure the file format for opening is specified. So after hours of effort a satisfactory outcome. I probably confused the issue by installing the plug-in when there was no need. PSE 8 will last me a long time!!!

  • HT1688 Is there an "easy" way to either 1) cut and paste a large block of text from the Messages app or 2) access this text through a computer?

    Is there an "easy" way to either 1) cut and paste a large block of text from the Messages app or 2) access this text through a computer?

    Tap and hold the text you want to copy, then tap Copy.

  • Calculating the memory and performance of a oracle query

    Hi,
    I am now developing application in java with oracle as a back-end. In my application i require lot of queries to be executed. Hence, the system is getting is slow due to queries.
    So, i planned to develop one Stand-alone application in java, that should show the statistics like, memory and performance. for ex:- if i enter one SQL query in the text box, my standalone application should display, the processing time it requires to fetch the values and the memory is used for that query.
    Can anybody give ideas, suggestion, etc etc...
    Thanks in Advance
    Regards,
    Rajkumar

    This is now Oracle question, not JDBC question. :)
    Followings are sample for explain plan/autotrace/SQL*Trace.
    (You really need to read stuffs like Oracle SQL Tuning books...)
    SQL> create table a as select object_id, object_name from all_objects
    2 where rownum <= 100;
    Table created.
    SQL> create index a_idx on a(object_id);
    Index created.
    SQL> exec dbms_stats.gather_table_stats(user,'A');
    SQL>  explain plan for select from a where object_id = 1;*
    Explained.
    SQL> select from table(dbms_xplan.display());*
    PLAN_TABLE_OUTPUT
    Plan hash value: 3632291705
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    PLAN_TABLE_OUTPUT
    | 0 | SELECT STATEMENT | | 1 | 11 | 2 (0)| 00:00:01 |
    | 1 | TABLE ACCESS BY INDEX ROWID| A | 1 | 11 | 2 (0)| 00:00:01 |
    |* 2 | INDEX RANGE SCAN | A_IDX | 1 | | 1 (0)| 00:00:01 |
    PLAN_TABLE_OUTPUT
    Predicate Information (identified by operation id):
    2 - access("OBJECT_ID"=1)
    SQL> set autot on
    SQL> select * from a where object_id = 1;
    no rows selected
    Execution Plan
    Plan hash value: 3632291705
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 11 | 2 (0)| 00:00:01 |
    | 1 | TABLE ACCESS BY INDEX ROWID| A | 1 | 11 | 2 (0)| 00:00:01 |
    |* 2 | INDEX RANGE SCAN | A_IDX | 1 | | 1 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    2 - access("OBJECT_ID"=1)
    Statistics
    1 recursive calls
    0 db block gets
    1 consistent gets
    0 physical reads
    0 redo size
    395 bytes sent via SQL*Net to client
    481 bytes received via SQL*Net from client
    1 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    0 rows processed
    SQL> exec dbms_monitor.session_trace_enable(null,null,true,true);
    -- SQL> alter session set events '10046 trace name context forever, level 12';
    -- SQL> alter session set sql_trace = true;
    PL/SQL procedure successfully completed.
    SQL> select * from a where object_id = 1;
    no rows selected
    * SQL> exec dbms_monitor.session_trace_disable(null, null);*
    -- SQL> alter session set events '10046 trace name context off';
    -- SQL> alter session set sql_trace = false;
    PL/SQL procedure successfully completed.
    SQL> show parameter user_dump_dest
    */home/oracle/admin/WASDB/udump*
    SQL>host
    JOSS:oracle:/home/oracle:!> cd /home/oracle/admin/WASDB/udump
    JOSS:oracle:/home/oracle/admin/WASDB/udump:!> ls -lrt
    -rw-r----- 1 oracle dba 2481 Oct 11 16:38 wasdb_ora_21745.trc
    JOSS:oracle:/home/oracle/admin/WASDB/udump:!> tkprof wasdb_ora_21745.trc trc.out
    TKPROF: Release 10.2.0.3.0 - Production on Thu Oct 11 16:40:44 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    JOSS:oracle:/home/oracle/admin/WASDB/udump:!> vi trc.out
    select *
    from
    a where object_id = 1
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 1 0.00 0.00 0 1 0 0
    total 3 0.00 0.00 0 1 0 0
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 55
    Rows Row Source Operation
    0 TABLE ACCESS BY INDEX ROWID A (cr=1 pr=0 pw=0 time=45 us)
    0 INDEX RANGE SCAN A_IDX (cr=1 pr=0 pw=0 time=39 us)(object id 65441)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 25.01 25.01
    Hope this helps

  • ASCII character/string processing and performance - char[] versus String?

    Hello everyone
    I am relative novice to Java, I have procedural C programming background.
    I am reading many very large (many GB) comma/double-quote separated ASCII CSV text files and performing various kinds of pre-processing on them, prior to loading into the database.
    I am using Java7 (the latest) and using NIO.2.
    The IO performance is fine.
    My question is regarding performance of using char[i] arrays versus Strings and StringBuilder classes using charAt() methods.
    I read a file, one line/record at a time and then I process it. The regex is not an option (too slow and can not handle all cases I need to cover).
    I noticed that accessing a single character of a given String (or StringBuilder too) class using String.charAt(i) methods is several times (5 times+?) slower than referring to a char of an array with index.
    My question: is this correct observation re charAt() versus char[i] performance difference or am I doing something wrong in case of a String class?
    What is the best way (performance) to process character strings inside Java if I need to process them one character at a time ?
    Is there another approach that I should consider?
    Many thanks in advance

    >
    Once I took that String.length() method out of the 'for loop' and used integer length local variable, as you have in your code, the performance is very close between array of char and String charAt() approaches.
    >
    You are still worrying about something that is irrevelant in the greater scheme of things.
    It doesn't matter how fast the CPU processing of the data is if it is faster than you can write the data to the sink. The process is:
    1. read data into memory
    2. manipulate that data
    3. write data to a sink (database, file, network)
    The reading and writing of the data are going to be tens of thousands of times slower than any CPU you will be using. That read/write part of the process is the limiting factor of your throughput; not the CPU manipulation of step #2.
    Step #2 can only go as fast as steps #1 and #3 permit.
    Like I said above:
    >
    The best 'file to database' performance you could hope to achieve would be loading simple, 'known to be clean', record of a file into ONE table column defined, perhaps, as VARCHAR2(1000); that is, with NO processing of the record at all to determine column boundaries.
    That performance would be the standard you would measure all others against and would typically be in the hundreds of thousands or millions of records per minute.
    What you would find is that you can perform one heck of a lot of processing on each record without slowing that 'read and load' process down at all.
    >
    Regardless of the sink (DB, file, network) when you are designing data transport services you need to identify the 'slowest' parts. Those are the 'weak links' in the data chain. Once you have identified and tuned those parts the performance of any other step merely needs to be 'slightly' better to avoid becoming a bottleneck.
    That CPU part for step #2 is only rarely, if every the problem. Don't even consider it for specialized tuning until you demonstrate that it is needed.
    Besides, if your code is properly designed and modularized you should be able to 'plug n play' different parse and transform components after the framework is complete and in the performance test stage.
    >
    The only thing that is fixed is that all input files are ASCII (not Unicode) characters in range of 'space' to '~' (decimal 32-126) or common control characters like CR,LF,etc.
    >
    Then you could use byte arrays and byte processing to determine the record boundaries even if you then use String processing for the rest of the manipulation.
    That is what my framework does. You define the character set of the file and a 'set' of allowable record delimiters as Strings in that character set. There can be multiple possible record delimiters and each one can be multi-character (e.g. you can use 'XyZ' if you want.
    The delimiter set is converted to byte arrays and the file is read using RandomAccessFile and double-buffering and a multiple mark/reset functionality. The buffers are then searched for one of the delimiter byte arrays and the location of the delimiter is saved. The resulting byte array is then saved as a 'physical record'.
    Those 'physical records' are then processed to create 'logical records'. The distinction is due to possible embedded record delimiters as you mentioned. One logical record might appear as two physical records if a field has an embedded record delimiter. That is resolved easily since each logical record in the file MUST have the same number of fields.
    So a record with an embedded delimiter will have few fields than required meaning it needs to be combined with one, or more of the following records.
    >
    My files have no metadata, some are comma delimited and some comma and double quote delimited together, to protect the embedded commas inside columns.
    >
    I didn't mean the files themselves needed to contain metadata. I just meant that YOU need to know what metadata to use. For example you need to know that there should ultimately be 10 fields for each record. The file itself may have fewer physical fields due to TRAILING NULLCOS whereby all consecutive NULL fields at the of a record do not need to be present.
    >
    The number of columns in a file is variable and each line in any one file can have a different number of columns. Ragged columns.
    There may be repeated null columns in any like ,,, or "","","" or any combination of the above.
    There may also be spaces between delimiters.
    The files may be UNIX/Linux terminated or Windows Server terminated (CR/LF or CR or LF).
    >
    All of those are basic requirements and none of them present any real issue or problem.
    >
    To make it even harder, there may be embedded LF characters inside the double quoted columns too, which need to be caught and weeded out.
    >
    That only makes it 'harder' in the sense that virtually NONE of the standard software available for processing delimited files take that into account. There have been some attempts (you can find them on the net) for using various 'escaping' techniques to escape those characters where they occur but none of them ever caught on and I have never found any in widespread use.
    The main reason for that is that the software used to create the files to begin with isn't written to ADD the escape characters but is written on the assumption that they won't be needed.
    That read/write for 'escaped' files has to be done in pairs. You need a writer that can write escapes and a matching reader to read them.
    Even the latest version of Informatica and DataStage cannot export a simple one column table that contains an embedded record delimiter and read it back properly. Those tools simply have NO functionality to let you even TRY to detect that embedded delimiters exist let alone do any about it by escaping those characters. I gave up back in the '90s trying to convince the Informatica folk to add that functionality to their tool. It would be simple to do.
    >
    Some numeric columns will also need processing to handle currency signs and numeric formats that are not valid for the database inpu.
    It does not feel like a job for RegEx (I want to be able to maintain the code and complex Regex is often 'write-only' code that a 9200bpm modem would be proud of!) and I don't think PL/SQL will be any faster or easier than Java for this sort of character based work.
    >
    Actually for 'validating' that a string of characters conforms (or not) to a particular format is an excellent application of regular expressions. Though, as you suggest, the actual parsing of a valid string to extract the data is not well-suited for RegEx. That is more appropriate for a custom format class that implements the proper business rules.
    You are correct that PL/SQL is NOT the language to use for such string parsing. However, Oracle does support Java stored procedures so that could be done in the database. I would only recommend pursuing that approach if you were already needing to perform some substantial data validation or processing the DB to begin with.
    >
    I have no control over format of the incoming files, they are coming from all sorts of legacy systems, many from IBM mainframes or AS/400 series, for example. Others from Solaris and Windows.
    >
    Not a problem. You just need to know what the format is so you can parse it properly.
    >
    Some files will be small, some many GB in size.
    >
    Not really relevant except as it relates to the need to SINK the data at some point. The larger the amount of SOURCE data the sooner you need to SINK it to make room for the rest.
    Unfortunately, the very nature of delimited data with varying record lengths and possible embedded delimiters means that you can't really chunk the file to support parallel read operations effectively.
    You need to focus on designing the proper architecture to create a modular framework of readers, writers, parsers, formatters, etc. Your concern with details about String versus Array are way premature at best.
    My framework has been doing what you are proposing and has been in use for over 20 years by three different major nternational clients. I have never had any issues with the level of detail you have asked about in this thread.
    Throughout is limited by the performance of the SOURCE and the SINK. The processing in-between has NEVER been an issu.
    A modular framework allows you to fine-tune or even replace a component at any time with just 'plug n play'. That is what Interfaces are all about. Any code you write for a parser should be based on an interface contract. That allows you to write the initial code using the simplest possible method and then later if, and ONLY if, that particular module becomes a bottlenect, replace that module with one that is more performant.
    Your intital code should ONLY use standard well-established constructs until there is a demonstrated need for something else. For your use case that means String processing, not byte arrays (except for detecting record boundaries).

  • Phone wont let me text or anything and keeps rebooting.

    I wiped my phone because my phone kept rebooting all the time but now its gotten worse, I can't text or anything and I don't know why my phone is always rebooting. I need help

    as stated by @balubadan you will need to reset your OS, you will need access to a computer and BlackBerry Desktop Software installed
    If you have an answer to your question then please click “Accept as Solution”
    Click on the LIKE on the bottom right if the post deserves credit.
    BB 8700 -> Bold 9000 -> Curve 8520 -> Bold 9700 -> Curve 9320 -> Bold 9900 -> BlackBerry Z10 + PlayBook 64 GB Wi-Fi

  • Autoselecting of text in adressbar and searchbar fails, or happens when I press bacspace

    I just updated from 32.x to 33.1
    I'm on win7-64.
    I now have a problem whenever I try to access the adress-bar (the control where you type the URL) and the serach-bar.
    It used to be that when the control did not have focus and you clicked in it, the text was autoselected, this means that when you start typing it replaces the previous text. This behaviour was consistent with other mainstream browsers (IE, Chrome, Opera).
    After the update whenever I click in the adress-bar (or search-bar) the text is not selected. Sometimes when I move the mouse to the top (not having any mouse-button down) it selects the text.
    This is annoying, the only consistent way to select the text now is pressing Ctrl+A.
    What is even worse, is the fact that when I click in the adress-bar (and search-bar),(no text ets selected), and I press BackSpace button (I'm at end of text) it then selects the text and deletes the entire text.
    Along with the fact that typing in FF 33.1 ismuch, much, much slower than in 32, this makes the browser almost completely useless to me, which is a pity, since I'm using FF as my default browser from version 1.5.
    Does anybody know a fix for this (or should I downgrade (how to?))?
    Bart

    I can assure you these are not intentional changes.
    The slowness and the strange mouse responses might be related, but this is the first report I've read about them, so I'm not sure what's going on there.
    To quickly determine whether this might be a settings issue, you could try this 3-minute experiment:
    '''Create a new Firefox profile'''
    A new profile will have your system-installed plugins (e.g., Flash) and extensions (e.g., security suite toolbars), but no themes, other extensions, or other customizations. It also will have completely fresh settings databases and a fresh cache folder.
    Exit Firefox and start up in the Profile Manager using Start > search box, or Run (hold down the Windows key and press R):
    firefox.exe -P
    ''Don't delete anything here.''
    Any time you want to switch profiles, exit Firefox and return to this dialog.
    Go ahead and click the Create Profile button, give it a name like Nov13, and skip the option to change the folder location. Then start Firefox in the new profile you created.
    ''Until you go back to the Profile Manager and start up in your regular profile, your desktop shortcut should fire up the new profile.''
    Does the mouse or keyboard behave any better?
    Note: When returning to the Profile Manager, you might be tempted to use the Delete Profile button on your new test profile. But... it's a bit too easy to accidentally delete your "real" profile, so I recommend resisting the temptation. If you do want to clean up later, I suggest making a backup of all your profiles first in case something were to go wrong.
    In case old/inconsistent files have accumulated in Firefox's program folder, you can replace the program files without disturbing your settings using this '''Clean Reinstall''' procedure:
    (1) Download a fresh installer for Firefox 33 from https://www.mozilla.org/firefox/all/ to a convenient location. (Scroll down to your preferred language.)
    (2) If applicable, exit out of Firefox or make sure it is fully terminated in Task Manager.
    (3) Rename the folder ''(64-bit Windows folder names)''
    C:\Program Files (x86)\Mozilla Firefox
    to
    C:\Program Files (x86)\OldFirefox
    (4) Run the installer you downloaded in #1. It should automatically connect to your existing settings.
    Any improvement with mouse or keyboard??
    Note: Some recently installed plugins may exist only in that OldFirefox folder. If something essential is missing, look in these folders:
    * C:\Program Files (x86)\OldFirefox\Plugins
    * C:\Program Files (x86)\OldFirefox\browser\plugins

  • READ_TEXT IN FORM AND PERFORM

    Hi all.
    I have an issue in Scripts.
    we are using standard program as print progarm and a zform as form.
    we want to print some text in themain window of the form.
    for that one I created a new progarm for form and perform.
    in taht form i am using this function module read_text to read the text.
    i sending all this text to an internal table.
    up to thuis ok...
    While the data transfering from form to perform (i.e to the form(script)) only the last line of the internal table is transfering.
    and i declared the exporting TABLE OF TYPE ITCSY.
    CAN ANY BODY HELP TO SOLVE THIS ISSUE,
    THANKS IN ADVANCE,
    rEGARDS,
    ESWAR.M

    Hi venkat,
    1. while calling subroutines from sapscripts,
    there is a special technique,
    which has got its own limitations.
    2.
    FORM abc
    TABLES
    in_tab STRUCTURE itcsy
    out_tab STRUCTURE itcsy.
    ENDFORM.
    3. The perform in se38 program should be of the
    above format only.
    4.<b> We cannot pass internal tables.</b>
    5. Rather we need to pass
    VARIABLE NAME
    VARIABLE VALUE
    (see the structure of itcsy in se11)
    6. In this form, we have to read
    the internal table in_tab
    to capture the variable name and its value.
    7. Similary, to return the values,
    we have to put one record (for each variable)
    in out_tab.
    regards,
    amit m.

  • Business Intelligence and performance point problem

    Hi Everyone,
    Please does anyone know why creating a dashboard from a Sharepoint list is such a hassle. I have configured performance point services, a secure store and a business intelligent website that has a data connection library and  Performance Point content
    list . Unfortunately anytime I try to use dashboard designer to create a new data source and specify the site settings(using unattended account method) I can't save it. It gives me an error claiming that I either don't have permissions or the data source
    doesn't exist.
    A search around the web for answers doesn't seems to solve my problem as it suggests that the problem is associate with many things which I'm not clear about. Please could someone who is good at this at least tell me the critical things to check and the
    clearest way to set this up.
    Thanks,
    Dominic

    Hi Dominic,
    According to your error " I either don't have permissions or the data source doesn't exist", it should be related to the unattended account permission.
    Once the unattended service account has been configured, you must grant that account access to your data sources:
    For SQL Server data, the account must have a SQL logon with db_datareader permissions on each database that you want to access.
    For SQL Server Analysis Services data, the account must have read access to the cube or an appropriate portion of the cube, depending on your needs.
    For Excel Services data, the account must have access to the Excel workbook in a SharePoint document library.
    For data in a SharePoint list, the account must have read access to the list.
    Reference:
    https://technet.microsoft.com/en-us/library/ee836145.aspx
    Also you can have a look at the blog:
    http://www.chrismcnulty.net/blog/Lists/Posts/Post.aspx?ID=74
    https://yossidahan.wordpress.com/2012/08/14/cant-get-ssas-databases-to-appear-in-performance-point-dashboard-designer-check-you-adomd-net-version/
    Best Regards,
    Eric
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Roundtripping text between Indesign and Word?

    I'm not exactly sure which forum this belongs on, so I'll start here.
    Our company does a lot of repurposing. We pickup recipes from a magazine and publish them in a book, or vice-versa. Our current system of picking up this content is inefficient and requires the text to be restyled every time it gets picked up. We're trying to implement a workflow that will retain the styling and eliminate duplication, but I'm encountering a couple problems:
    1) When pasting text from InDesign into a word doc, it retains the styles UNLESS those styles are pre-defined in word. For example, if the word template has a pre-defined style called Recipe - head and you paste text that has that style, the text will no longer have that style applied after pasting; it will be set to Normal.
    2) I can use InCopy to pickup the text and then export to RTF, but the text comes into Word with all the formatting applied (sizes, fonts, colors, etc.). This makes it very hard for the editors to read when they're reviewing the copy and making changes.
    So my questions are these:
    1) Is there a way to map styles from InDesign to Word? I'd like to set up the word doc to have all the styles names without the formatting so it's easier to read. OR,
    2) Is there a way to strip out all text formatting EXCEPT the style names themselves? We want it to retain the style names so we can map them to the InDesign styles when we import the text.
    If anyone has dealt with these issues, I would really appreciate the help. My searching thus far has yielded little in the way of results.
    Thanks in advance,
    Matthew

    Because I have very few translators who can work in ID, I use a workflow like this all the time. If you're handy with VBA, you can write a script that
    will go through all of the styles in your exported RTF and replace the formatting in the InDesign styles with something much simpler. For example, I'll change all serif styles to TNR and all sans styles to Arial, because I can assume that my less technically competent translators who panic when asked to install a font would at least have those two fonts installed. I can change the paragraph indents and spacing to something much simpler than what is in the ID doc with a single click. When I place that translated RTF back into InDesign, I can replace the translator's, ah, "formatting choices" with the original style definitions, so I can simply Clear Overrides and get something pretty close to the original formatting, only requiring minor cleanup.
    If you're not handy with VBA, and yet expect to use Word as an integral part of your workflow, I suggest that you get busy studying.
    Edit: Actually, tagged text is a pretty good idea, if you're willing to do some post-processing. The kind of editor who insists on unstyled text in Word is unlikely to be willing to edit tagged text in a raw text editor (or to use TagEditor or some other tool intended for manipulating tagged text).
    Message was edited by: Joel Cherney

  • TextFlow and Controller Being Created Too Early?

    I've successfully rolled my work with the TextFlow into a
    Canvas component, made it into an SWC, and made that part of the
    application it was originally designed for. No problems. Alright,
    now time to re-use my work in another app. that could benefit from
    a rich text component. Went through the usual motions and got all
    of my UI for my text component to render except the TextFlow!
    Then what I discovered is when I resized the browser window
    that hosting my Flex app, the cascade of resize events got the
    TextFlow to finish rendering, the scroll bars got adjusted
    properly, and it was ready to accept input with the blinking
    cursor.
    Here is a dump from some trace statements I have in my code,
    I'm trying to work out the order in which events are happening and
    when the text flow gets proper measurements:
    Composer -> Resize -> New TextFlow Dimensions -> W:
    0 H: 0
    Composer -> Creating Display Controller -> TextFlow
    Dimensions -> W: 754 H: 0
    Composer -> Created
    MessageEditorBase -> Created
    MessageEditorBase -> Event Fired -> Resize
    MessageEditorBase -> Event Fired -> Show
    Composer -> Resize -> New TextFlow Dimensions -> W:
    754 H: 0
    MessageEditorBase -> Event Fired -> Resize
    Composer -> Resize -> New TextFlow Dimensions -> W:
    1328 H: 274
    MessageEditorBase -> Event Fired -> Resize
    Composer -> Resize -> New TextFlow Dimensions -> W:
    1328 H: 275
    MessageEditorBase -> Event Fired -> Resize
    Composer -> Resize -> New TextFlow Dimensions -> W:
    1329 H: 276
    MessageEditorBase -> Event Fired -> Resize
    Composer -> Resize -> New TextFlow Dimensions -> W:
    1334 H: 277
    MessageEditorBase -> Event Fired -> Resize
    Composer -> Resize -> New TextFlow Dimensions -> W:
    1350 H: 279
    "MessageEditorBase" is a canvas (used as a tab) that gets
    displayed to the user. Within that Canvas are lots of components
    including the "Composer" which is basically a toolbar of elegant
    buttons and format functions, and then a blank canvas which holds a
    UIComponent and becomes the DisplayObjectController. Works great in
    my other app, the code is nearly line for line with Adobe's
    examples.
    Notice how it starts 0,0; then gets a width measurement of
    754; finally when I the user resize the entire application do the
    rest of the proper dimensions get computed.
    I don't think it's a TextFlow problem, but I can't say I
    understand the Flex rendering hierarchy enough to have implemented
    TextFlow and its controller in the right way with this app.
    Any thoughts? If you need more information just ask and I'll
    try to explain as best as possible.

    As it turns out with a lot of fiddling and trace statements,
    I figured out a way to initialize the DisplayObjectController with
    valid pixel values. In your TLF examples, the developers always
    created a display object controller using specific dimensions, like
    250 x 250. But I need my text component to be created dynamically
    based on the screen size of the user. This was not happening
    correctly after I upgraded to TLF build 370, though it's not even a
    TLF problem.
    I took the measurements from the parent canvas. For whatever
    strange reason, in the world of measuring Flex components, the
    child canvas further down in the application, the one that I added
    the sprite to, was not getting measured out correctly. Thus when I
    passed the controller width and height values from this child, they
    were 0.
    I hope that made sense, but either way, problem fixed.
    Edit:
    Here's an example of my code using a custom controller that
    had the keyDown event overriden:
    theController = new
    ComposerDisplayController(uiFlowComponent, uiTextArea.width,
    uiTextArea.height, this);
    I passed values which I expected the UI to measure out rather
    than me providing explicit pixel values. I had a problem when the
    UI gave me zero.

  • Bloom filter and performance

    I have the following query:
    SELECT 
                    obst.obst_id obstructionId
                   ,oost.comment_clob CommentClob
                   ,chp1.ptcar_no StartPtcar
                   ,chp2.ptcar_no EndPtcar
                   ,oost.track_code Track
                   ,oost.start_date StartPeriod
                   ,oost.end_date EndPeriod
                   ,oost.doc_no RelaasId
                   ,obst.status_code Status
            FROM   T1 obst
                 , T2 oost
                 , T3 chp1
                 , T3 chp2
              where obst.oost_id      = oost.oost_id
              and oost.chp_id_start = chp1.chp_id
              and oost.chp_id_end   = chp2.chp_id
              and obst.obs_stat     = 2
       and add_months(obst.mod_date,13) >= :ld_curr_date
       and oost.start_date between :ld_from_date and :ld_to_date         
              and exists (select 1
                            from T4  obsv
                               , T5  veh
                            where  obsv.veh_id = veh.veh_id
                            and (:ln_opr_id is null
                                   OR veh.opr_id = :ln_opr_id)
                            and  obsv.obst_id = obst.obst_id
                            and  veh.ac_number between :ln_min_number and :ln_max_number
                            and  obsv.start_date > obst.start_date
             order by obst.obst_id;
    Giving the following execution plan where a bloom filter has been used.
    | Id  | Operation                           | Name                    | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    |   0 | SELECT STATEMENT                    |                         |      1 |        |     10 |00:02:13.09 |     128K|  94376 |
    |   1 |  SORT ORDER BY                      |                         |      1 |      8 |     10 |00:02:13.09 |     128K|  94376 |
    |   2 |   NESTED LOOPS                      |                         |      1 |        |     10 |00:02:13.06 |     128K|  94376 |
    |   3 |    NESTED LOOPS                     |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |   4 |     NESTED LOOPS                    |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |*  5 |      HASH JOIN SEMI                 |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |   6 |       JOIN FILTER CREATE            | :BF0000                 |      1 |        |   1469 |00:00:02.06 |   12430 |     76 |
    |   7 |        NESTED LOOPS                 |                         |      1 |        |   1469 |00:00:00.17 |   12430 |     76 |
    |   8 |         NESTED LOOPS                |                         |      1 |    307 |   5522 |00:00:00.11 |   10545 |     52 |
    |*  9 |          TABLE ACCESS BY INDEX ROWID| T2                      |      1 |    316 |   5522 |00:00:00.07 |    3383 |     46 |
    |* 10 |           INDEX RANGE SCAN          | T2_OOST_START_DATE_I    |      1 |   1033 |   8543 |00:00:00.03 |      33 |      3 |
    |* 11 |          INDEX RANGE SCAN           | T1_OBST_OOST_DK_I       |   5522 |      1 |   5522 |00:00:00.08 |    7162 |      6 |
    |* 12 |         TABLE ACCESS BY INDEX ROWID | T1                      |   5522 |      1 |   1469 |00:00:00.13 |    1885 |     24 |
    |  13 |       VIEW                          | VW_SQ_1                 |      1 |  64027 |   1405 |00:00:07.82 |     115K|  94300 |
    |* 14 |        FILTER                       |                         |      1 |        |   1405 |00:00:07.82 |     115K|  94300 |
    |  15 |         JOIN FILTER USE             | :BF0000                 |      1 |  64027 |   1405 |00:00:07.82 |     115K|  94300 |
    |  16 |          PARTITION REFERENCE ALL    |                         |      1 |  64027 |  64027 |00:01:48.22 |     115K|  94300 |
    |* 17 |           HASH JOIN                 |                         |     52 |  64027 |  64027 |00:02:03.37 |     115K|  94300 |
    |  18 |            TABLE ACCESS FULL        | T4                      |     52 |  64027 |  64027 |00:00:00.34 |    1408 |    280 |
    |* 19 |            TABLE ACCESS FULL        | T5                      |     41 |    569K|   5555K|00:02:08.32 |     114K|  94020 |
    |  20 |      TABLE ACCESS BY INDEX ROWID    | T3                      |     10 |      1 |     10 |00:00:00.01 |      22 |      0 |
    |* 21 |       INDEX UNIQUE SCAN             | T3_CHP_PK               |     10 |      1 |     10 |00:00:00.01 |      12 |      0 |
    |* 22 |     INDEX UNIQUE SCAN               | T3_CHP_PK               |     10 |      1 |     10 |00:00:00.01 |      12 |      0 |
    |  23 |    TABLE ACCESS BY INDEX ROWID      | T3                      |     10 |      1 |     10 |00:00:00.01 |      10 |      0 |
    Predicate Information (identified by operation id):
       5 - access("ITEM_1"="OBST"."OBST_ID")
           filter("ITEM_2">"OBST"."START_DATE")
       9 - filter(("OOST"."CHP_ID_START" IS NOT NULL AND "OOST"."CHP_ID_END" IS NOT NULL))
      10 - access("OOST"."START_DATE">=:LD_FROM_DATE AND "OOST"."START_DATE"<=:LD_TO_DATE)
      11 - access("OBST"."OOST_ID"="OOST"."OOST_ID")
      12 - filter(("OBST"."OBS_STAT"=2 AND ADD_MONTHS(INTERNAL_FUNCTION("OBST"."MOD_DATE"),13)>=:LD_CURR_DATE))
      14 - filter((:LN_MIN_ac_number<=:ln_max_number AND TO_DATE(:LD_FROM_DATE)<=TO_DATE(:LD_TO_DATE)))
      17 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")
      19 - filter(((:LN_OPR_ID IS NULL OR "VEH"."OPR_ID"=:LN_OPR_ID) AND "VEH"."ac_number">=:LN_MIN_ac_number AND
                  "VEH"."ac_number"<=:ln_max_number))
      21 - access("OOST"."CHP_ID_START"="CHP1"."CHP_ID")
      22 - access("OOST"."CHP_ID_END"="CHP2"."CHP_ID")
    This query completes in a not acceptable response time of more than 2 minutes and this is why it has been handled to me for possible improvement.
    As you might have already pointed it out from the above execution plan, the operation number 19 is the most time consuming operation (TABLE ACCESS FULL of T5). The query without the EXISTS part represents our data. This part of the query is very fast. It gives about 1500 rows. However, when we want to limit those 1500 records to only records satisfying the exists clause (10 records), the query starts not performing very well because of this full table scan on T5 (5,5 millions).
    The ideal situation would have been to :
    (a) first join table T5(alias veh) with the table T4(alias obs) using the join condition (predicate 17) limiting the number of record from T5 table
    (b) and then filter from T5 table (predicate 19)
    But in this case the CBO is starting by a costly full scan of the entire T5 table (5,5 millions of rows operation 19) before sending this enormous amount of data to the HASH JOIN operation 17 which finally throw away the majority of T5 rows not satisfying the join condition : access("OBSV"."VEH_ID"="VEH"."VEH_ID")
    I have already verified that the table statistics and their join column statistics are up-to-date and are reflecting the reality. But failed to know how to let the CBO automatically doing what I want it to do i.e. Join first and then filter.
    When I discussed with the client we agreed to re-factor a little bit this query so that it is now completing in few seconds.
    The new plan is not using bloom filter and the veh table is accessed via its unique index on VEH_ID (18 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")) before applying the filter operation. Exactly as I wanted it to be in the original query
    Have you any idea on how to change this join method/order so that the full table scan is post poned? of course without refactoring the query
    Do you think that bloom filter is the culprit here?
    Thanks in advance
    Mohamed Houri
    PS : and  veh.ac_number between :ln_min_number and :ln_max_number
    These two imput parameters are beyound the known low and high value. But even when I used min and max value taken from the table (min = low_value from stats and max = high value from stat), the plan didn't changed

    Jonathan,
    I got the plan I was looking for.
    It is not exactly the same as the execution plan that corresponds to the re-factored query but it is what I wanted to have.
    SELECT  /*+ gather_plan_statistics */
                   obst.obst_id obstructionId
                   ,oost.comment_clob CommentClob
                   ,chp1.ptcar_no StartPtcar
                   ,chp2.ptcar_no EndPtcar
                   ,oost.track_code Track
                   ,oost.start_date StartPeriod
                   ,oost.end_date EndPeriod
                   ,oost.doc_no RelaasId
                   ,obst.status_code Status
            FROM   T1 obst
                 , T2 oost
                 , T3 chp1
                 , T3 chp2
            where obst.oost_id = oost.oost_id
              and oost.chp_id_start = chp1.chp_id
              and oost.chp_id_end = chp2.chp_id
              and obst.obs_stat = 2 -- only reeel       
                    and exists (select /*+ no_unnest push_subq */ 1
                            from T4 obsv
                               , T5 veh
                            where obsv.veh_id = veh.veh_id
                              and (null is null
                                   OR veh.opr_id = null
                              and  obsv.obst_id = obst.obst_id
                              and veh.ac_number between 1 and 99999
                              and obsv.start_date > obst.start_date
              and oost.start_date between to_date ('20/11/2013','DD/MM/YYYY') and to_date ('27/11/2013','DD/MM/YYYY')
              and add_months(obst.mod_date,13) >= sysdate
             order by obst.obst_id
    | Id  | Operation                                 | Name                    | Starts | E-Rows | A-Rows |   A-Time   |
    |   0 | SELECT STATEMENT                          |                         |      1 |        |      6 |00:00:00.56 |
    |   1 |  SORT ORDER BY                            |                         |      1 |    254 |      6 |00:00:00.56 |
    |*  2 |   HASH JOIN                               |                         |      1 |    254 |      6 |00:00:00.11 |
    |   3 |    TABLE ACCESS FULL                      | T3                      |      1 |   2849 |   2849 |00:00:00.01 |
    |*  4 |    HASH JOIN                              |                         |      1 |    254 |      6 |00:00:00.11 |
    |   5 |     TABLE ACCESS FULL                     | T3                      |      1 |   2849 |   2849 |00:00:00.01 |
    |   6 |     NESTED LOOPS                          |                         |      1 |        |      6 |00:00:00.10 |
    |   7 |      NESTED LOOPS                         |                         |      1 |    254 |   5012 |00:00:00.09 |
    |*  8 |       TABLE ACCESS BY INDEX ROWID         | T2                      |      1 |    262 |   5012 |00:00:00.06 |
    |*  9 |        INDEX RANGE SCAN                   | T2_OOST_START_DATE_I    |      1 |    857 |   7722 |00:00:00.01 |
    |* 10 |       INDEX RANGE SCAN                    | T1_OBST_OOST_DK_I       |   5012 |      1 |   5012 |00:00:00.03 |
    |* 11 |      TABLE ACCESS BY INDEX ROWID          | T1                      |   5012 |      1 |      6 |00:00:00.48 |
    |  12 |       NESTED LOOPS                        |                         |   1277 |        |      6 |00:00:00.46 |
    |  13 |        NESTED LOOPS                       |                         |   1277 |      2 |      6 |00:00:00.46 |
    |  14 |         PARTITION REFERENCE ALL           |                         |   1277 |      4 |      6 |00:00:00.46 |
    |* 15 |          TABLE ACCESS BY LOCAL INDEX ROWID| T4                      |  66380 |      4 |      6 |00:00:00.43 |
    |* 16 |           INDEX RANGE SCAN                | T4_OBSV_OBST_FK_I       |  66380 |     86 |      6 |00:00:00.28 |
    |* 17 |         INDEX UNIQUE SCAN                 | T5_VEH_PK               |      6 |      1 |      6 |00:00:00.01 |
    |* 18 |        TABLE ACCESS BY GLOBAL INDEX ROWID | T5                      |      6 |      1 |      6 |00:00:00.01 |
    Predicate Information (identified by operation id):
       2 - access("OOST"."CHP_ID_END"="CHP2"."CHP_ID")
       4 - access("OOST"."CHP_ID_START"="CHP1"."CHP_ID")
       8 - filter(("OOST"."CHP_ID_START" IS NOT NULL AND "OOST"."CHP_ID_END" IS NOT NULL))
       9 - access("OOST"."START_DATE">=TO_DATE(' 2013-11-20 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "OOST"."START_DATE"<=TO_DATE(' 2013-11-27
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
      10 - access("OBST"."OOST_ID"="OOST"."OOST_ID")
      11 - filter(("OBST"."OBS_STAT"=2 AND ADD_MONTHS(INTERNAL_FUNCTION("OBST"."MOD_DATE"),13)>=SYSDATE@! AND  IS NOT NULL))
      15 - filter("OBSV"."START_DATE">:B1)
      16 - access("OBSV"."OBST_ID"=:B1)
      17 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")
      18 - filter(("VEH"."ac_number">=1 AND "VEH"."ac_number"<=99999))
    Spot how the predicate 17 and 18 are now in the position I wanted them to be i.e probe first the T5 unique index using the join condition and then filter the table T5
    But, there is always a but, why am I obliged to hint?
    Where did I got something wrong (statistics, optimizer parameter, etc...) so that the CBO did not opted for this execution plan without a hint?
    Thanks
    Mohamed Houri

Maybe you are looking for

  • Driver program Configurations for CO03/CO02

    Hi All, Requirement: We are configure script and driver program in OPK8 With list type LP01. Issue: This driver program is not triggered CO03/CO02 transaction level For this we need configure any other transaction. Can you suggest me how to resolve t

  • My apple ID is not working with messenger in iPad3

    it says that I don't have an apple ID and must create a new ID and that I can't do either.

  • Validating in ALV grid output for double entry

    Hi All,          I am trying to validate the ALV output while adding records to the screen. I need to validate if the same primary key exist while user is creating a new record in the ALV output. If the same record is entered many time ( with the sam

  • Rendering service by providing material to vendor

    Hi, I need to render service with reference of project for Painting of building , In this case I am providing all the material required for painting and POP to vendor, please suggest me how to create a service PO by specifying the details of material

  • Thumbnail shows but the photo does not open

    I can see the thumbnails for the pictures in an album, but when I click on the picture I get a large exclamation point in a triangle. Do I have to rebuild?