Searching through archived docs from Filenet in SAP tcode OAAD

We archive our payroll journals at runtime to Filenet - some can be up to 3500 pages. We can easily retrieve those docs using tcode OAAD in SAP.
Once retrieved, however, we are having issues searching within the document. For example, if we search for 'Jones' (and there are 10 occurrences), we may hit only the first one. When we continue the search, we get a message that nothing was found.
But, if we search for 'Smith' we find the first and may be able to continue finding the other 9. Also, I'm the only 'Phelan' in the list - when we search, I am able to find my info in the report.
Has anyone run across anything similar?
Thanks alot,
robert.

Hi Kiran,
Did you try creating a logical port using "SOAMANAGER" or "LPCONFIG" using the WSDL, i guess this should take care of it by applying the necessary settings in LP.
Not sure if you have gone through the below link, also the OSS note mentioned on the below link doesnt seem to exist, try searching for an OSS note on marketplace
[http://help.sap.com/saphelp_nw04/helpdata/en/4e/af3a40243c174ee10000000a1550b0/frameset.htm]
Regards,
Chen

Similar Messages

  • Can we move archive data from Filenet to another tool

    Hi Guru's,
    we are currently archiving data from SAP to archive location in Filenet , now we are planning to move archive data to onther tool , please suggest below  thing are possible:-
    1) Keep filenet and add another tool also    
    2) Move all a from filenet to another tools and then start rest of archiving to new tool.
    Regards,
    Jeetendra

    Hello,
    I have done this process when we moved our archived data from IBM Commonstore to IXOS/OpenText as well as when we moved all of our archived images in OpenText that were stored in a jukebox and we moved them to a WORM/Hard Disk Storage (still Open Text).  But, in both cases, we were provided the necessary conversion programs from the relevant vendor (in this case Open Text).
    This process is complex and involves correctly updating mulitple internal SAP tables as well as the database entries in the new storage providor. 
    My recommendation is to work with the 3rd party solution partner where the data is going to be moved to and get the appropriate conversion programs from them.
    Best Regards,
    Karin Tillotson

  • Need to fetch documents from filenet to SAP ?

    Hi,
    Here is the scenario..,
    The physical documents such as pdf, word documents etc.. are available in filenet/P8.
    These documents need to get fetched & displayed in SAP.
    For a prticular document id, all the related documents need to get displayed...
    Is there any function module or class to do so?
    Thanks.

    > I need to fetch data from SAP system to SQL, I know to fetch it from SQL to SAP using DBConnect but don't know to do this stuff, can any one please help me out with this.
    You can use the same way.
    Markus

  • How do you validate transfer of data from legacy to SAP (Tcode: SQVI)?

    Hello PP members:
    I would like to know how to validate transfer of data from legacy to SAP
    A friend of mine was telling it has to do with <u>SAP quick viewer(SQVI)</u> but could not able to much leads on it
    I would be thankful if can provide insights into the subject
    Thanks for your time,
    Suren R

    Suren,
    Yes, you could create queries in SAP with SQVI and get the data in SAP. But you need to be aware of all the relevant tables in SAP.
    For information for creating queries use link:
    http://help.sap.com/saphelp_47x200/helpdata/en/05/2b1df9209411d6b1d500508b6b8b11/frameset.htm
    For getting the relevant tables the easiest way is :
    1) Goto Se16.
    2) Choose F4,
    3) Click on SAP applications and drill down to the relevanttable.
    Hope this is useful. If yes reward poins and close this thread.
    Regards
    Ram

  • Issue in Passing Value from SAP Portal through Open Doc

    Hi
    I am  trying to pass the variables through open doc link from SAP portal.
    I am trying to pass four variables.
    OrganisationHierarchy
    FiscalPeriodFrom
    FiscalPeriodTo
    Business
    OrganisationHierarchy  and Business are hierarchy variables.
    I am testing few scenarios.Scenario1 and Scenario 2 are working fine.
    But I am facing with Scenario3 and Secnario4.
    Scenario1
    Only two levels are passed to OrganisationHierarchy
    http://mspr39.corp.medtronic.com:8080/OpenDocument/opendoc/openDocument.jsp?sap_sysid=DB1&sap_client=010&iDocID=11589&lsMOrganisationHierarchy=[ZSS_L2_C+++++++++++++++++++++ZSS_L2_SEL].[AUSTRALIA+++++++++++++++++++++0HIER_NODE];[ZSS_L2_C++++++++++++++++++++ZSS_L2_SEL].[INDIA++++++++++++++++++++++++++0HIER_NODE]&sRefresh=Y&lsSFiscalPeriodFrom=001.2010&lsSPreviousWorkingDay=10%2F28%2F2010&lsSTargetCurrency=HKD&lsSFiscalPeriodTo=011.2010
    Result: Report is refreshed
    Status: Passed
    Scenario2
    Only two levels are passed to Business
    http://mspr39.corp.medtronic.com:8080/OpenDocument/opendoc/openDocument.jsp?sap_sysid=DB1&sap_client=010&iDocID=11589&sRefresh=Y&lsSFiscalPeriodFrom=001.2010&lsSPreviousWorkingDay=10%2F28%2F2010&lsSTargetCurrency=HKD&lsSFiscalPeriodTo=011.2010&lsMBusiness=[0MAT_PLANT__ZBUSINESS++++++++RKEG_WWBUS_0MATPLANT].[ATV+++++++++++++++++++++++++++0HIER_NODE];[0MAT_PLANT__ZBUSINESS+++++++RKEG_WWBUS_0MATPLANT].[TPS++++++++++++++++++++++++++++0HIER_NODE]
    Result: Report is refreshed
    Status: Passed
    Scenario3
    When two levels are passed  for both OrganisationHierarchy,Business
    http://mspr39.corp.medtronic.com:8080/OpenDocument/opendoc/openDocument.jsp?sap_sysid=DB1&sap_client=010&iDocID=11589&lsMOrganisationHierarchy=[ZSS_L2_C+++++++++++++++++++++ZSS_L2_SEL].[AUSTRALIA+++++++++++++++++++++0HIER_NODE];[ZSS_L2_C++++++++++++++++++++ZSS_L2_SEL].[INDIA+++++++++++++++++++++++++0HIER_NODE]&lsRefresh=Y&lsSFiscalPeriodFrom=001.2010&lsSPreviousWorkingDay=10%2F28%2F2010&lsSTargetCurrency=HKD&lsSFiscalPeriodTo=011.2010&lsMBusiness=[0MAT_PLANT__ZBUSINESS+++++++RKEG_WWBUS_0MATPLANT].[ATV++++++++++++++++++++++++++++0HIER_NODE]
    Result: Report is  never refreshed and its keep on running
    Status: Failed
    Scenario4
    Only three levels are  passed for OrganisationHierarchy,
    No values are passed for Business
    http://mspr39.corp.medtronic.com:8080/OpenDocument/opendoc/openDocument.jsp?sap_sysid=DB1&sap_client=010&iDocID=11589&lsMOrganisationHierarchy=[ZSS_L2_C+++++++++++++++++++++ZSS_L2_SEL].[AUSTRALIA+++++++++++++++++++++0HIER_NODE];[ZSS_L2_C++++++++++++++++++++ZSS_L2_SEL].[INDIA+++++++++++++++++++++++++0HIER_NODE]; [ZSS_L2_C++++++++++++++++++++ZSS_L2_SEL].[ASEAN++++++++++++++++++++++++++0HIER_NODE]&lsRefresh=Y&lsSFiscalPeriodFrom=001.2010&lsSPreviousWorkingDay=10%2F28%2F2010&lsSTargetCurrency=HKD&lsSFiscalPeriodTo=011.2010
    Result: Report is  never refreshed and its keep on running
    Status: Failed
    Thanks
    Arun

    Hello Rupachandran,
    the memory id won't work as it is within the current session only.
    you have two main options:
    1) pass parameters in URL
    2) persist the parameters somehow ( shared memory area, database table )  and pass a GUID in the URL which refers to these.
    strangely enough although this is a mirror of most of the posts here, which want to launch WDA apps from standard GUI based code, the techniques are very very similar.
    you might get some help from looking at this recent post Calling webdypro through R3 Function module

  • Archive data from SAP

    How can I archive some data from SAP, what is the procedure to do it and the TCodes. Whether I can take archive and copy the data into the CDs, when it is require how can I provide the data into the system, total procedure and the solution. Please guide me so that I can archive some data from our server. Thanks & Regards, Kuntal Guha Roy

    SAP provide standard pre-defined SARA object of most (90%) of all the IS-U data objects. So depending on the functionality that you are currently using, you probably will not have to create any new objects. Things to remember in Archiving around IS-U is that due to the high integration of data thought out the IS-U vertical you will need to pick a date in time that you want to archive back from. Then you can work with the Functional Team to determine what the order of the objects you want to archive. There are MANY dependancies in the IS-U data model, so you will need to be careful that you don't archive/delete items in the wrong order. I (Technical Architect / Basis) have all ways had the Functional Teams provide the list of object and the order to archive/delete them. But rule thume is, last data in, first data out. So you would need to archive Invoicing docs, before Billing, Billing before payments and meeter reads. 
    Hope it helps.
    Thanks
    Matt

  • Can I search email archive on iCloud server from iOS device, or can I only search what it has downloaded locally?

    Can I search email archive on iCloud server from iOS device, or can I only search what it has downloaded locally?
    I currently have an iPhone and iPad, and am soon changing over to a Mac. When that happen I'd like to try to see what I can migrate over from the Google ecosystem to the iCloud ecosystem.
    1) Currently I have the Gmail iOS app (a webapp container) that can search server-side of several years of email archive.  Can iCloud do this using the iOS native mail application?  Or is the search just limited to what the device has downloaded locally?
    2) Do I have to use a @me.com address for the full iCloud email sync to take place between server, Mac, and iOS devices?
    Believe it or not I've read quite a bit about the iCloud services, but the answers to these questions were far from clear.  Many thanks for the help.

    2)  iCloud only syncs email between .me/.mac addresses.  For other accounts like google, you set up the account in the mail app and if they're IMAP accounts, you can sync between the google server and any devices you have defined that account on.
    I'm not absolutely sure about 1) since I haven't had to search going back years - I use MailSteward for that on the mac.  On my iPhone/iPad, when I go into a mailbox and the emails are not immediately available, it downloads them.  I suspect for a search, you need the emails downloaded.

  • Archiving Information from "old" SAP systems and switch off the server

    Good day
    I hope someone can offer some advice. Our company has a few sites across the globe. Three of the sites in South Africa ( where I'm working at the moment ) had their own SAP systems. Three odd years ago, we implementeted a new SAP system, combining the separate SAP systems into the new one, running of the same box etc etc. The "old" SAP systems were still availbale after the new one went live, in the event that people want to look back at history.
    We are you busy with a project where we are going to merge our current SAP implementation into our global SAP system... obviously only the current master data are going to be transfered to the new system. It's an idea time for us to clean up our data.
    My question: Once we go live on our global SAP system, we want to "export" or archive from the 3 "old" SAP systems the Master Data from the HR module ( like employees who's left the company - it's law to keep the records for 5 years at least once a employee has left) , HSEC and FI modules into a single datastore... this way we don't have to keep the three servers running in the event that history is required. The servers wil be kept off-line and only switched back on if a detailed audit is required.
    The global SAP system does not have an archive solution implemented to we can't access archived data from the new system...
    So, we need to export master data from our 3 old SAP boxes into a Unicode type file system, and our local South African sites needs to be able to access the information using a text type editor or a web based interface we can run off our SAP Portal...
    Thank you

    Hello Cornelius,
    To introduce myself, I am an active SDN/BPX member as well as an ASUG Archiving and Information Lifecycle Management Volunteer.
    Decommissioning Legacy Systems (SAP and non-SAP systems) is quite the topic these days with divestitures becoming such a common occurrence. 
    Some things to think about in this situation are:
    Identifying the data to be decommissioned:
    what information would be needed for an audit
    what information would be needed for a lawsuit situation
    Identifying the access requirements to this data.
    Identifying the retention policies for this data (this will be
    driven by regulatory requirements, etc.).
    If this has not already been done - define retention periods for this data - it will most likely have different retention periods based on the type of data.
    You mention that you do not have an archive solution in place yet. 
    I would recommend that you may want to research that option because typical requirements for retaining legacy data is that it is stored in such a manner so that it is protected from any type of modification.
    There are a lot of 3rd party archiving/storage solutions that provide this type of secure storage.
    You are correct in that you will want to export or archive the legacy data as opposed to loading the data into your current system.  It would probably involve a large increase in the size of your SAP database and you would probably run into number range overlaps.
    But, if this data is exported to a filesystem, you will be losing the business logic associated with the data, and the information is no longer in its original format (this could have legal ramifications). 
    I would recommend using SAP Archiving functionality for this effort.  If you are looking for outside resources, there are many vendors out there that have a lot of experience with these types of projects.
    Two that come to mind are Dolphin IT and OpenText.
    Or, depending on the timeline of your project, SAP is coming out with a tool that can be used for decommissioning SAP Systems.  It is part of
    their SAP ILM solution.  It will be called Retention Warehouse.  Here is a paragraph from their latest white paper describing this new tool:
    With the retention warehouse, SAP now offers a
    standardized method for system decommissioning in
    answer to these pressing issues. It allows you to reuse the archived data outside the original system in a central
    retention warehouse.
    For more detail on this topic, the white paper can be found on the SAP ILM Website:
    service.sap.com/ilm
    This tool is part of a larger initiative from SAP to help customers with their ILM (Information Lifecycle Management) strategy.  This tool is near and dear to me as I was fortunate enough to be part of an
    ASUG Influence Council that helped with some of the requirements for this solution.
    I hope this information is useful. 
    Good luck and Best Regards,
    Karin Tillotson

  • AVG Safe Search is not compatable with FireFox 6. I went through the steps from the website, but they don't help. Can it be enabled again?

    I restarted FireFox again in safe mode, cleared all of my cache and cookies, and nothing seems to be helping. I even tried to go through my userface of AVG Free edition 2011, but I didn't even have the options it was telling me to go through.

    Also this from AVG: Please rest assured you are still protected by AVG even if you have already upgraded to Firefox 6.0. The AVG Active Surf Shield component is still checking all data and will prevent you from accessing malicious content even though search results verdict icons are not available temporarily.

  • Need to transport a Folder from cFolders into SAP R/3

    Dear Members,
      I want to import a whole folder( and it's child documents) from cFolder into SAP R/3. What I did so far is that I have created the RFC Dest., Configured the cFolder in R/3 using Tx CFC01, created a Search for the folder inside cFolder and ran CFI01. There I entered the cFolder Application name and entered the cFolder Search as my search name (using the search help). Then when I am trying to Add Documents it's showing a message <b>No lines added. cFolders document(s) contain no file(s)</b>. What I have seen so far even after debuging and after doing a lot of R&D is that, Documents can be imported but folders can't be. <b>But my requirement is to import all the folder element in one shot.. how to go about that? Please lit into the matter..I am waiting with points</b>
    Sugata

    in cfi02 it is not possible if you are game you can try
    CFX_API package to write a prg to do so
    CFX_API_FOLDER_GETDETAIL - to get doc ids
    CFX_API_DOC_DOCUMENT_READ

  • Search replace Word doc - Getting Erro : org.eclipse.swt.SWTException:

    Hi
    All
    I'm runing this Java class by a jsp to Search and Replace and saveAs a word document, when run the fisrt time it works OK, but if I run again I got this error:
    What is happing there?
    Following the Error and Source Java.
    Thanks
    11:59:49,234 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
    org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error(SWT.java:3563)
    at org.eclipse.swt.SWT.error(SWT.java:3481)
    at org.eclipse.swt.SWT.error(SWT.java:3452)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:432)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:274)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:265)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:218)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:156)
    at br.com.tryblob.view.WordSearchReplace.<init>(WordSearchReplace.java:36)
    at org.apache.jsp.replacedoc_jsp._jspService(replacedoc_jsp.java:48)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Unknown Source)
    12:00:56,843 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
    org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error(SWT.java:3563)
    at org.eclipse.swt.SWT.error(SWT.java:3481)
    at org.eclipse.swt.SWT.error(SWT.java:3452)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:432)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:274)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:265)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:218)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:156)
    at br.com.tryblob.view.WordSearchReplace.<init>(WordSearchReplace.java:36)
    at org.apache.jsp.replacedoc_jsp._jspService(replacedoc_jsp.java:48)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Unknown Source)
    ==================JAVA CLASS=====================
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.SWTException;
    import org.eclipse.swt.internal.ole.win32.TYPEATTR;
    import org.eclipse.swt.ole.win32.OLE;
    import org.eclipse.swt.ole.win32.OleAutomation;
    import org.eclipse.swt.ole.win32.OleClientSite;
    import org.eclipse.swt.ole.win32.OleFrame;
    import org.eclipse.swt.ole.win32.OleFunctionDescription;
    import org.eclipse.swt.ole.win32.OlePropertyDescription;
    import org.eclipse.swt.ole.win32.OleParameterDescription;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.ole.win32.Variant;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.BufferedWriter;
    import java.io.IOException;
    public class WordSearchReplace {
         private static final String PROG_ID = "Word.Application";
         private static final int WD_REPLACE_ALL = 2;
         private static final int WD_FIND_CONTINUE = 1;
         private Shell shell = null;
         private OleFrame frame = null;
         private OleClientSite wordSite = null;
         private OleAutomation wordAutomation = null;
         private OleAutomation activeDocumentAutomation = null;
         private boolean cleaned = false;
         * Create a new instance of the WordSearchReplace class.
         public WordSearchReplace() {
              this.shell = new Shell();
              this.frame = new OleFrame(this.shell, SWT.NONE);
              this.wordSite = new OleClientSite(this.frame, SWT.NONE, WordSearchReplace.PROG_ID);
         this.wordAutomation = new OleAutomation(this.wordSite);
         * Open an MS Word file. This is a file whose name ends with the extension
         * .doc or .doc and which conforms to the correct format.
         * Note; if it is possible to open the named file, an attempt is made
         * to cache an OleAutomation object referencing that file which will be
         * referred to in future as the active document. Most other methods
         * need to capture references to further OleAutomation(s) that have the
         * active document as their root.
         * @param fileName An instance of the String class that encapsulates the
         * path to and name of the file that is to be opened.
         * Note; the full path name must be supplied as Word
         * will be opening the file and no assumptions can
         * safely be made concerning the applications 'home'
         * folder.
         * @throws NullPointerException if a null value is passed to the fileName
         * parameter.
         * @throws FileNotFoundException if it is not possible to locate the
         * file.
         * @throws IllegalArgumentException if the name of the file does not end
         * with either the .dot or .doc extensions.
         * @throws SWTException if a problem occurs whilst invoking any of the OLE
         * methods.
         public void openFile(String fileName) throws SWTException,
         NullPointerException,
         FileNotFoundException,
         IllegalArgumentException {
              OleAutomation documentsAutomation = null;
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              try {
                   // Check the the file name is not null
                   if(fileName == null) {
                        throw new NullPointerException("Null value passed to " +
                             "fileName parameters of the openFile() method.");
                   // Check the the file names ends with '.dot' or '.doc'.
                   // Remember to include templates and docuemnts
                   if(!(fileName.endsWith(".doc")) && !(fileName.endsWith(".dot"))) {
                        throw new IllegalArgumentException(
                             "The filename must end with the extensions \'.doc\' or \'.dot\'");
                   // Check that the file exists
                   File fileToPrint = new File(fileName);
                   if(!(fileToPrint.exists())) {
                        throw new FileNotFoundException("The file " +
                        fileName +
                        "cannot be found.");
                   // From the application, get an automation for the Documents property
                   documentsAutomation = this.getChildAutomation(this.wordAutomation,
                   "Documents");
                   // Get the ID of the Open method
                   id = documentsAutomation.getIDsOfNames(new String[]{"Open"});
                   if(id == null) {
                        throw new SWTException("It was not possible to recover an " +
                        "identifer for the Open method in WordSearchReplace.openFile().");
                   // Build an array of parameters - holds just the file name
                   arguments = new Variant[1];
                   arguments[0] = new Variant(fileName);
                   // Invoke the Open method on the Documents property
                   invokeResult = documentsAutomation.invoke(id[0], arguments);
                   // If the call to invoke the open method failed, throw an SWTException
                   // to terminate processing.
                   if(invokeResult == null) {
                        throw new SWTException("An error occurred whilst invoking the " +
                             "Open method for the following file: " +
                             fileName +
                             " in WordSearchReplace.openFile().");
                   // If it was possible to open the document successfully, grab an
                   // automation object referencing the active document here.               
                   else {
                        this.activeDocumentAutomation = this.getChildAutomation(
                             this.wordAutomation, "ActiveDocument");
              finally {
                   // If the automation was instantiated then dispose of it to
                   // release resources. This OleAutomation was only required
                   // to open the file and can safely be released here.
                   if(documentsAutomation != null) {
                        documentsAutomation.dispose();
         * Save the currently open file - the active document.
         * @throws SWTException if a problem occurs whilst invoking any of the OLE
         * methods.
         public void save() throws SWTException {
              int[] id = null;
              Variant invokeResult = null;
              // From the automation for the ActiveDocument object, get an id for
              // the Save method
              id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"Save"});
              // If it was not possible to recover the id of the Save
              // method, throw an exception to notify the user and terminate
              // processing.
              if(id == null) {
                   throw new SWTException("Unable to obtain an automation for " +
                        "the Save method in WordSearchReplace.save().");
              // Invoke the Save method and catch the value returned
              invokeResult = this.activeDocumentAutomation.invoke(id[0]);
              // If a null value was returned then the invocation of the
              // Save method failed. Throw an exception to notify the
              // user and terminate processing.
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "Save method in WordSearchReplace.save().");
         * Save the active document using the name provided.
         * @param fileName Am instance of the String class encapsulating the name
         * for the file. Again, the path to and name of the file should
         * be supplied.
         * @throws NullPointerException if a null value is passed to the fileName
         * parameter.
         * @throws IllegalArgumentException if either an empty String is passed
         * to the fileName parameter or if the files name does not end
         * with one of the two permissible extensions - .dot and .doc
         public void saveAs(String fileName) throws SWTException,
         NullPointerException,
         IllegalArgumentException {
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              // If the fileName parameter is passed a null
              // value, throw an exception.
              if(fileName == null) {
                   throw new NullPointerException("A null value was passed to " +
                        "the fileName parameter of WordSearchReplace.saveAs().");
              // If the fileName parameter has been passed an empty String
              // then again throw an exception.
              if(fileName.length() == 0) {
                   throw new NullPointerException("An empty string was passed " +
                        "to the fileName parameter of WordSearchReplace.saveAs().");
              // Finally, make sure the file name ends in either
              // .doc or .dot.
              if((!fileName.endsWith(".dot")) && (!fileName.endsWith(".doc"))) {
                   throw new IllegalArgumentException("An illegal file name was " +
                        "passed to the fileName parameter of " +
                        "WordSearchReplace.saveAs(). The file name must " +
                        "end in \'.dot\' or \'.doc\'.");
              // From the automation for the ActiveDocument object, get an id for
              // the SaveAs method
              id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"SaveAs"});
              // If it was not possible to recover the id of the SaveAs
              // method, throw an exception to notify the user and terminate
              // processing.
              if(id == null) {
                   throw new SWTException("Unable to obtain an automation for " +
                        "the SaveAs method in WordSearchReplace.saveAs().");
              // Build the array of arguments that will be passed to the invoke
              // method when the SaveAs method is invoked. In this case, this
              // array will contain a single member - a String object encapsulating
              // the path to and name of the output file.
              arguments = new Variant[1];
              arguments[0] = new Variant(fileName);
              // Invoke the SaveAs method and catch the value returned
              invokeResult = this.activeDocumentAutomation.invoke(id[0], arguments);
              // If a null value was returned then the invocation of the
              // PrintOut method failed. Throw an exception to notify the
              // user and terminate processing.
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "SaveAs method in WordSearchReplace.saveAs().");
         * Mimics Words 'replace' functionality by searching the active
         * document for evey string of characters that matches the value passed to
         * the searchTerm parameter and replacing them with the string of
         * characters passed to the replacementTerm method.
         * It is possible to code a VBA macro within Word that will perfrom a serach
         * and replace. That code would look like the following;
         * <pre>
         *      Selection.Find.ClearFormatting
    *     Selection.Find.Replacement.ClearFormatting
    *     With Selection.Find
    *      .Text = "serach"
    *      .Replacement.Text = "search"
    *      .Forward = True
    *      .Wrap = wdFindContinue
    *      .Format = False
    *      .MatchCase = False
    *      .MatchWholeWord = False
    *      .MatchWildcards = False
    *      .MatchSoundsLike = False
    *      .MatchAllWordForms = False
    *     End With
    *     Selection.Find.Execute Replace:=wdReplaceAll
    * <pre>
    * and this method will 'automate' it.
         * @param searchTerm An instance of the String class that will encapsulate
         * the series of characters that should be replaced.
         * @param replacementTerm An instance of the String class that will
         * encapsulate the series of characters that should replace the
         * searchTerm.
         * @throws NullPointerException if a null value is passed to either the
         * searchTerm or replacementTerm methods.
         * @throws SWTException if a problem occurs when invoking any of the
         * OLE methods.
         public void replace(String searchTerm,
         String replacementTerm) throws SWTException,
         NullPointerException {
              OleAutomation selectionFindAutomation = null;
              OleAutomation childAutomation = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              int[] id = null;
              int[] namedArguments = null;
              boolean success = true;
              // Validate the searchTerm parameter and throw exception if
              // null value passed.
              if(searchTerm == null) {
                   throw new NullPointerException("Null value passed to " +
                             "searchTerm parameter of the replace() method.");
              // Validate the replacementTerm parameter and throw exception if
              // null value passed.
              if(replacementTerm == null) {
                   throw new NullPointerException("Null value passed to " +
                             "replacementTerm parameter of the replace() method.");
              // Most of the VBA instructions used to perform the search and
              // replace functionality and child automations of Selection.Find,
              // therefore, it is wise to cache that automation first.
              // From the application, get an automation for the Selection property
              childAutomation = this.getChildAutomation(this.wordAutomation,
                   "Selection");
              selectionFindAutomation = this.getChildAutomation(childAutomation,
              "Find");
              // Next, using the cached automation, invoke the 'ClearFormatting'
              // method, validate the returned value and invoke the method.
              // Selection.Find.ClearFormatting
              id = selectionFindAutomation.getIDsOfNames(new String[]{"ClearFormatting"});
              if(id == null) {
                   throw new SWTException("It is not possible to recover an identifier " +
                        "for the ClearFormatting method in WordSearchReplace.replace() " +
                        "when clearing the formatting for the search string.");
              invokeResult = selectionFindAutomation.invoke(id[0]);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "ClearFormatting method in WordSearchReplace.repace() " +
                        "when clearing formatting for the search string.");
              // Now, perform the same function but for the replacement string.
              // Selection.Find.Replacement.ClearFormatting
              childAutomation = this.getChildAutomation(selectionFindAutomation,
              "Replacement");
              id = childAutomation.getIDsOfNames(new String[]{"ClearFormatting"});
              if(id == null) {
                   throw new SWTException("It is not possible to recover an identifier " +
                        "for the ClearFormatting method in WordSearchReplace.replace() " +
                        "when clearing the formatting for the replacement string.");
              invokeResult = childAutomation.invoke(id[0]);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "ClearFormatting method in WordSearchReplace.repace() " +
                        "when clearing formatting for the replacement string.");
              // Firstly, set the search text.
              // .Text = "search term"
              arguments = new Variant[1];
              arguments[0] = new Variant(searchTerm);
              success = this.setPropertyValue(selectionFindAutomation, "Text", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Text " +
                        "property for the search string in WordSearchReplace.replace().");
              // Next, the replacement text
              // .Replacement.Text = "replacement term"
              childAutomation = this.getChildAutomation(selectionFindAutomation,
              "Replacement");
              arguments[0] = new Variant(replacementTerm);
              success = this.setPropertyValue(childAutomation, "Text", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Text property" +
                        " for the replacement string in WordSearchReplace.replace().");
              // Set the direction of the search - forward in this case.
              // .Forward = True
              arguments[0] = new Variant(true);
              success = this.setPropertyValue(selectionFindAutomation, "Forward", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Forward " +
                        "property in WordSearchReplace.replace().");
              // Tell the search to wrap. Note the literal wdFindContinue relates to
              // a constant that is defined within Word. I have provided a static
              // final to replace it called WD_FIND_CONTINUE
              // .Wrap = wdFindContinue
              arguments[0] = new Variant(WordSearchReplace.WD_FIND_CONTINUE);
              success = this.setPropertyValue(selectionFindAutomation, "Wrap", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Wrap " +
                        "property in WordSearchReplace.replace().");
              // Set the Format property to False.
              // .Format = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "Format", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Format " +
                        "property in WordSearchReplace.replace().");
              // Set the MatchCase property to false.
              // .MatchCase = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchCase", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the MatchCase " +
                        "property in WordSearchReplace.replace().");
              // Set the MatchWholeWord property to false.
              // .MatchWholeWord = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchWholeWord", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchWholeWord property in WordSearchReplace.replace().");
              // Set the MatchWildCards property to false.
              // .MatchWildcards = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchWildCards", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchWildCards property in WordSearchReplace.replace().");
              // Set the MatchSoundsLike property to false.
              // .MatchSoundsLike = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchSoundsLike", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchSoundsLike property in WordSearchReplace.replace().");
              // Set the MatchAllWordForms property to false.
              // .MatchAllWordForms = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchAllWordForms", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchAllWordForms property in WordSearchReplace.replace().");
              // Invoke the Execute command passing the correct value to the Replace
              // parameter. Again, wdReplaceAll is a constant that I have provided
              // a ststic final for called WD_REPLACE_ALL
              // Selection.Find.Execute Replace:=wdReplaceAll
              id = selectionFindAutomation.getIDsOfNames(new String[]{"Execute", "Replace"});
              if(id == null) {
                   throw new SWTException("It was not possible to recover an identifier " +
                        "for the Execute method in WordSearchReplace.replace().");
              arguments = new Variant[1];
              arguments[0] = new Variant(WordSearchReplace.WD_REPLACE_ALL);
              namedArguments = new int[1];
              namedArguments[0] = id[1];
              // There was some indication that the invokeNoReply method should
              // be used when making this call but no, invoke SEEMS to work well
              //selectionFindAutomation.invokeNoReply(id[0], arguments, namedArguments);
              invokeResult = selectionFindAutomation.invoke(id[0], arguments, namedArguments);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred trying to invoke the " +
                   "Execute method in WordSearchReplace.replace().");
         * Close the active document.
         * @throws SWTException if a problem is encountered invoking any of the
         * OLE methods.
         public void closeFile() throws SWTException {
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              try {
                   // From the OleAutomation referencing the active document, recover
                   // the id of the Close method.
                   id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"Close"});
                   // If it was not possible to recover the id of the Close
                   // method then throw an exception to notify the user and
                   // terminate processing.
                   if(id == null) {
                        throw new SWTException("It was not possible to recover an " +
                             "identifier for the Close method in " +
                             "WordSearchReplace.closeFile().");
                   // Invoke the Close method on the ActiveDocument automation
                   invokeResult = this.activeDocumentAutomation.invoke(id[0]);
                   // If the invocation of the Close method failed, throw an
                   // exception to notify the user and terminate processing.
                   if(invokeResult == null) {
                        throw new SWTException(
                             "An error occurred invoking the Close method in " +
                             "WordSearchReplace.closeFile().");
              finally {
                   if(this.activeDocumentAutomation != null) {
                        this.activeDocumentAutomation.dispose();
         * Release resources.
         public void dispose() throws SWTException {
              try {
                   // Set the cleaned flag to true. This prevents the method from
                   // running again if it is called from the finalize() method
                   this.cleaned = true;
                   // From the word automation, recover the id of the Quit method
                   int[] id = this.wordAutomation.getIDsOfNames(new String[]{"Quit"});
                   // If the id of the Quit method cannot be recovered
                   // throw an exception - not much good really though.
                   if(id == null) {
                        throw new SWTException("Unable to obtain an id for the Quit " +
                             "property in WordSearchReplace.dispose().");
                   // Invoke Quit
              Variant result = this.wordAutomation.invoke(id[0]);
              // If an error occurs during the invocation, throw an exception.
              // Again though that exception is of limited value.
              if(result == null) {
                   throw new SWTException("A problem occurred trying to invoke the " +
                        "Quit method in WordSearchReplace.dispose().");
         finally {
              // Finally, dispose of the word application automation.
              this.wordAutomation.dispose();
         * The finalize() method has been over-ridden to ensure that resources
         * are correctly released if a WordSearchReplace object is created but
         * not disposed of properly before it becomes eligible for garbage
         * collection. The cleaned flag is used as acheck to ensure that the
         * dispose() method cannot be called more than once.
         public void finalize() throws Throwable {
              if(!this.cleaned) {
                   this.dispose();
         * Creates and returns a 'child' OleAutomation object. The object model
         * employed by Word, Excel and the like, arrange objects, methods and
         * properties hierarchically. To invoke a method, it is often necessary
         * to iterate through this hierarchy from parent to child and this method
         * supports that process.
         * @param automation An OleAutomation object that references the parent
         * automation.
         * @param childName An instance of the String class that encapsulates the
         * name of the child automation.
         * @throws SWTException if a problem is encountered invoking one or
         * other of the OLE methods.
         private OleAutomation getChildAutomation(OleAutomation automation,
         String childName) throws SWTException {
              // Try to recove the unique identifier for the child automation
              int[] id = automation.getIDsOfNames(new String[]{childName});
              // If the identifier cannot be found then throw an exception to
              // terminate processing.           
              if (id == null) {
                   throw new SWTException(
                        "A problem occurred trying to obtain and id for: " +
                   childName +
                   "in the getC

    When you call it the first time, it new Shell() constructs a new Display for you (the default).
    The second time, it gets the default display, but you are in a different Thread now. Since you have to create your widgets in the UI thread, it gives you that error.
    To run code in the UI thread, Display provides two methods:
    display.syncexec(..)and
    display.asyncexec(...)see
    http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/swt_threading.htm
    for more details.

  • Execute ABAP Code Inspector from Outside of SAP

    Hi all...
    For reporting purpose, I would like to use ABAP Code Inspector (transaction SCI) for generating output as a file, it should call from outside of SAP through RFC function module and generate the list (output) as flat file (or XML), does anyone have been done with similar work like this? I wonder if you could share your experience with me...
    thanks in advance,
    yayan irianto.

    I managed to set up the variant, however found a problem.
    I used "Search ABAP Statement Patterns" under "Search Functs" and set the pattern like followings.
    SELECT + INTO *
    SELECT SINGLE + INTO *
    However following statements were detected.
    SELECT * INTO TABLE IT_DRAW FROM DRAW.
    SELECT MANDT INTO TABLE IT_DRAW FROM DRAW.
    SELECT SINGLE * INTO TABLE IT_DRAW FROM DRAW.
    SELECT SINGLE MANDT INTO TABLE IT_DRAW FROM DRAW.
    It's because + means one ABAP token in the code inspector.
    Is there anyway to find only "SELECT SINGLE *" and "SELECT *" ?

  • Using Oracle Text to search through WORD, EXCEL and PDF documents

    Hello again,
    What I would like to know is if I have a WORD or PDF document stored in a table. Is it possible to use Oracle Text to search through the actual WORD or PDF document?
    Thanks
    Doug

    Yes you can do context sensitive searches on both PDF and Word docs. With the PDF you need to make sure they are text and not images. Some scanners will create PDFs that are nothing more than images of document.
    Below is code sample that I made some time back to demonstrate the searching capabilities of Oracle Text. Note that the example makes use of the inso_filter that is no longer shipped with Oracle begging with Patch set 10.1.0.4. See metalink note 298017.1 for the changes. See the following link for more information on developing with Oracle Text.
    http://download-west.oracle.com/docs/cd/B14117_01/text.101/b10729/toc.htm
    begin example.
    -- The following needs to be executed
    -- as sys.
    DROP DIRECTORY docs_dir;
    CREATE OR REPLACE DIRECTORY docs_dir
    AS 'C:\sql\oracle_text\documents';
    GRANT READ ON DIRECTORY docs_dir TO text;
    -- End sys ran SQL
    DROP TABLE db_docs CASCADE CONSTRAINTS PURGE;
    CREATE TABLE db_docs (
    id NUMBER,
    format VARCHAR2(10),
    location VARCHAR2(50),
    document BLOB,
    CONSTRAINT i_db_docs_p PRIMARY KEY(id)
    -- Several notes need to be made about this anonymous block.
    -- First the 'DOCS_DIR' parameter is a directory object name.
    -- This directory object name must be in upper case.
    DECLARE
    f_lob BFILE;
    b_lob BLOB;
    document_name VARCHAR2(50);
    BEGIN
    document_name := 'externaltables.doc';
    INSERT INTO db_docs
    VALUES (1, 'binary', 'C:\sql\oracle_text\documents\externaltables.doc', empty_blob())
    RETURN document INTO b_lob;
    f_lob := BFILENAME('DOCS_DIR', document_name);
    DBMS_LOB.FILEOPEN(f_lob, DBMS_LOB.FILE_READONLY);
    DBMS_LOB.LOADFROMFILE(b_lob, f_lob, DBMS_LOB.GETLENGTH(f_lob));
    DBMS_LOB.FILECLOSE(f_lob);
    COMMIT;
    END;
    -- build the index
    -- Note that this index differs than the file system stored file
    -- in that paramter datastore is ctxsys.defautl_datastore and not
    -- ctxsys.file_datastore. FILE_DATASTORE is for documents that
    -- exist on the file system. DEFAULT_DATASTORE is for documents
    -- that are stored in the column.
    create index db_docs_ctx on db_docs(document)
    indextype is ctxsys.context
    parameters (
    'datastore ctxsys.default_datastore
    filter ctxsys.inso_filter
    format column format');
    --search for something that is known to not be in the document.
    SELECT SCORE(1), id, location
    FROM db_docs
    WHERE CONTAINS(document, 'Jenkinson', 1) > 0;
    --search for something that is known to be in the document.  
    SELECT SCORE(1), id, location
    FROM db_docs
    WHERE CONTAINS(document, 'Albright', 1) > 0;

  • Attach doc from external content server- using Generic Object Service (GOS)

    Dear All,
    i have intergrated an external content server to SAP using SAP archive link. All the scanned document are there in Content server and corresponding entries are done in SAP.I can search and view document using tcode : OAAD
    Please tell me steps for "how to attach a document from external content server using Generic Object Service "
    Scenario is :  For example when we change any Master records or create a new PO, or do some financial transaction then i need to attach the supporting document which is there in my content server connected  to SAP.how do we manual attach a Document in SAP using GOS.
    Do we need to do some special configuration to use GOS .please give the steps from initial.
    Thanks
    sandeep

    Hello,
    Check your configuration of document type assignement to required business document - object type, Archivelink table, content repository in OAC3 transaction.
    Goto respective business document > Click on GOS > Create > Store business document - Here you can see defined document type with desctiption. Double click on this the assign your document to this business document. Save it.
    This will help in attaching the document to your required business document.
    To verify you can check the archivelink table or by transaction OAAD.
    Hope this will help you.
    -Thanks,
    Ajay

  • Archive mail from Gmail

    I have purchased a new mac and in setting up mail my gmail account is constantly fetching archive mail from the server.  25000 messages.  I have searched and searched but can't find a way to stop it or change my archive settings.  In the mean time because it's constantly looking for emails I have gone through my months worth of data in 2 days!  Any advice please?

    Same here; right clicking and choosing "move to" is also an option, gives you more choiche.
    Updating Apple products used to be without much problems, but since Mavericks it seems that every update create a new problem!

Maybe you are looking for