是的,将文档复制到另一个数据库总是会为目标数据库中的文档创建一个新的 UniversalID。
为避免这种情况,您的 LotusScript 应该像这样工作:
- 在目标数据库中创建新文档
CopyAllItems
从源文档到目标文档
- 将相同的 UniversalID 设置为目标文档
targetDoc.UniversalID = sourceDoc.UniversalID
- 保存目标文档
这样,目标文档与源文档具有相同的 UniversalID,并且文档之间的链接也应该在目标数据库中工作。
这是处理选定文档的代理的示例:
Dim session As New NotesSession
Dim dbSource As NotesDatabase
Dim dbTarget As NotesDatabase
Dim col As NotesDocumentCollection
Dim docSource As NotesDocument
Dim docTarget As NotesDocument
Set dbSource = session.Currentdatabase
Set dbTarget = session.Getdatabase(dbSource.Server, "YourTargetDatabase.nsf", false)
Set col = dbSource.Unprocesseddocuments
Set docSource = col.Getfirstdocument()
While Not docSource Is Nothing
Set docTarget = dbTarget.Createdocument()
Call docSource.Copyallitems(docTarget, true)
docTarget.UniversalID = docSource.UniversalID
Call docTarget.save(True, False)
Set docSource = col.Getnextdocument(docSource)
Wend