DBDesign-Update durch Kopieren von Gestaltungs-Dokumente

  • Hallo,


    ich habe folgendes Problem:


    Ich habe eine Design-Update Datenbank erstellt (Lauffähigkeit unter Notes 4.6.X ist Voraussetzung), mit deren Hilfe ich unseren Kunden das Einspielen von Bugfixes bzw. Updates für unsere Anwendungen erleichtern möchte. (Unsere Anwendungen bestehen meist aus mehreren Modulen und ein Schablonenwechsel etc. stellt für den Kunden immer einen hohen Arbeitsaufwand dar, außerdem können bei so einem automatischen Update auch gleich weitere Konfigurationen innerhalb der Anwendung per dialog vorgenommen werden). Diese Datenbank ersetzt u. a. auf Knopfdruck das Design der bestehenden Produktivdatenbanken mit dem Design der Schablonendatenbanken. Die Schablonendatenbanken werden in einem Konfigurationsdokument (Profildokument) verwaltet. Der Zugriff und Austausch der Designdokumente erfolgt über die Notes-API. Es werden zuerst die vorhandenen Gestaltungs-Dokumente pro Datenbank gelöscht und dann die neuen Gestaltungsdokumente aus der entsprechenden Schablone hineinkopiert, dann erfolgen weitere Konfigurationen im Dialog.


    Alles funktioniert soweit fantastisch, nur habe ich ein Problem mit Ansichten die per Mausklick auf eine Spalte in eine andere Ansicht wechseln. Die "Verlinkung" über die Spalte läuft bei den abgeglichenen Produktivdatenbanken auf einem Fehler "Dokument gelöscht" bzw. "Index nicht vorhanden". Bei näherem Hinsehen stellt man in den Gestaltungsdokumenten dann auch fest, dass die Angabe der Ansicht, in die gewechselt werden soll, in den Ansichtsoptionen verloren gegangen ist.


    Ich habe nun gedacht, das wird sicherlich daran liegen, dass bei dem Kopiervorgang die UNID der Gestaltungsdokumentes verloren geht und ersetze nach dem Kopieren die neue UNID mit der Ausgangs-UNID. Vergleiche ich dann aber die UNID's anschließend miteinander, stelle ich fest das nur die letzten acht Stellen übereinstimmen.


    Meine Frage:


    Wie bekomme ich es programmiertechnisch hin, dass auch die Ansichten mit Spaltenoptionen "Auf Spaltenüerbschrift klicken - In Ansicht wechseln..." nach dem Kopieren in eine andere Datenbank funktionieren?


    Ich bin gespannt auf Eure Lösungsvorschläge!


    Ralle

    • Offizieller Beitrag

    wie genau machst Du den Gestaltungswechsel (Schablone wechslen, Gestaltung aktualisieren, über DXL-Importer, usw.)?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • das mache ich über die Notes API. Gestaltungselemente stellen in Notes ja auch nur Dokumente da. Über die API greife ich auf diese zu, lösche sie in der einen Datenbank (Produktivdatenbank) und kopiere dann die neuen Gestaltungselemente aus der anderen (Schablone) wieder hinein.


    Gruß


    Ralle

    • Offizieller Beitrag

    wenn Du sowieso die Notes-Api verwendest, dann änder doch den Schablonen Namen und mache eine Gestaltungsaktualisierung, dann bekommst Du auch keine Probleme mit den Ansichten.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo Dirk,


    ...genau darum geht es ja. Unsere Kunden steigen zur Zeit von Notes 4 auf Notes 6 um. Dieser Prozess ist fließend. Bei Einspielung von Bugfixes und Updates über eine Schablonenwechsel bzw. über Gestaltungsabgleich haben unsere Kunden seit Notes 6 immer wieder Probleme mit doppelten, nicht mehr vorhandenen oder nicht aktualisierten Gestaltungselementen. Ein Problem welches ich des öfteren hier auch schon im Forum gelesen habe.... Lösung war bisher ein dutzendmales überschreiben mit leeren Datenbankschablonen und der eigentlichen Schablone, bis es dann funktionstüchtig erschien. Aber nicht garantiert, wie man sich vorstellen kann, deshalb der automatische Design-Updater, der die gesamten Gestaltungselemente einer Datenbank löscht und sie anschliessend mit dem neuen Design versieht.


    Ich habe das Problem nun mittlerweile auch gelöst. Unter Notes 6 stellte ich fest, dass die kopierten Views mit den manipulierten UNID's alle doppelt in der Datenbank vorhanden waren (unter Notes 4 nicht ersichtlich gewesen).


    Ich habe daraufhin die Routine zum zurücksetzen der UNID so umgeschrieben, dass diese nur noch Views berücksichtigt und das die "nicht relevanten" Views gelöscht werden. Zum Aufspüren gehe ich alle View-Gestaltungsdokumente durch und vergleiche "$Title" und dann die DocumentUNID mit dem gerade kopierten Element aus der Schablone. Stimmt der Titel aber nicht die UNID wird das Gestaltungsdokument gelöscht.


    Und siehe da, es funktioniert!


    Übrigens treten die Probleme wirklich nur bei den Views auf, bei denen man per Klick auf eine Spalte in eine andere View wechseln kann. Bei Gestaltungselementen wie Teilmasken oder Gemeinsame Felder/Aktionen, bei denen man dieses Problem ebenfalls vermuten würde, tritt es nicht auf.


    Trotzdem vielen Dank Problem gelöstDirk!


    Gruß


    Ralle