Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dbCopy As NotesDatabase
Set db = session.CurrentDatabase
filename$ = Left(db.FileName, Len(db.FileName) - 4)
REM Open dxl file named after current database
Dim stream As NotesStream
Set stream = session.CreateStream
If Not stream.Open("c:\dxl\" & filename$ & ".dxl") Then
Messagebox "Cannot open " & filename$,, "Error"
Exit Sub
End If
If stream.Bytes = 0 Then
Messagebox "File did not exist or was empty",, filename$
Exit Sub
End If
REM Create new database named current database + "Copy"
Set dbCopy = New NotesDatabase("", "")
Call dbCopy.Create("", filename$ & "Copy", True)
REM Import DXL into new database
Dim importer As NotesDXLImporter
Set importer = session.CreateDXLImporter(stream, dbCopy)
importer.ReplaceDBProperties = True
importer.ReplicaRequiredForReplaceOrUpdate = False
importer.ACLImportOption = DXLIMPORTOPTION_REPLACE_ELSE_IGNORE
importer.DesignImportOption = DXLIMPORTOPTION_CREATE
Call importer.Process
End Sub
The file generated by the NotesDXLExporter class example can be imported using this code.
Dim session As NotesSession
Dim db As NotesDatabase
Dim stream As NotesStream
Sub Initialize
Set session = New NotesSession
Set db = session.CurrentDatabase
Set stream = session.CreateStream
Call exportDatabase
Call importDatabaseCopy
End Sub
Sub exportDatabase
Dim exporter As NotesDXLExporter
Set exporter = session.CreateDXLExporter
Call exporter.SetInput(db)
Call exporter.SetOutput(stream)
Call exporter.Process
End Sub
Sub importDatabaseCopy
REM Create new database named after current database
Dim dbCopy As NotesDatabase
filename$ = Left(db.FileName, Len(db.FileName) - 4)
Set dbCopy = New NotesDatabase("", "")
Call dbCopy.Create("", filename$ & "Copy", True)
REM Import DXL into new database
Dim importer As NotesDXLImporter
Set importer = session.CreateDXLImporter
Call importer.SetInput(stream)
Call importer.SetOutput(dbCopy)
importer.ReplaceDBProperties = True
importer.ReplicaRequiredForReplaceOrUpdate = False
importer.ACLImportOption = DXLIMPORTOPTION_REPLACE_ELSE_IGNORE
importer.DesignImportOption = DXLIMPORTOPTION_CREATE
Call importer.Process
End Sub
Sub Initialize
Dim session As NotesSession
Dim db As NotesDatabase
Dim nc As NotesNoteCollection
Dim exporter As NotesDXLExporter
Dim importer As NotesDXLImporter
Set session = New NotesSession
Set db = session.CurrentDatabase
Set nc = db.CreateNoteCollection(False)
nc.SelectDocuments = True
Call nc.BuildCollection
REM Set up importer to receive DXL piped from exporter
REM and to re-import the documents back into the
REM current database as copies.
Set exporter = session.CreateDXLExporter(nc)
Set importer = session.CreateDXLImporter(exporter, db)
exporter.Process
End Sub