Hallo alle miteinander,
ich habe schon mal eine Weile gesucht, aber noch nicht das passende gefunden. Deshalb werde ich mein Problem mal schildern, vielleicht hat je jemand eine Idee.
Ein Dokument soll per Button einen neuen Status bekommen, Änderungen des Anwenders über den "Möchten Sie Speichern"-Dialgog gespeichert (oder nicht!!!) werden. Der Anwender soll gefragt werden, da im Querysave das Ändern von Daten (Speichern) geloggt wird. Dann soll im Backend der Status geändert und das Dokument gespeichert werden. Soweit die Theorie. Ich verwende folgenden Code:
Dim db As NotesDatabase
Dim id As String
Set db = ws.CurrentDatabase.Database
id = ws.CurrentDocument.Document.UniversalID -->> Ich gehe den umweg über die DokumentenID
Dim newdoc As NotesDocument
ws.CurrentDocument.EditMode=False -->> hier kommt die Abfrage "möchten Sie.." beantwortet mit nein
Call ws.CurrentDocument.Close(True)
Set newdoc=db.GetDocumentByUNID(id)
Call setstatus(newdoc,newstate) -->> Ändert das Statusfeld und ein paar Texte (Backend)
Call newdoc.Save(True,False)
Hat der Anwender nichts geändert, klappt alles wie es soll. Hat er aber z.B. einen Namen geändert und entscheidet sich beim Speicherdialog für nein, so wird trotzdem der neue Name im Dok gespeichert. Witzigerweise kann ich im Debugger bis zum Schluß den alten Namen sehen. Wenn ich dann das Dokument wieder öffne, steht allerdings die ungewollte Änderung drin
Nun habe ich schon den Umweg über die ID genommen um garantiert ein "anderes" Dokument im Backend zu öffnen, hilft aber nicht. Komisch ist auch, dass ich im Debugger noch auf das ui-Dokument zugreifen kann, nachdem ich es mit "Close" geschlossen habe.
Sicher habe ich nur was übersehen, aber was
Viele Grüße
Mirko