Ich nochmal...
ich hab mein Problem jetzt soweit gelöst, Code steht unten, ABER ich habe es nicht hinbekommen, das ich nur das Richtextfeld Body aus dem alten Dok bekommen habe, sondern ich musste (aus Unkenntnis wie anders) das ganze alte Doc in das "Content"-Feld der neuen DB hauen. Damit habe ich zwar alles erschlagen, alle Attachments, allen Text usw., aber wirklich befriedigen tut mich dieser Weg nicht. Zum einen hab ich nu viel Müll im Content-Feld, zum anderen hat das kopieren bei 360 Docs mal knappe 4 Min gedauert - performant ist also was anderes... (oder irre ich mich da)
Wie müsste ich vorgehen, wenn ich wirklich nur das komplette RT-Feld Body (mit allen Attachments, Text, etc.) in das neue RT-Feld kopieren wollte?
Mein Code:
Dim...
Set SourceDB = session.CurrentDatabase
Set DestinationDB = session.GetDatabase(SourceDB.Server,"IT\it-kb.nsf")
Set coll = SourceDB.UnprocessedDocuments
Set docOld = coll.GetFirstDocument()
counter = 0
Do While Not docOld Is Nothing
Set docNew = New NotesDocument(DestinationDB)
docNew.Form = "Documentation"
docNew.Title = docOld.Subject
docNew.CreatedBy = docOld.From
docNew.CreatedOn = docOld.Date
docNew.LastModifiedBy = docOld.LastEditor
Set rtitem = New NotesRichTextItem(docNew,"Content")
Call docOld.RenderToRTItem(rtitem)
splitPart1 = Strtoken(docOld.getItemValue("Categories")(0), "\", 1)
splitPart2 = Strtoken(docOld.getItemValue("Categories")(0), "\", 2)
If splitPart2 = "" Then
splitPart2 = splitPart1
splitPart1 = "!! Kontrollieren !!"
End If
docNew.Category = splitPart1
docNew.SubCategory = splitPart2
Call docNew.Save(True,True)
Set docOld= coll.GetNextDocument(docOld)
counter = counter + 1
Loop
Msgbox( counter & " Dateien kopiert!")