Hallo Notes Gemeinde,
ich habe ein etwas seltsames Programmierproblem und kann es mir nicht erklären. Ich öffen an 2 verschiedenen PC's das gleiche Notesdokument im Lesemodus. Nun ändere ich über einen Button mit einer DialogBox das Dokument und speichere es wieder.
Wenn ich den Button mit der DialogBox nun an dem 2. PC drücke, bei dem ich das Dokument ja auch schon offen hatte, bekomme ich beim speichern logischerweise die Meldung "Ein weitere Kopie diese Dokuments wurde gespeichert ...... Konflikdokument?".
Dies wollte ich nun verhindern, indem ich das uidoc über den Button neu öffne:
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
call uidoc.close
uidoc = ws.EditDocument(True, doc, False)
Das bringt aber leider nichts, da, wie ich herrausgefunden habe, das doc noch den alten Stand hat, also den Stand BEVOR ich an dem 1. PC die Änderungen gespeichert habe.
Also dachte ich, OK musst Du hallt das doc neu holen:
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
unid = doc.UniversalID
Call uidoc.Close(True)
Set doc = db.GetDocumentByUNID(unid)
uidoc = ws.EditDocument(True, doc, False)
Aber auch das funktioniert nicht, das doc hat immer noch den alten Stand.
Erst wenn ich das doc über eine Ansicht neu hole:
lfdnr = uidoc.FieldGetText("lfdnr")
Call uidoc.Close(True)
Set doc = view.GetDocumentByKey(lfdnr, True)
Set uidoc = ws.EditDocument(True, doc, False)
Jetzt das doc den aktuellen Stand und ich bekomme keinen Speicherkonflikt.
Laut Doku müsste aber doch schon Varinate 1 funktionieren, spätestens jedoch Variante 2, oder wo mache ich den Fehler?
Server ist 8.5.1 und die Clients sind 6.5.6 und 8.5.1, das Verhalten ist bei beiden Versionen gleich.
Danke und Gruß,
Dietmar