[Last Call] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2262
  • Last Modified:

merging lotus notes archives databases

I have two lotus notes 7.0 archive databases that I would like to merge together. Is this even possible
  • 5
  • 3
2 Solutions
Is design of those two databases the same (only different documents)?
If yes, you can copy documents from the source db and delete it afterwards.
You'll have to have view that shows all docs of that database so you can do it in one step:

   Select all docs (ctrl+a)
   Copy (ctrl+c)

   Open destination db and paste (ctrl+v).

If there are response documents in source db you'll have to be careful, because pasting the response doc while you're positioned on main doc makes them responses to that main doc. To avoid that - select category in any view and then paste. If all docs are main docs then you don't have to worry about this.

Maybe it's best to zip the source db instead of deleting it.
btbsjtremperAuthor Commented:
the design is the same, but there are a ton of folders in each archive that have been created. those won't be carried over correct?
Here's my code on SearchDomino that handles folders:

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Have you succeeded in moving those documents?
Ask if you got stuck...
btbsjtremperAuthor Commented:
no luck so far
What happened?

Go step by step and ask specific questions.
btbsjtremperAuthor Commented:
i'm not paying for a service on that website, but i will give you points for the first answer
Thanks for the points.
You don't have to pay to use SearchDomino, just register.

Nevertheless, here's the code:
  Move folders from one Notes database to another using a LotusScript agent
  Marko Bonaci
  When you run the LotusScript code below, it will ask you which folders you want to move from a current Notes/Domino database 
  and to which database you want them moved.
Sub Initialize
    Dim s As New NotesSession
    Dim w As New NotesUIWorkspace
    Dim dbSource As NotesDatabase, dbDest As NotesDatabase
    Dim source As NotesView, dest As NotesView
    Dim vc As NotesViewEntryCollection
    Dim docDest As NotesDocument
    Dim ve As NotesViewEntry
    Dim folders() As String
    Dim i As Integer
    Dim ret, rez
    Set dbSource = s.CurrentDatabase
    Forall v In dbSource.Views
        If v.IsFolder Then
            i = i + 1
            Redim Preserve folders( i - 1 ) As String
            folders( i - 1 ) = v.Name
        End If
    End Forall
    ret = w.Prompt( PROMPT_OKCANCELLISTMULT, "Folder selection", "Select one or more folders to move.", folders(0), folders )
    If Isempty( ret ) Then
        Messagebox "User canceled", , "Folder not selected"
        Exit Sub
        Forall f In ret    
            Set source = dbSource.GetView( f )
            Set vc = source.AllEntries
            rez = w.Prompt( 13, "Database selection", 
"Choose the database to move the folder to" )
            If Isempty( rez ) Then Messagebox "User canceled", , 
"Database not selected" : Exit Sub
            Set dbDest = s.GetDatabase( rez(0), rez(1), False )
            Call dbDest.EnableFolder( f )
            Set ve = vc.GetFirstEntry
            Do Until ve Is Nothing
                Set docDest = ve.Document.CopyToDatabase( dbDest )
                Call docDest.PutInFolder( f )
                Set ve = vc.GetNextEntry( ve )
            Call vc.RemoveAllFromFolder( f )
            Call source.Remove
        End Forall
    End If
End Sub
Here's a quick add-on that will allow you to copy the design of the folder as well.
Sub Initialize
...<snip> ...
'Code added
Dim col As NotesViewColumn
... <snip> ...
Set dbDest = s.GetDatabase
( rez(0), rez(1), False )
Call dbDest.EnableFolder( f )
'Code added
Set dest = dbDest.GetView( f )
'Copy the columns from the 
source to the destination folder 
While dest.ColumnCount > 0
Call dest.RemoveColumn(dest.ColumnCount)
For i = 0 To source.ColumnCount-1
Set col = dest.CopyColumn(source.Columns(i), i+1) 
'Code added
... <snip> ...
End Sub

Open in new window


Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now