Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: lildjäiy am 12.02.09 - 15:46:29

Titel: Identische DB Kopie erzeugen
Beitrag von: lildjäiy am 12.02.09 - 15:46:29
Hallo Alle,

ich habe eine Datenbank in der sich Dokumente mit Attachments befinden. In den Dokumenten sind auch noch Felder enthalten welche die Unique ID eines anderen Notes Dokumentes speichern. Damit ist die Verlinkung ohne echte Responebeziehug realisiert.

Wenn ich die Dateien nun in eine andere DB kopiere ändern sich die Unique ID und damit wars das mit den Verknüpfungen. Die Datenbank als new Copy anlegen geht auch nicht, weil die Datenbank in die es rein soll eine versionierte Ciao DB ist und die History der Code Changes nicht verloren gehen soll.

Gab es damals in V5 nicht einen DXL Export als Bordmittel?? Was kann ich tun um die aktuellen Daten auch in die Entwicklungs DB rein zu bekommen ohne die Unique ID zu ändern.

Migration viele mir dazu ein, gibt es einen einfacheren Weg?
Titel: Re: Identische DB Kopie erzeugen
Beitrag von: m3 am 12.02.09 - 15:57:07
Setting / Changing the UNID on documents - a fantastic hack for fixing problems or creating development copies of databases (http://www.thenorth.com/apblog4.nsf/0/63F5C6B1F08957AC8525747D005AA429)

Hintergrundinfo zu UNIDs:
Note ID Uniqueness (http://www.nsftools.com/tips/NotesTips.htm#noteids)
Titel: Re: Identische DB Kopie erzeugen
Beitrag von: lildjäiy am 13.02.09 - 11:35:57
Vielen Dank, genau sowas suchte ich. Hat mir sehr geholfen.
Titel: Re: Identische DB Kopie erzeugen
Beitrag von: koehlerbv am 13.02.09 - 11:46:56
NotesDocument.CopyToDatabase macht das bei geringerem Aufwand  ;)

Bernhard
Titel: Re: Identische DB Kopie erzeugen
Beitrag von: lildjäiy am 21.10.09 - 13:40:56
Leider geht es so nicht:

Code
.....
While Not (noteWork Is Nothing)
    	noteWork.CopyToDatabase dbTarget
    	Set noteWork = colWork.GetNextDocument(noteWork)
 Wend

Das Kopieren ansich funktioniert wunderbar, in der Ziel Datenbank bekommen die Dokumente dann allerdings neue UNIDs, obwohl ich die Ziel DB vorher komplett lösche und soft deletion nicht erlaube.

Muss man scheinbar doch die UNID manuell wieder setzen? Oder gibt es irgend eine Einstellung die Datenbanken ihr Verhalten aufdiktiert neue UNIDs zu generieren?
Titel: Re: Identische DB Kopie erzeugen
Beitrag von: WildVirus am 21.10.09 - 14:59:50
Hi,

folge einfach dem Link von Martin, dort ist doch ein Mustercode, der das macht.

Die Standardfunktion -und sie ist richtig so- legt eine neue ID an.

CU,
Axel
Titel: Re: Identische DB Kopie erzeugen
Beitrag von: lildjäiy am 21.10.09 - 16:33:08
Hey Axel,

danke für die schnelle Antwort. Ich habe es nun auch so umgesetzt die UNID manuell zu setzen.
Meine Frage war eher für die oft autauchende Diskussion gedacht, ob durch CopyToDatabase die UNID erhalten bleibt.
Hörte da schon ganz oft unterschiedliches und wollte den Ursachen auf den Grund gehen.