Domino 9 und frühere Versionen > ND7: Entwicklung
DXLImport schlägt wegen Base64-Byte-Stream fehl
(1/1)
gossifu:
Hallo zusammen,
ich möchte eine Mail per DXL exportieren und dann wieder importieren.
Diese Mail enthält viele Sachen Bas64 encoded (Anhänge, MIME-Felder usw.)
Warum exportiert Notes die Dinge auf die eine Art und kann dann beim Import nischt mehr damit anfangen?
Fehlermeldung:
<?xml version='1.0'?>
<DXLImporterLog>
<error id='6936'>Base64-Byte-Stream enthält ungültige Daten oder ist zum Speichern in einem einzigen Dokumentenelement zu groß
</error>
<error>DXL importer operation failed</error>
</DXLImporterLog>
Hatte jemand schonmal das Problem?
mfg
Kjeld
gossifu:
Wenn ich das ohne Export in eine Datei mache, also wenn ich den DXLExport in einen String exportiere und dann dem Import einen String übergebe, dann klappt es ohne Fehlermeldung:
--- Code: ---Sub Initialize
On Error Goto errh
Dim s As New NotesSession
Dim db As NotesDatabase
Dim exporter As NotesDXLExporter
Dim importer As NotesDXLImporter
Dim docxml As String
Set db = s.CurrentDatabase
Dim doc As NotesDocument
Set doc = s.DocumentContext
Set exporter = s.CreateDXLExporter
docxml = exporter.Export(doc)
Set importer = s.CreateDXLImporter(docxml,db)
importer.DocumentImportOption = DXLIMPORTOPTION_CREATE 'Altes Dokument wird ersetzt, NoteID und UNID werden beibehalten
Call importer.Import
raus:
Exit Sub
errh:
Msgbox Error$ & Erl
Resume raus
End Sub
--- Ende Code ---
Sobald aber ein Stream mitspielt, dann... :-:
Reiner Importagent:
--- Code: ---Sub Initialize
On Error Goto errorhandler
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim stream As NotesStream
Set stream = session.CreateStream
If Not stream.Open("C:\dxl\datei7.xml", "ISO-8859-1") 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
Dim importer As NotesDXLImporter
Set importer = session.CreateDXLImporter(stream, db)
importer.DocumentImportOption = DXLIMPORTOPTION_CREATE
Call importer.Process
raus:
Exit Sub
errorhandler:
Msgbox importer.Log
Resume raus
End Sub
--- Ende Code ---
mfg
Kjeld
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln