Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: pippo am 27.12.02 - 10:35:46
-
Hallo Leute,
möchte Euch wiedermal um Rat fragen ::)
Habe eine Datenbank mit Antwortdokumenten. Insgesamt 5 Ebenen. Nun möchte ich abgeschlossene Dokumente archivieren (in einer eigenen Datenbak - damit die Produktionsdb nicht zu groß wird). Habe gesehen, daß mit "NotesDocument - CopyToDatabase" die DocumentID nach dem Kopieren nicht neu vergeben wird. Also gehen die Antwortdokumente nicht verloren.
Hat damit jemand schon Erfahrung gesammelt?
Schönen Tag, Pippo
-
... ich habe das auch schon so verwendet. Die UniversalID bleibt erhalten. Ich habe mir parallel dazu aber eine Hintertür offengelassen. Dazu schreibe ich die Doc-UNID des Hauptdokumentes ins Environment. Im nächsten Schritt ordne ich diese DocID dann den markierten Dokumenten zu...
ata
-
Die Idee an sich ist ja wunderbar, funktioniert auch sehr gut - aber beim archivieren werden normalerweise die archivierten doks gelöscht, und beim x-ten neuen dok bekommt dieses die gleiche unid wie das erste(ist denkbar) - was passiert dann beim rüberkopieren - es wird eine andere unid generiert und das Antwortdok ist zwar ein Antwortdok aber der $REF zeigt ins Leere.
Aus diesem einfachen Grund arbeite ich nicht mehr mit Antwortdokumente, und löse die Abhängigkeiten ganz einfach über Felder - z.B. dokid(Text) = UNID und in den Kinddoks -> Refdokid(text) = dokid des Vaterdoks. Vollständigerweise hat das Kinddok auch eine dokid. Die Lösung ist fast eine relationale Entität.
cu
-
... ich vermeide hierarchische Dokumente so gut es eben geht. Leider muß man manchmal mit bereits existierenden Datenbanken und deren Design arbeiten. Für diesen Fall ziehe ich die Hierarchie eben wieder gerade...
ata
-
und beim x-ten neuen dok bekommt dieses die gleiche unid wie das erste(ist denkbar)
Denkbar ja - aber bei ~16^32 Möglichkeiten gibt es mit hoher Sicherheit auf der Welt keine zwei Notes-Dokumente mit gleicher 'spontaner' UNID.
-
Hallo zusammen,
jetzt habe ich die Lösung: 8)
beim Archivieren erstelle ich die Dokumente neu; mit "copyallitems..." übertrage ich dann den Inhalt auf die neuen Dokumente; mit doc.UniversalID... schreibe ich die neuen IDs in die Felder..., mit "makeresponse..." setze ich die REFs.
Anschließend lösche ich die Dokumente in der Org Datenbank.
So habe ich keine Probleme mit doppelten IDs; ebenfalls kann ich so Projekte wieder von der Archivdatenbank in die OrgDB zurückhohlen. ;D
Frohes neues Jahr, Pippo