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:
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:
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