Migration früherer Versionen

Checkliste

[accantum] DMS 7.0 wurde auf dem aktuellen Stand der Technik entwickelt und weist daher einige Neuerungen gegenüber den früheren Versionen (<= 6.x) auf.

Die fachlichen Konzepte wurden vereinheitlicht und unter Aspekten der Stabilität, Hosting-Anforderungen und Performance-Optimierung überarbeitet. Bestehende Archive können ohne Probleme auf [accantum] DMS 7.0 migriert werden, jedoch unter Beachtung folgender Punkte:

  1. Wir empfehlen, die frühere Version von [accantum] DMS (<V7.0) VOR der Installation von [accantum] DMS V7.0 zu deinstallieren oder wenigstens für die zu migrierenden Archive zu deaktivieren. Bitte stellen Sie sicher, dass die zu migrierende Datenbank nicht verwendet wird.

  2. Vor der Migration von Archiv-Datenbanken von einer Version <V6.0 empfehlen wir dringend je ein Datenbank-Backup, da die Migration eines Archivs NICHT wiederholt werden kann.

  3. Benutzereinstellungen aus der Silverlight-Anwendung können nicht in die HTML 5 GUI übernommen werden.

  4. Für Versionen < 5.0:      Die Migration kann je nach Größe der Datenbank u.U. einige Zeit in Anspruch nehmen, da wir den Empfehlungen von Microsoft folgen und die neuen (effizienteren) Datentypen für Zeichenfolgen und Binärdaten ab SQL 2005 verwenden. Daher ist eine Migration einiger Tabellen sehr zeitaufwendig. Dies sollte bei der Planung der Umstellung berücksichtigt werden.

  5. Für Versionen < 5.0:      Die bestehenden Binärdaten, welche in einer SQL-Datenbank befindlich sind, werden nicht automatisch migriert, um den Zeitrahmen nicht zu sprengen. Diese Dateien stehen im Archiv selbstverständlich wieder zur Verfügung und können ggf. zu einem späteren Zeitpunkt manuell migriert werden. Gerne unterstützen wir Sie bei der Migration. Binärdaten auf Festplatte bzw. WORM müssen nicht migriert werden.

 

Skripten

Migration von Seiteninformationen bei PDF-Dokumenten (bei Migration von V4.3 oder früher)

PDF-Dokumente, die mit [Accantum] vor der Version 5.0 archiviert wurden, besitzen keine Seiteninformationen.

Über ein SQL-Skript können diese jedoch teilweise nachträglich erstellt werden. Ein nachträgliches Erzeugen der Seiten-Vorschaubilder ist nicht möglich.

Stellen Sie vor Ausführung des Skripts sicher, dass Sie über eine Datenbanksicherung verfügen.

Zum Ausführen des Skripts gehen Sie wie folgt vor:

  1. Öffnen Sie das Microsoft SQL Server Management Studio

  2. Verbinden Sie sich mit dem SQL-Server auf dem sich die [accantum]- Datenbank befindet. Verwenden Sie hierzu einen Benutzer, der über erhöhte Berechtigungen verfügt (z.B. sa)

  3. Öffnen Sie die [accantum]-Datenbank

  4. Öffnen Sie eine neue Abfrage

  5. Kopieren Sie folgendes Skript in das Abfragefenster     

 

IF Exists(SELECT * FROM sys.objects where name='accfn_SplitOCRText') DROP FUNCTION dbo.accfn_SplitOCRText GO CREATE FUNCTION accfn_SplitOCRText(@OcrText varchar(max)) RETURNS @ParsedList table ( PageIndex int, OcrText nvarchar(max)) AS BEGIN IF @OcrText IS NULL RETURN DECLARE @Value nvarchar(max) DECLARE @CurrPos int DECLARE @NextPos int DECLARE @Len int DECLARE @Page‘ndex int SET @Cur’Pos=1 SET @Len=LEN(@OcrText) SET @NextPos = CHARINDEX('{{N-E-W P-A-G-E}}', @OcrText) SET @PageIndex=1 BEGIN WHILE @CurrPos>0 BEGIN IF @NextPos>0 SET @Value = LTRIM(RTRIM(SUBSTRING(@OcrText,@CurrPos, @NextPos-@CurrPos))) ELSE SET @Value = LTRIM(RTRIM(SUBSTRING(@OcrText,@CurrPos, @Len-@CurrPos+1))) INSERT INTO @ParsedList (PageIndex,OcrText) Values (@PageIndex,@Value) IF‘@NextPos = 0 BREAK’ SET @CurrPos=@NextPos+18 SET @NextPos = CHARINDEX('{{N-E-W P-A-G-E}}', @OcrText, @CurrPos) SET @PageIndex=@PageIndex+1 END END RETURN END GO GRANT SELECT ON OBJECT::dbo.accfn_SplitOCRText TO public GO DECLARE @Tab TABLE(OCid uniqueidentifier, NCid uniqueidentifier DEFAULT(newid()), SortOrder int, OcrText nvarchar(max)) INSERT INTO @Tab(OCid,SortOrder, OcrText) SELECT c.ContentID,l.PageIndex,l.OcrText FROM tbDocument d INNER JOIN tbDocumentContent c ON d.DocID=c.DocID INNER JOIN tbOcrInfo o ON c.ContentID=o.ContentID CROSS APPLY accfn_SplitOCRText(o.OcrText) l WHERE d.DocType=3 AND c.ContentType=0 AND c.AnalysisStatus IN (2,4) AND NOT EXISTS(SELECT ContentID FROM tbDocumentContent c2 WHERE d.DocID=c2.DocID AND c2.ContentType=16) INSERT INTO tbDocumentContent (ContentID, DocID, BinaryID, ContentType, SortOrder, ContentDescription, OutSourcePath, FileIndex, Rotation, ContentVersion, VersionRemark, AnalysisStatus, AnalysisDate, AnalysisError, Deleted, CreationUser, CreationDa’’,’’odifyUser, ModifyDate) SELECT o.’’id,c.DocID,c.Bina’’ID,16,o.SortOrder,'','',o.SortOrder,0,c.ContentVersion,'', 2, GETDATE(),'',c.Deleted,c.CreationUser,GETDATE(),c.CreationUser,GETDATE() FROM @Tab o INNER JOIN tbDocumentContent c ON c.ContentID=o.OCid INSERT INTO tbOcrInfo(ContentID,OcrText) SELECT o.NCi’,o.OcrText FROM @T’b o GO IF Exists(SELECT * FROM sys.objects where name='accfn_SplitOCRText') DROP FUNCTION dbo.accfn_SplitOCRText GO

Je nach Datenmenge / Anzahl Dokumente kann die Ausführung des Skripts mehrere Minuten / Stunden dauern.

Verwandte Themen