Domino 9 und frühere Versionen > Entwicklung

doc.UniversalID = unid erstellt eine Kopie

<< < (2/4) > >>

koehlerbv:
Hi, TMC,

das war ja eine erfrischende Antwort von Dir - bei der Frage hätte ich erstmal was anderes erwartet (auch dieses Forum ist leider nicht frei von Deppen, die dann erstmal hunderte Fragezeichen austeilen und ohne jede Ahnung irgendwelche Belehrungen).
Entschuldige bitte daher meinen "bösen Verdacht".

Wenn Du die UNID eines bestehenden Docs wechselst, dann erzeugt dies auf jeden Fall ein neues Doc beim Speichern - die UNIDs sind der "Kitt, der eine Notes-DB zusammenhält".
Sich eine neue ID auszudenken, ist (mehr als) kritisch. Wenn Du aber eine UNID eines bestehenden Docs übernehmen willst, dann hol' Dir diese, knall' das alte Doc weg und versehe dann das Doc mit der bestehenden ID.
Worüber ich mir jetzt aber nicht ganz im Klaren bin, ist das Replikationsverhalten: Welches Doc wird dann gelöscht / erzeugt / geupdated ?

Wegen "Weichei": Erstens Respekt, zweitens: Ich meß' auch lieber dreimal, bevor ich abschneide. "Kamikaze" verdient keinen Respekt, und wer mich wegen der zweiten Sicherheitskopie oder Test-DB anzählt, dem zeig' ich einen Vogel. Lieber eine "unnötige" Absicherung als die grosse Katastrophe.

Und wenn Du auf weitere Fragen stößt - sag' an ;-)

Farvel (das war dänisch ;-)
Bernhard

TMC:
Hi Bernhard,

kommst Du aus Dänemark? Will ich nächstes Jahr mal für 2-3 Wochen hin....

Ich hab jedenfalls kein Problem wegen Deines "Verdachts" :-)
Und Nein: Du hast schon Recht, ohne Background-Know-how irgendwelche Hardcore-Geschichten zu machen, das sollte man sich vorher genau überlegen. (und dazu zähle ich auch die UNID-Sache, wie Du schön schreibst vom "Kit"...  :)

However: Ich teste das jetzt mal lokal, und dann die Tage auf einer Test-DB auf einem Testserver. In der Tat ist das Arbeiten mit Repliken dabei interessant.....

Melde mich wieder mit dem ersten Script.....

bye,
TMC

koehlerbv:
Nein, ich komme (noch;-) nicht aus Dänemark, aber ich verbringe jeden Sommer den August dort (Sallingsund kommune).
Wenn Du Tipps braucht für einen geplanten DK-Urlaub, laß es mich (off-list) wissen ;-)
Siegsdorf (Chiemgauer Alpen) -> Sallingsund sind ca. 1.300 km - da muß man also wirklich dahin wollen ;-)

Sallinsunds "amtskommune" ist Viborg amt, und dann schau Dir mal die Website der "Hauptstadt" an: www.viborg.dk. Das *.nsf sagt uns doch was ;-)

Herzliche Grüsse- und meld' Dich auch wegen Deines UNID-Problems,
Bernhard

PS: Vi ses pa Sallingsund og pa Vesterhavet
PSS: Wobei ich mir jetzt doch nicht so sicher bin mit meinem "dänisch", aber ich geb mir Mühe ;-)

TMC:
Vielleicht ist es schon zu spät für mich  ???

Jedenfalls stoße ich hier auf Object Variable not set:


--- Zitat ---Sub Click(Source As Button)
   
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument    
   Dim db As NotesDatabase   
   Dim doc As NotesDocument
   Dim unid As String   
   Dim docZuErsetzen As NotesDocument   
   Set uidoc = uiws.CurrentDocument
   Set doc = uidoc.Document    
   'die UNID des freigegebenen Doc holen....   
   unid = uidoc.FieldGetText("IDAPPROVED")
   Messagebox unid, MB_OK, "Field Get Text"
   'jetzt mal das alte Doc herholen welches ich ersetzen will und dann wegwerfen - die UNID hab ich ja bereits :-)
   Set docZuErsetzen = db.GetDocumentByUNID( unid )
   Messagebox "Set doc zu Ersetzen", MB_OK, "Test"      
   docZuErsetzen.remove (True)
   Messagebox "Remove doc zu Erstetzen", MB_OK, "Test"         
   'und nun die ID setzen....
   doc.UniversalID = unid
   Messagebox "Setze ID", MB_OK, "Test"         
   Call doc.save(False, False)   
End Sub
--- Ende Zitat ---

Nach diversen Tests hat er bei folgender Zeile das "Variable not set" - Problem:
Set docZuErsetzen = db.GetDocumentByUNID( unid )

Aber warum nur? Ich übergebe die Variable (unid) wohl sauber als String. Also sollte er doch auch das Doc finden?
Oder ein Denkfehler?


TMC

Thomas Schulte:
Irgendwie begreife ich die Logik die hinter dem Ganzen stecken soll nicht. Du willst ein neues Dokument an die Stelle eine bereits bestehenden Dokumentes setzen? Und dafür verbiegst du die Internen Mechanismen von Domino was die Vergabe von UNID's angeht?
Tschuldigung aber das ist doch von hinten durch das Knie in die Brust geschossen.

Warum kopierst du nicht einfach den Kontent des neuen Dokumentes in das alte Dokument nachdem der entsprechende Status erreicht wurde? Und löscht anschließend das neue Dokument!
Benefit 1: Die Change History geht nicht verloren
Benefit 2: Du bekommst keinen Ärger mit der Replikation, naja, zumindest nicht zuviel Ärger
Wenn du willst kannst du ja dann auch die entsprechenden Teile des neuen Dokumentes die sich geändert haben kopieren.

Thomas


Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln