• RE: Search documents based only on Docuware's document ID

    Phil,

    True enough, but not everyone can just buy a new module any time a new business need arises. I could write a console app that does this in probably a couple of hours and then set it to run every five minutes on whatever infrastructure we have developed to run automated tasks. If done right, one would use a straight SQL Server query to see where the new document ID field was zero, and then just populate that field for those documents from DWDOCID using the Platform SDK. Most IT shops have a machine (or some process) set up to run automated tasks.

    Of course, if this is a high-volume situation or a scenario where "the sooner the better" when it comes to that field being populated, there is little doubt AIX is the way to go, and probably the most cost effective in the long term. I don't know that Patricia has those needs, though.

    Now, if DocuWare would simply have AutoIndex built in, that would settle the whole issue!  *smile*

    Thanks,
    Joe Kaufman
  • RE: Search documents based only on Docuware's document ID

    Hey all,

    What about adding a DocID field to the cabinet, and then using the Platform SDK to populate it from the DWDOCID system field? This results in no custom access of the database and keeps everything in sync since the platform uses the same business logic as changing an index field from the web client.

    Patricia, is use of the Platform SDK an option? Setting this up as a console .NET application that gets set to run at regular intervals would be fairly straightforward.

    Thanks,
    Joe Kaufman
  • RE: .net upload api

    Not a problem.

    You are probably right about dialogs knowing what is hidden -- that is handy!

    Thanks,
    Joe Kaufman
  • RE: .net upload api

    Raymond,

    Just remember that dialog fields are not the same as the document (file cabinet) fields. A dialog might be configured to only show a subset of the fields, so it is only by looking at the document itself that you can know what the full structure is.

    Many layers of complexity!

    Thanks,

    Joe Kaufman

  • RE: .net upload api

    Raymond,

    As far as I know, fields/indexing is all done at the Document level, not the FileCabinet level (all of my counts are zero, too, even when iterating over the List).

    If you do something like this:
     
    DocumentsQueryResult docs = conn.GetAllDocuments(cabID);
    Document doc = docs.Items[0];
    int fieldCount = doc.Fields.Count;
    

    You will see the fields of the document, therefore from the cabinet definition.

    Thanks,
    Joe Kaufman




     
  • RE: .net upload api

    Raymond,

    I have three packages installed:

    DocuWare.RestClient
    DocuWarePlatformApi
    DocuWarePlatformApiCore

    DocwareWebclientIntegration is more for URL integration, which I implement by simply including the assembly "DocuWare.WebIntegration.dll" in my .NET project as a direct reference. The namespace you should be using in your code is "DocuWare.Platform.ServerClient". The WebClient and Platform are two separate things, and the Platform SDK stuff is all a part of "Platform".

    Thanks,
    Joe Kaufman
     
  • RE: .net upload api

    Raymond,

    It looks like you don't have the extension methods for the FileCabinet object (of which UploadDocument is one).

    Did you install all the proper NuGet packages so that your .NET solution has the DocuWare assemblies? That is where the extension methods reside, namely:
     
    ​​​​​​​​​​​​​​namespace DocuWare.Platform.ServerClient
    {
        public static class FileCabinetExtensions
        {
            public static Document AddDocumentSections(this Document document, params FileInfo[] file);
            public static Task<DeserializedHttpResponse<Document>> AddDocumentSectionsAsync(this Document document, params FileInfo[] file);
            public static Section ChunkAddSection(this Document document, FileInfo file, int chunkSize = 0);
            public static ImportResult ChunkImportArchive(this FileCabinet fileCabinet, FileInfo file, ImportSettings importSettings);
            public static ImportResult ChunkSynchronize(this FileCabinet fileCabinet, FileInfo file, SynchronizationSettings synchronizationSettings);
            public static Document ChunkUploadDocument(this FileCabinet fileCabinet, FileInfo[] files, int chunkSize = 0);
            public static Document ChunkUploadDocument(this DialogInfo dialog, Document document, FileInfo[] files, int chunkSize = 0);
            public static Document ChunkUploadDocument(this DialogInfo dialog, Document document, FileInfo file, int chunkSize = 0);
            public static Document ChunkUploadDocument(this FileCabinet fileCabinet, Document document, FileInfo[] files, int chunkSize = 0);
            public static Document ChunkUploadDocument(this FileCabinet fileCabinet, Document document, FileInfo file, int chunkSize = 0);
            public static Document ChunkUploadDocument(this FileCabinet fileCabinet, FileInfo file, int chunkSize = 0);
            public static Section ChunkUploadSection(this Section section, FileInfo file, int chunkSize = 0);
            public static ImportResult ImportArchive(this FileCabinet fileCabinet, FileInfo file);
            public static ImportResult ImportArchive(this FileCabinet fileCabinet, FileInfo file, ImportSettings settings);
            public static ImportResult Synchronize(this FileCabinet fileCabinet, FileInfo file, SynchronizationSettings settings);
            public static Document UploadDocument(this FileCabinet fileCabinet, params FileInfo[] file);
            public static Document UploadDocument(this DialogInfo dialog, Document document, params FileInfo[] file);
            public static Document UploadDocument(this FileCabinet fileCabinet, Document document, params FileInfo[] file);
            public static Task<DeserializedHttpResponse<Document>> UploadDocumentAsync(this DialogInfo dialog, Document document, params FileInfo[] file);
            public static Task<DeserializedHttpResponse<Document>> UploadDocumentAsync(this FileCabinet fileCabinet, params FileInfo[] file);
            public static Task<DeserializedHttpResponse<Document>> UploadDocumentAsync(this FileCabinet fileCabinet, Document document, params FileInfo[] file);
            public static Task<DeserializedHttpResponse<Section>> UploadSectionAsync(this Document document, FileInfo file);
        }
    }
    

    Make sure the DocuWare NuGet packages are installed, rebuild your solution, and try again.

    Good luck!
    JoeK
  • RE: Full Text only done in first 100 pages of each doc

    I see now the max number of shots is 10,000, so that is what I am using.

    As far as resetting the full-text information, I click the "Reset" button and just use the defaults on the screen that comes up. It seems to be reindexing a lot of documents, so I think it is re-processing things appropriately.

    Thanks,

    Joe Kaufman

  • RE: Full Text only done in first 100 pages of each doc

    Josef,

    OK, so viewing the document skews the results, which is what I was afraid of...

    So, if I up the number of pages for all full-text indexed cabinets, I have the following questions:
     
    1. How high should (can) I go? can I go 999999, for example?
    2. How do I trigger a rescan of the text shots after I up the limit?
    3. Is this going to bloat textshot data in the database and cause me storage issues? (And I mean beyond the obvious growth due to documents with more than 200 pages having more pages getting processed.)
    Looks like I need to fix up a bunch of file cabinet configurations!

    Thanks,
    Joe Kaufman
  • RE: Full Text only done in first 100 pages of each doc

    Simon,

    I did some further testing...

    I found a file with 274 pages and picked one of those sticker-based numbers, slightly atilt, on page 121. Should be in between the first 100 and last 100 pages. I did a search while viewing the document, and it found the number on page 121.

    Then I thought that perhaps searching for text while viewing forces DocuWare to do a quick full-text scan of ALL pages. So, I found another file with 240 pages, and just viewed a number to search for on page 103. Went back and reset the search, then searched for the number in the "Fulltext" field. It found the document and went straight to page 103 in the viewer.

    Unless DocuWare immediately full-text scans any file that gets viewed, it looks like I have full coverage of all pages, not just the first and last 100, even though our default max. number of shots is still at 100. This is good news (for me), but I can't explain why other folks are stuck at the 100-page limit. I am on DW 6.11, on-premise.

    Thanks,
    Joe Kaufman