Ansichten:

Frage/Verhalten:
DocuWare Fulltext unterstützt nicht jeden Dokumenttyp oder jede Sprache. Aus diesem Grund, können Sie nicht über die DocuWare Fulltext-Suche gefunden werden. Wie kann man dieses Problem beheben?

Antwort/Lösung:
Hierfür bietet DocuWare mit dem Service Pack 1 für die Version 5.1c die Möglichkeit über die GAPI Schnittstelle, externe Fulltext Informationen an DocuWare zu übergeben.
Zuerst muss eine Dokument Objekt erstellt werden, dieses wird mit externen Fulltext Informationen mithilfe der Methode IModifyMetaDataCommand.SetFulltext() gefüllt und danach über die GAPI Schnittstelle abgelegt.

Generell gibt es zwei Möglichkeiten den Fulltext für Dokumente festzulegen:
  • Für nicht befüllte Dokumente
  • Für nicht befüllte Dokument-Sektionen

Fulltext Informationen für das gesamte Dokument erstellen:

//Create your UnfiledDocument and a storageCommand (IFileCabinet Object required)
DocuWare.Gapi.Document.IUnfiledDocument myNewDocument = myGapiClient.GetDocument(filename);
DocuWare.Gapi.Command.FileCabinet.IFileCabinetStorageCommand myStorageCommand = MyUsedFileCabinet.Commands.newStorage();

//Create a ModifyMetaDataCommand (now the whole document is used)
DocuWare.Gapi.Command.Document.IModifyMetaDataCommand myModifyCommand = myNewDocument.Commands.newModifyMetaData();

//Fill the command with the fulltext information
myModifyCommand.SetFulltext(fulltext);

//Execute the command, so that the IUnfiledDocument MetaData is changed
myModifyCommand.Execute();

//Reference the just filled document on the IStorageCommand and execute it, to store the document
myStorageCommand.UnfiledDocument = myNewDocument;
myStorageCommand.Execute();

 

Fulltext Informationen für bestimmte Dokument-Sektionen festlegen:

//Create your UnfiledDocument and a storageCommand (IFileCabinet Object required)
DocuWare.Gapi.Document.IUnfiledDocument myNewDocument = myGapiClient.GetDocument(filename);
DocuWare.Gapi.Command.FileCabinet.IFileCabinetStorageCommand myStorageCommand = MyUsedFileCabinet.Commands.newStorage();

//Reference the ModifyCommand on the according Section of the document
myModifyFulltextCommand = myUnfiledDocument.Sections[0].Commands.newModifyMetaData();

//Now fill the command, with the fulltext, which should be transferred and execute it
myModifyFulltextCommand.SetFulltext(fulltext);
myModifyFulltextCommand.Execute();

//Reference the just filled document on the IStorageCommand and execute it, to store the document
myStorageCommand.UnfiledDocument = myNewDocument;
myStorageCommand.Execute();

Bei der Verwendung dieser Methoden, wird das Dokument im entsprechenden Archive abgelegt und die dazugehörigen Fulltext Informationen in die ftm Tabelle geschrieben.
Bevor dieses Dokument mithilfe der Fulltext-Suche gefunden werden können, müssen die Fulltext Informationen in den Fulltext Katalog geschrieben werden. Dies wird von dem DocuWare Fulltext Workflow durchgeführt. Das heißt, dass dieser Workflow mindestens einmal durchlaufen musste, um die abgelegten Dokumente danach mit der Fulltext-Suche finden zu können.

Wenn Sie ein Dokument, welches bereits von der GAPI mit den dazugehörigen Fulltext Informationen abgelegt wurde nachträglich ändern, wird dieses Dokument während des nächsten Durchlaufs des Fulltext Workflows reindexiert. Dies führt zum Verlust der davor überreichten GAPI Fulltext Informationen.