Hello,
I made a mistake when i was working on my lotus workflow application. I deleted 9 documents’ cover document 🙂
I created a script to solve this problem and want to share with the world.
Create an agent –> Trigger : On Event / Action Menu Selection , Target : All Selected Documents
Sub Initialize()
Dim oWorkspace As New NotesUIWorkspace
Dim oSession As New NotesSession
Dim oDatabase As NotesDatabase
Dim oCollection As NotesDocumentCollection, oCoverCollection As NotesDocumentCollection
Dim oSelectedDoc As NotesDocument
Dim oOriginalCoverDoc As NotesDocument
Dim oNewCoverDoc As NotesDocument
' Authorization Check
Dim v1 As Variant
v1 = Evaluate ( {@If ( "[NotesDesigner]" *= @UserRoles; 1; 0 )})
If v1 ( 0 ) = 0 Then
MessageBox "You are not authorized !", 48, "Attention !"
Exit Sub
End If
' Authorization Check
Set oDatabase = oSession.CurrentDatabase
Set oCollection = oDatabase.UnprocessedDocuments
' Kontrol
If oCollection.Count = 0 Then Exit Sub
' Kontrol
If oCollection.Count > 1 Then
MessageBox "Please select only 1 (one) Binder Document !", 48, "Attention !"
Exit Sub
End If
' Get Binder Document which has missing cover document
Set oSelectedDoc = oCollection.GetFirstDocument
' YOUR_VIEW -> You can create a view which can contains original binder & cover document (to be source) and binder document which has missing cover document
Const VIEWALIAS = "YOUR_VIEW"
Const TITLE = "Cover Document Selection - to be Copied"
Const PROMPT = "Select an original cover document to be copied !"
Set oCoverCollection = oWorkspace.PickListCollection ( 1, False, oDatabase.Server, oDatabase.FilePath, VIEWALIAS, TITLE, PROMPT )
If oCoverCollection.Count = 0 Then
MessageBox "You have to select a cover document !", 48, "Attention !"
Exit Sub
End If
Set oOriginalCoverDoc = oCoverCollection.GetFirstDocument
If oOriginalCoverDoc.Getitemvalue ( "ACTIVITYIDOS" ) ( 0 ) <> oSelectedDoc.Getitemvalue ( "ACTIVITYIDOS" ) ( 0 ) Then
MessageBox "ACTIVITYIDOS has to be same betweeen selected binder document & selected cover document which'll be copied. !", 48, "Error !"
Exit Sub
End If
Set oNewCoverDoc = oOriginalCoverDoc.Copytodatabase ( oDatabase )
' InstanceOS
oNewCoverDoc.Replaceitemvalue "InstanceOS", oSelectedDoc.Getitemvalue ( "InstanceOS" ) ( 0 )
' BinderDocIDOS
oNewCoverDoc.Replaceitemvalue "BinderDocIDOS", oSelectedDoc.Universalid
oSelectedDoc.Replaceitemvalue "BinderDocIDOS", oSelectedDoc.Universalid
' FolderIDOS
oNewCoverDoc.Replaceitemvalue "FolderIDOS", oNewCoverDoc.Universalid
oSelectedDoc.Replaceitemvalue "FolderIDOS", oNewCoverDoc.Universalid
' INSTANCEIDOS
oNewCoverDoc.Replaceitemvalue "INSTANCEIDOS", oNewCoverDoc.Universalid + "FirstHost"
oSelectedDoc.Replaceitemvalue "INSTANCEIDOS", oNewCoverDoc.Universalid + "FirstHost"
' JOINDOCIDOS
oNewCoverDoc.Replaceitemvalue "JOINDOCIDOS", oSelectedDoc.Getitemvalue ( "ACTIVITYIDOS" ) ( 0 ) + oSelectedDoc.Getitemvalue ( "INSTANCEIDOS" ) ( 0 ) + oNewCoverDoc.Universalid
oSelectedDoc.Replaceitemvalue "JOINDOCIDOS", oSelectedDoc.Getitemvalue ( "ACTIVITYIDOS" ) ( 0 ) + oSelectedDoc.Getitemvalue ( "INSTANCEIDOS" ) ( 0 ) + oSelectedDoc.Universalid
' MainDocIDOS
oNewCoverDoc.Replaceitemvalue "MainDocIDOS", oSelectedDoc.Universalid
' SOURCEDOCIDOS
oNewCoverDoc.Replaceitemvalue "SOURCEDOCIDOS", oNewCoverDoc.Universalid
oSelectedDoc.Replaceitemvalue "SOURCEDOCIDOS", oSelectedDoc.Universalid
Call oNewCoverDoc.Save ( True, False )
Call oSelectedDoc.Save ( True, False )
Messagebox "Done !"
End Sub