Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: LionKing am 06.11.18 - 14:10:53

Titel: Dokument öffnen limitieren
Beitrag von: LionKing am 06.11.18 - 14:10:53
Hallo,

gibt es eine Möglilchkeit ein Dokument zu sperren, sobald es einmal zum lesen oder bearbeiten geöffnet ist?
Wenn also User A ein Dokument betrachtet, sollen andere User den Inhalt des Dokuments nicht mehr sehen können und einen Hinweis erhalten, dass User A gerade das Dokument sperrt. Schließt User A das Dokument wieder, soll es wieder freigegeben werden, so dass ein anderer User darauf zugreifen kann.

Danke für Hinweise zur Umsetzung.
Titel: Re: Dokument öffnen limitieren
Beitrag von: Peter Klett am 06.11.18 - 14:50:56
Wozu auch immer das gut sein soll ...

Da musst Du im QueryOpen ansetzen. Dort prüfst Du, ob jemand das Dokument geöffnet hat, gibst ggf. einen Hinweis aus und schließt das Dokument wieder.

Ist es nicht geöffnet, schreibst Du an irgendeine Stelle, welches Dokument wann von wem geöffnet wurde. Im QueryClose nimmst Du das wieder weg.

Du kannst das nicht in das Dokument schreiben, da Du das ja schon im Lesemodus haben willst. Daher kannst Du nicht davon ausgehen, dass der Leser ausreichend Rechte hat, um das Dokument bearbeiten zu können. Außerdem ist es äußerst unfein, nur wegen solch einer Lesesteuerung das Dokument zu ändern.

Soll das ganze über verschiedene Repliken und Standorte laufen, müsstest Du die Information über die geöffneten Dokumente irgendwo zentral vorhalten. Das ist ganz schlecht.

Du kannst auch nie sicher sein, dass das wirklich funktioniert. Ein gleichzeitiges Öffnen eines Dokuments durch mehrere Benutzer wirst Du kaum abfangen können. Dafür ist die Wahrscheinlichkeit hoch, dass das QueryClose mal abraucht und den Merker nicht zurücksetzt. Dann ist das Dokument dauerhaft gesperrt und es muss administrativ eingegriffen werden.

Mein Tipp: Vergiss es

Den Schutz vor gleichzeitiger Bearbeitung kann Notes selbst, wozu man das lesend gebrauchen kann, entzieht sich meiner Vorstellungskraft, aber Du wirst das wissen ;)
Titel: Re: Dokument öffnen limitieren
Beitrag von: Ralf_B am 06.11.18 - 17:34:54
Moin

Meine bisherige Lösung dazu:
Im Qopen Event erstelle ich ein neues verstecktes Dokument (beinhaltet DocUnID und Benutzername) (wenn dies bereits vorhanden ist, ist das Dokument bereits geöffnet oder der gleiche User öffnet es erneut, dann zulassen) und lösche dieses wieder im QClose Event.

Es gibt immer mal Probleme (Bluescreen / Netzwerkstörung.. und das Dok wird nicht gelöscht) aber bislang funktioniert dies erstaunlicherweise sehr sehr gut.
Bei Repliken sollten die Repliziereinstellungen entsprechend angepasst werden (Latency beachten).

Benutzungsargument:
Parallele Workflows basierend auf nur einem Dokument
Workflows allgemein mit Abhängigkeiten.

Schönen Abend
Ralf
Titel: Re: Dokument öffnen limitieren
Beitrag von: LionKing am 08.11.18 - 07:31:16
Danke, die Hinweise zu QueryOpen werde ich mir mal ansehen.
Die Information in eigenständige Dokumente auszulagern klingt sinnvoll.

Wozu auch immer das gut sein soll ...

Das habe ich mich auch gefragt, aber die Anforderung wurde nun mal so formuliert.  :-: