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:
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.
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.
Benutzereinstellungen aus der Silverlight-Anwendung können nicht in die HTML 5 GUI übernommen werden.
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.
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:
Öffnen Sie das Microsoft SQL Server Management Studio
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)
Öffnen Sie die [accantum]-Datenbank
Öffnen Sie eine neue Abfrage
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