Autor Thema: Dokument sperren im Web  (Gelesen 1779 mal)

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Dokument sperren im Web
« am: 09.04.14 - 14:18:14 »
Der Titel ist vielleicht etwas blöd, aber es geht um folgendes:

in einer Datenbank gibt es Termindokumente. Der User greift per Browser auf eine View zu und kann die Dokumente öffnen und speichern. So bucht er einen Termin. Nun kann es aber vorkommen, dass mehrere User den ein und selben Termin öffnen. Der der nun zuletzt Speichert, hat den Termin gebucht. Die Anderen bekommen davon aber nichts mit und sind der Meinung den Termin auch gebucht zu haben.

Jetzt habe ich nach einer Möglichkeit gesucht, das Dokument beim ersten Öffnen zu sperren und bin dabei auf das Event "WebQueryOpen" gestossen. Dort setze ich per Script ein Feld mit der IP-Adresse des aufrufenden Client. Beim Speichern prüfe ich, ob IP-Adr im Dokument gleich IP-Adr des speichernden Clients ist und wenn nein, dann Meldung. So weit, so gut (oder auch nicht).

Das Problem liegt im Speichern. Im WebQueryOpen setze ich ein Feld und speichere das Dokument. Löst der Anwender jetzt den Speichern-Button (@Command([FileSave])) aus, kommt es zu einem Replizier- bzw. Speicherkonflikt

Drückt der Anwender zuvor aber im Browser F5, dann klappt das Speichern.

Hat jemand eine Idee, was ich tun könnte?

« Letzte Änderung: 09.04.14 - 15:39:48 von tks »
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: Dokument sperren im Web
« Antwort #1 am: 09.04.14 - 14:55:15 »
Klassisches Notes? Also Ansichten und Masken?

Die Lösungen, die ich in dem Umfeld bisher gesehen habe, nutzen einen eigenen Lock-Mechanismus. In separaten Lock-Dokumenten wird gespeichert, welcher Nutzer gerade auf welches Dokument schreibend zugreift. Ist die Bearbeitung des Dokuments beendet, wird das Lock-Dokument gelöscht oder in einen "ungültig" Status gesetzt und später gelöscht.

Ich gehe davon aus, daß Deine Nutzer sich ordentlich anmelden, dann kennst Du auch den Nutzer ;)

IP-Adresse halte ich für eine schlechte Idee.

Viel Erfolg,
Th.

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Re: Dokument sperren im Web
« Antwort #2 am: 09.04.14 - 15:03:11 »
Zunächst mal Danke für die Hinweise.

Nein, kein Notes sondern Browser und nein keine Authentifizierung. Darüber möchte ich jetzt auch keien Grundsatzdiskussionen führen.

Mich interessiert jetzt auch nicht unbedingt wer das Dokument bearbeitet, ich möchte nur verhindern, dass zwei User das gleiche Dokument am Wickel haben.
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Re: Dokument sperren im Web
« Antwort #3 am: 09.04.14 - 15:53:35 »
Habe jetzt einen anderen Weg gewählt.

Im WebQuerySave kann ich prüfen, ob der Termin schon gebucht wurde. Wenn ja, gebe ich eine Meldung aus und speichere nicht nochmal.

Das tut's für meine Zwecke. Hätte ich auch gleich drauf kommen können  :P
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: Dokument sperren im Web
« Antwort #4 am: 09.04.14 - 17:08:54 »
Nein, kein Notes sondern Browser und nein keine Authentifizierung. Darüber möchte ich jetzt auch keien Grundsatzdiskussionen führen.

Ich habe das mit dem Web schon verstanden. Was ich meinte, ist: keine Agenten, die HTML-Formulare erzeugen und verarbeiten, keine XPages etc. - sondern "klassische" Notes-Masken und -Ansichten, die im Web genutzt werden.

Schön, daß Du eine Lösung für Dich gefunden hast.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz