DXLImport von DB-Eigenschaften

  • Hallo, ich möchte über den DXL-Import gezielt Eigenschaften setzen, wie ShowInOpenDialog.


    Das klappt eigentlich recht gut. Nur werden die Werte, die ich NICHT setzen will, auch verändert, z.B. alle erweiteten DB-Eigenschaften und wie die DB zu öffnen ist ect.


    Dim strmDXL As NotesStream
    Set strmDXL = s.CreateStream


    strmDXL.WriteText { < ?xml version='1.0' encoding='utf-8'? > < database xmlns='http://www.lotus.com/dxl' version='8.5' maintenanceversion='1.0' showinopendialog='true' > < /database>}


    Set importer = s.CreateDXLImporter(strmDXL,db)
    importer.ReplaceDBProperties = True


    importer.Process




    Gibt's einen Weg gezielt zu importieren ohne andere Werte zu überschreiben?



    Gruß
    M.

  • Warum per DXL und nicht simpel und einfach via Script?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hehe, das wäre prima. Aber einige Eigenschaft lassen sich halt nicht ändern. Z.B. ShowInOpenDialog.


    Es gibt zwar irgendeine LS-Erweiterung mit API-Calls auf Win32. Das läuft leider nicht auf AIX im Server-Kontext.


    Im Server-Kontext muss es jedoch laufen, da ein RunOnServer-Agent mit Sicherheitsstufe 3 die Aktion durchführt.


    Zurzeit bin ich gerade am testen, ob ich die DB-Eigenschaften erst einmal herauslese im XML-Formet, die entsprechenden Stellen ändere und dann wieder importiere.

  • Geht auch per Script:


    Die meisten Datenbankeigenschaften befinden sich im Designelement des Icons.
    Es gab da in der LDD mal eine ziemlich ausführliche Beschreibung was man wie setzen muss.
    Such doch mal dort danach

  • Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Das ist ein guter Hinweis!


    Interessanterweise sind die Angaben, die per XML-Export und die im Icon stecken nicht deckungsgleich. ShowInOpenDialog lässt sich leider auch nicht über die $Flags ändern :(.


    Zurzeit läuft mein Programm wie folgt
    1. $Flags sichern
    2. DB-Properties per XML in String exportieren
    3. String anpassen
    4. String als XLM wieder einlesen
    5. $Flags rücksichern.


    Dabei bleiben alle Settings erhalten - bis auf: "Allow Document locking". Da muss ich noch Lösung finden.




    '$-Flags sichern
    Set doc = db.GetDocumentByID("FFFF0010")
    flags = doc.~$Flags(0)


    'XML-Export
    Set nc = db.CreateNoteCollection(False)
    nc.SelectAllDesignElements False
    nc.BuildCollection
    Set exporter = s.CreateDXLExporter
    xml_string = exporter.Export(nc)

    'Ändern
    If InStr(xml_string,"showinopendialog='true'") > 0 Then
    ElseIf InStr(xml_string,"showinopendialog='false'") > 0 Then
    xml_string = Join(Split(xml_string, "showinopendialog='false'"),"showinopendialog='true'")
    Else
    xml_string = Join(Split(xml_string, "title='"),"showinopendialog='true' title='")
    End If


    'XML-ReImport
    Set importer = s.CreateDXLImporter
    importer.ReplaceDBProperties = True
    importer.Import xml_string,db

    'Flags zurückschreiben
    doc.~$flags = flags
    Call doc.Save (True, False)