Autor Thema: DXL Importer / Exporter  (Gelesen 1619 mal)

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
DXL Importer / Exporter
« am: 17.12.04 - 11:33:30 »
Hallo,

kurz vor Weihnachten noch ein kleines Problem.

Ich muss in Ansichten den Hintergrund und die Schriftart der Aktionsleiste ändern. Da das nicht nur eine Datenbank betrifft und eine der Datenbanken weit über 100 Ansichten besitzt wäre mir da eine programmierte Lösung recht.

Also, dachte ich mir, exportiere die Ansichten per DXL, mache mit einem Text-Editor einen globales "Suchen und Ersetzen" (z. B. im XML Cooktop) und importiere das Ganze wieder. Pustekuchen, manchmal klappts, meistens nicht.

Die Meldung heißt "Object or data is corrupt"
Das passiert sogar, wenn ich die Daten nur exportiere und ohne Änderung wieder importiere.

Ach ja, noch etwas: Wenn der Import klappt, dann zerbröselt es die Umlaute. Betrifft zwar nur wenige Ansichten, ist aber trotzdem ärgerlich. Kann man etwas dagegen machen?

Vielleicht gibt's ja noch alternative Lösungen, aber irgend wie stehe ich auf dem Schlauch.

Hier mal den auf das wesentliche reduzierte Code für den Export und Import:

Der Export-Agent:
Code
Sub Initialize
	Dim	session		As New NotesSession
	Dim	db			As NotesDatabase
	Dim	noteCol		As NotesNoteCollection
	Dim	exporter		As NotesDXLExporter
	Dim	stream		As NotesStream
	
	Const FILENAME		= "C:\test.xml"
	
	Set	db			= session.CurrentDatabase
	
	Set	noteCol		= db.CreateNoteCollection(False)
	noteCol.SelectViews	= True
	Call noteCol.BuildCollection
	
	Set	stream		= session.CreateStream
	If (Not(stream.Open(FILENAME))) Then Msgbox "Datei konnte nicht erstellt werden!",,"Fehler" : Exit Sub
	Call stream.Truncate
	
	Set	exporter		= session.CreateDXLExporter(noteCol, stream)
	Call exporter.Process()
End Sub

Und der Import-Agent:
Code
Sub Initialize
	Dim	session		As New NotesSession
	Dim	db			As NotesDatabase
	Dim	noteCol		As NotesNoteCollection
	Dim	importer		As NotesDXLImporter
	Dim	stream		As NotesStream
	
	Const FILENAME		= "C:\test.xml"
	
	Set	db			= session.CurrentDatabase
	
	Set	stream		= session.CreateStream
	If (Not(stream.Open(FILENAME))) Then Msgbox "Datei konnte nicht geöffnet werden!",,"Fehler" : Exit Sub
	If (stream.Bytes = 0) Then Msgbox "Die Datei ist leer!",,"Fehler" : Exit Sub
	
	On Error Goto Fehler
	
	Set	importer		= session.CreateDXLImporter(stream, db)
	importer.DesignImportOption = DXLIMPORTOPTION_CREATE
	Call importer.Process()
	Exit Sub
	
Fehler:
	Msgbox importer.Log,,"Fehler"
	Resume Next
End Sub

Ein Unterschied zwischen "test.xml" und "test.dxl" scheint wohl nicht zu existieren und es gibt die gleichen Fehler.

Vielleicht hat ja jemand eine Idee. Bin für jeden Tipp dankbar.

Viele Grüße,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: DXL Importer / Exporter
« Antwort #1 am: 20.12.04 - 12:39:48 »
schau bei Wflamme nach. Der hat da eine schöne Lösung für dein Problem gezeigt.

Thomas
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: DXL Importer / Exporter
« Antwort #2 am: 21.12.04 - 20:24:29 »
Hallo Thomas,

super Tipp. Dauerte zwar ein Weilchen, bis ich wusste, was Du meinst, aber das ist genau das was ich brauche.

Vielen Dank,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz