I received an incident that some documents where removed from an application in production. Since it was not sure when the documents where deleted and what other changes have occured in the application the quickest way was to quickly copy the documents from the recovery database back into the production database.
Unfortunately the documents are being linked on our intranet so a copy and paste action would modify their universal ids.
This code will reset the universal ID to the one of the original even though a copy is being made via an agent:
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim destinationDb As New NotesDatabase( “ServerName”, “directory\application.nsf” )
Dim uiView As NotesUIView
Set uiView = ws.Currentview
Dim dc As NotesDocumentCollection
Set dc = uiView.Documents
Dim orgDoc As NotesDocument
Dim newDoc As NotesDocument
Dim junkUNID As String
Dim dontWantThisDoc As NotesDocument
Set orgDoc = dc.GetFirstDocument
Do Until (orgDoc Is Nothing)
Set newDoc = orgDoc.CopyToDatabase(destinationDb)
junkUNID = newDoc.UniversalID
newDoc.UniversalID = orgDoc.UniversalID
Set dontWantThisDoc = destinationDb.GetDocumentByUNID(junkUNID)
‘Call dontWantThisDoc.Remove(True)
Set orgDoc = dc.GetNextDocument(orgDoc)
Loop
End Sub