Autor Thema: DXLImport schlägt wegen Base64-Byte-Stream fehl  (Gelesen 1591 mal)

Offline gossifu

  • Senior Mitglied
  • ****
  • Beiträge: 352
  • Geschlecht: Männlich
  • Dummheit schafft Freizeit
DXLImport schlägt wegen Base64-Byte-Stream fehl
« am: 14.01.10 - 20:13:16 »
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
Immer lustig und vergnügt, bis der A.... im Sarge liegt. ;-)

Offline gossifu

  • Senior Mitglied
  • ****
  • Beiträge: 352
  • Geschlecht: Männlich
  • Dummheit schafft Freizeit
Re: DXLImport schlägt wegen Base64-Byte-Stream fehl
« Antwort #1 am: 14.01.10 - 21:44:33 »
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

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

mfg

Kjeld
Immer lustig und vergnügt, bis der A.... im Sarge liegt. ;-)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz