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