You know the situation. CONVERT task has deleted some of private folders in the mail database because of a missing flag, "Prohibit design refresh." How do you recover them easily? It simple, the provided LotusScript coded agent will restore them, comparing the list of private folders in the stricken server (current) database and its local replica -- backup of the database.
Code: Sub Initialize
Dim ss As New NotesSession
Dim uiw As New NotesUIWorkspace
Dim cdb As NotesDatabase
Dim replika As New NotesDatabase("", "")
Dim doc As NotesDocument
Dim coll As NotesViewEntryCollection
Dim ventry As NotesViewEntry
Dim cfolder As String
Dim cview As NotesView
Dim slozka List As Integer
Dim n As Integer
Set cdb = ss.CurrentDatabase
If Not replika.OpenByReplicaID( "", cdb.ReplicaID) Then
Messagebox "Local replica was not found!"
Exit Sub
End If
n = 1
' List of existing folders
Forall s In cdb.Views
If s.isfolder Then
If Left$(s.name, 1) <> "(" Then
slozka(s.name)=n
n = n + 1
End If
End If
End Forall
' List of folders in local replica
Forall s In replika.Views
If s.isfolder Then
If Left$(s.name, 1) <> "(" Then
If Iselement(slozka(s.name)) Then
Else ' lost folder
Set coll = s.AllEntries
Print "Restore: " & s.name, Cstr
(coll.Count) & " documents."
If coll.Count > 0 Then
Call cdb.EnableFolder( s.name)
Set ventry = coll.getFirstEntry
While Not ventry Is Nothing
If ventry.IsDocument
Then
Set doc =
cdb.getdocumentbyunid( ventry.UniversalID)
If Not doc Is
Nothing Then
Call
doc.PutInFolder( s.name)
End If
End If
Set ventry =
coll.GetNextEntry( ventry)
Wend
End If
End If
End If
End If
End Forall
End Sub
Do you have comments on this tip? Let us know.
This tip was submitted to the SearchDomino.com tip exchange by member Milos Safarik. Please let others know how useful it is via the rating scale below. Do you have a useful Notes/Domino tip or code to share? Submit it to our monthly tip contest and you could win a prize and a spot in our Hall of Fame.
This was first published in February 2005