Domino 9 und frühere Versionen > Entwicklung

Mehrfachen Zugriff auf Dokument verhindern

<< < (2/3) > >>

koehlerbv:
Wie ist denn Deine Bedingung, dass jemand NICHT speichern darf ? Vermutlich, dass das entsprechende Kästchen, was er gerade angekreuzt ist (also im Backend gespeichert) mittlerweile bereits gesetzt ist. Du müsstest also im QuerySave den gerade aktuellen Zustand des Dokuments auf dem Server auslesen und mit dem Dokument des Users vergleichen. Ggf. musst Du dir im PostOpen noch den Zustand beim Öffnen merken, damit Du die ggf. entstandenen Unterschiede feststellst.

Hinweis: Das tatsächlich gespeicherte Dokument auf dem Server musst Du im QuerySave dann in einem gesondertem Objekt instantiieren - Dein Source.Document ist was anderes als das, was Du ggf. vom Server bekommst.

HTH,
Bernhard

Wiesel:
Vielen Dank erstmal.
Probiere da morgen dann mal was aus.
Ansonsten melde ich mich wieder hier  ;)

tge:
Hallo!

Ich habe ein ähnliches Problem mal mit einem sog. "In-Use-Dokument" gelöst, soll heißen, sobald das nicht parallel editierbare Dokument im Editiermodus geöffnet wird (QuerymodeChange), wurde im Backend ein weiteres Dokument, das "In-Use-Dokument", gespeichert. Es enthält einfach nur die Noteid des nicht parallel editierbaren Dokuments und vielleicht den Usernamen desjenigen, der das Dokument gerade in Beabeitung hat.
Das "In-Use-Dokument" wird automatisch gelöscht, sobald das nicht parallel editierbare Dokument geschlossen wird (Queryclose).
Wird nun das nicht parallel editierbare Dokument von weiteren Personen geöffnet, kann man hier unter Querymodechange in einer verborgenen Lookup-Ansicht, in der die "In-Use-Dokumente" angezeigt werden, nach einem "In-Use-Dokument" mit der gleichen Notesid suchen. Wurde ein entsprechendes "In-Use-Dokument" gefunden, wird der Wechsel in den Editiermodus unterbunden und eine Msgbox mit dem Hinweis, dass das Dokument von User xy z.Zt. editiert wird, angezeigt.

Klingt etwas umständlich, hat aber funktioniert, solange die Datenbank nicht auf mehere Server verteilt wurde.

Wiesel:
Ich habe das Problem mit Hilfe folgender DInge gelöst:

http://news4notes.com/web/dokumente/notes_edit.html

Vielen Dank für Eure Hilfe!

Gandhi:
Generell halte ich so ein Design für eher schlecht.
Besser: Beim Öffnen des Dokuments nur eine Kopie im UI öffnen (im queryopen) und beim Speichern dieser Kopie dann den Wert in das eigentliche Dokument schreiben - und anstatt zu speichern die Kopie verwerfen.
Damit werden dann Replizierkonflikte sehr sehr unwahrscheinlich - sofern nicht nichtgeclusterte Server verwendet werden (dann könnte man noch eine Dokumentebene für den Standort abstrahieren).

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln