So ich brauche mal wieder einen Kognitiven-Anstoss
Ich habe ein DesignElement per DXL-Exporter exportiert und möchte dies nun in einer anderen DB erstellen.
Nun habe ich ein bisschen die Suche gequält und bin auch schon soweit, dass ich die NotesDXLImporter-Klasse brauche
Habe dann folgenden Code getippert :
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim streamer As NotesStream
Dim dxlImporter As NotesDXLImporter
Dim dbTarget As NotesDatabase
Dim varChoice As Variant
varChoice = ws.Prompt(13,"Choose Database","Please select the Target Database",0,0)
If Isarray(varChoice) Then
Set dbTarget = s.GetDatabase(varChoice(0), varChoice(1))
If Not dbTarget.IsOpen Then
Call dbTarget.Open(dbTarget.Server,dbTarget.FilePath)
End If
If Not dbTarget.IsOpen Then
Msgbox "Konnte die angebene Datenbank nicht finden" , 16 , "Fehler"
Exit Sub
End If
Set dxlImporter = s.CreateDXLImporter(newAgent)
dxlImporter.DesignImportOption = DXLIMPORTOPTION_CREATE
Call dxlImporter.SetOutput(newAgent)
Call dxlImporter.Process
newAgent ist eine Konstante
FehlerMeldung ist die folgende :
Set dxlImporter = s.CreateDXLImporter(newAgent)
dxlImporter.DesignImportOption = DXLIMPORTOPTION_CREATE
Call dxlImporter.SetOutput(dbTarget)
Call dxlImporter.Process
So müsste das schon ein bisschen eher hinkommen
So habe noch folgende Version :
Set dxlImporter = s.CreateDXLImporter()
dxlImporter.DesignImportOption = DXLIMPORTOPTION_CREATE
Call dxlImporter.Import(strDXL,dbTarget)
auch nicht lauffähig
Du musst das pipelinen.
Beispiel für import-domParser-export Pipeline.
Der exporter bekommt eine Node-Collection (hier das Design-Element Datenbankscript).
Das wird durch den Dom Parser gejagt, wo es editiert werden kann.
Am Ende wird das Designelement in die Datenbank importiert.
Set nc = dbUmzug.CreateNoteCollection(False)
nc.SelectDatabaseScript = True
'Pipeline creation
Set exporter = session.CreateDXLExporter
Set parser = session.CreateDOMParser
Set importer = session.CreateDXLImporter
Call exporter.SetInput(nc)
Call exporter.SetOutput(parser)
Call parser.SetOutput(importer)
Call importer.SetOutput(dbUmzug)
importer.ReplicaRequiredForReplaceOrUpdate = False
importer.DocumentImportOption = DXLIMPORTOPTION_IGNORE
importer.DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE
On Event PostDOMParse From parser Call PostDOMParseAdd
' die Funktion PostDomParseAdd wird aufgerufen, wenn das DXL vom Dom Parser voll geparsed und als DOM-Modell dargestellt ist. In der Funktion können Nodes verändert werden.
Call Exporter.Process