当前位置 : 主页 > 手机开发 > 无线 >

Lotus Notes 7 – 复制/移动文档. (父和响应文档)而不更改UNID?

来源:互联网 收集:自由互联 发布时间:2021-06-10
我有2个数据库:比如说dbA和dbB.实际上,dbB是dbA的“子”数据库,因为它包含的表单/ views / frameset / etc都在dbA中. 我现在想要从dbA的一些视图(比如说vwA)复制一些8K文档到dbB的相同视图(vwA)
我有2个数据库:比如说dbA和dbB.实际上,dbB是dbA的“子”数据库,因为它包含的表单/ views / frameset / etc都在dbA中.

我现在想要从dbA的一些视图(比如说vwA)复制一些8K文档到dbB的相同视图(vwA). THese 8k包含父文档和子文档,在dbA中列出了OK,带有@Text(@UniqueDocumentID).我刚做了一个测试,复制了一个父文档及其响应,并粘贴在第二个数据库中,但不幸的是,两个文档之间没有连接……我猜UNID已经改变了……

有什么解决方案吗?谢谢你的时间.

是的,将文档复制到另一个数据库始终会为目标数据库中的文档创建新的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
网友评论