Autor Thema: Import dxl Dokumente in die Mailbox  (Gelesen 2344 mal)

Offline muR

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Männlich
  • Rock my life
Import dxl Dokumente in die Mailbox
« am: 29.11.05 - 10:59:18 »
Hallo,

ich möchte eine Email die zuvor als dxl gespeichert wurde wieder in die Mailbox zurückholen. Der Import in eine neue leere Datenbank hab ich hinbekommen. nur zur Mailbox funzt es nicht.

Mein Soureccode:
Sub Initialize
   Dim session As New NotesSession
   'Dim dbdir As NotesDbDirectory
   Dim db As NotesDatabase
   Dim stream As NotesStream
   Dim importer As NotesDXLImporter
   
   Set db = session.CurrentDatabase
   filename$ = Left(db.FileName, Len(db.FileName) - 4)
   
 REM Open xml file named after current database
   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 Import DXL into database
   Set importer = session.CreateDXLImporter
   importer.ReplaceDBProperties = True
   importer.ReplicaRequiredForReplaceOrUpdate = False
   importer.ACLImportOption = DXLIMPORTOPTION_REPLACE_ELSE_IGNORE
   importer.DesignImportOption = DXLIMPORTOPTION_CREATE
   Call importer.Import(stream, db)
   Call stream.Close
   
'Document in einen andere Ordner verschieben
   mynoteID$ = importer.GetFirstImportedNoteID( )
   Set importeddocument = db.getdocumentByID(mynoteID$)
   Call importeddocument.putInFolder("Easy restore")
End Sub


Als Fehlermeldung erhalte ich:
"DXL importer operation failed"

In der Notes Hilfe sind die Beispiele so angegeben. Was läuft hier falsch?

Zum Speichern der Email als dxl benutze ich folgendes Script:
Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
  REM Open xml file named after current database
   Dim stream As NotesStream
   Set stream = session.CreateStream
   path$ = "c:\dxl\"
   filename$ = Left(db.FileName, Len(db.FileName) - 3) & "dxl"
   filename$ = path$ & filename$
   If Not stream.Open(filename$) Then
      Messagebox "Cannot open " & filename$,, "Error"
      Exit Sub
   End If
   Call stream.Truncate
   
   Dim nc As NotesDocumentCollection   
   Set nc = db.unprocessedDocuments
   
  REM Export note collection as DXL
   Dim exporter As NotesDXLExporter
   Set exporter = session.CreateDXLExporter(nc, stream)
   exporter.ConvertNotesBitmapsToGIF = True      'Bilder als GIF exportieren
   Call exporter.Process
End Sub


Vielleicht weiß jemand weiter?
Danke - Gruß muR


Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Import dxl Dokumente in die Mailbox
« Antwort #1 am: 29.11.05 - 16:27:32 »
Interessante Frage.

Die Fehlermeldung ist natürlich sehr spärlich. Es kann sein, dass es daran liegt, dass die Referenz zur DTD nicht gefunden wird.
In einer zweiten Zeile der DXL Datei sollte ein Eintrag dazu vorhanden sein:
z.B. so: <!DOCTYPE Archiv-Interface SYSTEM "archiv.dtd">
Versuch die DTD in dein Exportverzeichnis zu legen, so dass sie von dem Link erreicht wird.

Wie gesagt nur eine Vermutung.

Axel

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Import dxl Dokumente in die Mailbox
« Antwort #2 am: 29.11.05 - 22:38:57 »
hmm, da wäre auch noch interessant welche Notes-Version Du einsetzt, AFAIK gab es in ersten 6er Versionen noch vermehrt Probleme mit DXL.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline muR

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Männlich
  • Rock my life
Re: Import dxl Dokumente in die Mailbox
« Antwort #3 am: 30.11.05 - 07:26:55 »
Hallo,
ich bin durch rumprobieren und Zeitschrtiften lesen doch noch auf eine Lösung gestoßen:
   
   ...
   REM Import DXL into new database
   Set importer = session.CreateDXLImporter
(stream, db)
   importer.ReplaceDBProperties =
False
   importer.ReplicaRequiredForReplaceOrUpdate = False   
   importer.ACLImportOption =
1   ' DXLIMPORTOPTION_IGNORE
   importer.DesignImportOption =
1   ' DXLIMPORTOPTION_IGNORE
   
Call importer.Process
   Call stream.Close
   ...


Bin mir jedoch nicht sicher ob die Umstellung auf "Call importer.Process" und Zuweisung des stream weiter oben unbedingt sein mußte. JEdenfalls geht es jetzt.
Werde noch einige Test damit machen, bin aber mit dem Ansatz sehr zufrieden. Die Mail wird als dxl Datei auf die Platte geschrieben und kann über den Agenten wieder in die Mailbox in einen angegeben Ordner zurück geholt werden.
Gruß muR
« Letzte Änderung: 30.11.05 - 07:31:37 von muR »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz