Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: TomLudwig am 05.03.07 - 12:57:47
-
Hallo zusammen,
ich öffne per Call g_uiwork.EditDocument(True, g_QDoc) ein Dokument aus dem Backend.
Wenn dies bereits geöffnet wurde und der User dies abspeichert kommt es unter Umständen zu einem Replizier- und Speicherkonflikt.
Gibt es eine Möglichkeit zu überprüfen, ob ein Dokument bereits im FrontEnd geöffnet wurde?
Und anschließend vielleicht dieses in den Vordergrund setzten?
Vielen Dank!
Gruß, Tom
-
Ein Lock setzten?
Ansonsten sehe ich keine Möglichkeit.
-
Hallo,
der letzte Parameter in der EditDocument-Methode steuert, ob es einen neuen Tab geben soll.
Wenn ein anderer User das Dok aber bereits offen hat, würde dies auch nix bringen meiner Meinung nach.
Matthias
-
Vor allem nicht, wenn ein anderer Server das Dok auf einem anderen Server geöffnet hat. ;)
-
Lock eines Doks wäre mir auch eingefallen. Aber im Moment zu komplieziert.
Der letzte Parameter bei EditDocument ist mir nie aufgefallen. Danke vielmals für den Tipp!
-
Die Property des Backend-Dokuments IsUIDocOpen liefert dir für den aktuellen Userkontext die Antwort auf deine Frage. Der letzte Parameter im ws.EditDocument ermöglicht es dir, ggf. den richtigen der 27 "offenen Reiter" dafür zu erwischen, damit der User genau dieses bereits offene uidoc in den Vordergrund rückt und (weiter) bearbeitet.
Gruß
Norbert
-
Danke Norbert.
Aber die Abfrage ob das Dokument offen ist brauche ich nicht, da der Parameter im EditDocument das schon geöffnete Dokument fokusiert oder eben eine neue Instanz erstellt.
Oder sehe ich da etwas falsch?
Über kurz oder lang muss aber ein Sperr-Mechanismus der Dokumente erstellt werden...
-
Die Property des Backend-Dokuments IsUIDocOpen liefert dir für den aktuellen Userkontext die Antwort auf deine Frage. Der letzte Parameter im ws.EditDocument ermöglicht es dir, ggf. den richtigen der 27 "offenen Reiter" dafür zu erwischen, damit der User genau dieses bereits offene uidoc in den Vordergrund rückt und (weiter) bearbeitet.
Gruß
Norbert
aus der Hilfe:
True indicates that the back-end document is from a front-end document.
Wenn ein anderer User das Dokument bereits geöffnet hat, greift das doch nicht?
Und muss das Backenddokument dann nicht über das Frontenddokument referenziert sein?
-
IsUIDocOpen bringt in diesem Fall nichts. Im Forum hatten wir das auch schon ein paarmal diskutiert. Such mal nach IsUIDocOpen
Man muss in der Tat einen eigenen Lock-mechanismus programmieren oder das Hard-Locking aktivieren und dann mit
To get: lockHolders = notesDocument.LockHolders
Usage
If the document is locked, the array contains the names of the lock holders. The document can be locked by one or more users or groups.
If the document is not locked, the array contains one element whose value is an empty string ("").
arbeiten.
Andreas