Autor Thema: Doc Kontrolle?!  (Gelesen 2339 mal)

Offline CrazyCoder

  • Junior Mitglied
  • **
  • Beiträge: 97
  • Geschlecht: Männlich
Doc Kontrolle?!
« am: 21.02.03 - 12:50:51 »
Schönen Mittag! :)

Also ich habe jetzt schon mehr fach das Problem gehabt das in meiner datenbank mit der gerade ca 30 User arbeiten 2 gleichzeitig in ein Doc gegangen sind und dann verschiedene Versionen des Doc's abgespeichert haben, was dann natürlich zu Replikationsfehlern führt!!  >:(

Nunja, meine Lösung für das Problem ist eigentlich einfach.

Ich müßte kontrollieren ob das Doc gerade von einem anderen User in Bearbeitung ist und dann ne Fehlermeldung bringen!

Hat da jemand Ahnung von?? Ich denke mal das, das vielleicht noch mehr Leute als ich brauchen könnten!  :D

Also, ich bitte dringend um Hilfe!!!

cya
CrazyCoder

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Doc Kontrolle?!
« Antwort #1 am: 21.02.03 - 13:28:33 »
Hi,

Das hab ich mal im Web gefunden. Getestet hab ich es allerdings noch nicht.

Zitat
Locking documents to prevent save conflicts
This piece of code assigns edit lock to the first user who opens the document. When other users try to open the same document, they get a message saying "Document is locked by X" and a read-only copy is opened for them. They will not be able to edit the document until the lock is released by the first user.

A manually run agent to unlock the document can be provided for Domino Admin in case of system crash.

Form should have a hidden field called "Lock" of type Text (Editable)
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
       If (Source.IsNewDoc) Then
              Exit Sub
       End If   'New Doc, Lock not reqd
       Dim varLock As Variant
       Dim session As New NotesSession
       Dim nnUserName As New NotesName(session.UserName)
       Set docBackend=Source.document
       varLock=docBackend.GetItemValue("Lock")
       If (varLock(0) <> "") Then
              Msgbox ("Document is currently locked by "+varLock(0)+". A read-only copy will be opened for your use.")
              Exit Sub
       End If
       docBackend.Lock=nnUserName.Common
       Call docBackend.Save(True,True)
End Sub

'When user trys to edit, check if he/she has the lock

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
       If Source.FieldGetText("Lock")<>"" Then
              Dim session As New NotesSession
              Dim nnUserName As New NotesName(session.UserName)
              If (Strcomp(nnUserName.Common,Source.FieldGetText("Lock"),5)=0) Then
                     continue=True
              Else
                     Msgbox("Sorry, you are in read-only mode ! This operation cannot be performed. This document is currently used by "+Source.FieldGetText("Lock"))
                     continue=False
              End If
       End If
End Sub

'Release the lock when the user with the lock closes the document

Sub Queryclose(Source As Notesuidocument, Continue As Variant)
       If strNewDoc="New" Then  '(exit if it's a new doc.Set this variable to New in postopen if it's a new doc)
              Exit Sub
       End If
      
       Dim session As New NotesSession
       Dim nnUserName As New NotesName(session.UserName)
       If (Strcomp(nnUserName.Common,Source.FieldGetText("Lock"),5)=0) Then
              Set docBackend=Source.document
              docBackend.Lock=""
              Call docBackend.Save(True, True)
       End If
      
End Sub

Agent to Unlock selected documents -
Manually run agent - Simple Action
Modify field 'Lock': Set to ''

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:Doc Kontrolle?!
« Antwort #2 am: 22.02.03 - 22:30:56 »
In den Formularoptionen das Merging aktivieren, falls die Logik das zuläßt.
Record-Locking macht in replizierenden Umgebungen keinen rechten Sinn, finde ich.
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline CrazyCoder

  • Junior Mitglied
  • **
  • Beiträge: 97
  • Geschlecht: Männlich
Re:Doc Kontrolle?!
« Antwort #3 am: 26.02.03 - 14:14:24 »
Hi Leute!
Ich weiß dieser Post war schon fast wieder vergessen, aber ich hatte leider wichtigere Probleme!!

Nunja, den SourceCode der dort über mir ist (Beitrag von Axel) ist nicht so ganz funktionell! Ich versuche mich da gerade durch zu arbeiten, aber ich habe keine Ahung von LotusScript! Meine Programmierkenntnisse reichen gerade soweit, das ich den Code lesen und verstehen kann aber für umschreiben leider nicht mehr!

Kann mir da vielleicht mal einer etwas unter die Arme greifen?!?

Es würde reichen wenn der 2. User entweder das Doc garnicht öffnen oder nur im Lesen-Modus öffen kann.

Hoffe mir kann einer von euch helfen!! :)

cya
CrazyCoder

Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:Doc Kontrolle?!
« Antwort #4 am: 26.02.03 - 16:01:00 »
Meine Programmierkenntnisse reichen gerade soweit, das ich den Code lesen und verstehen kann aber für umschreiben leider nicht mehr!

Es würde reichen wenn der 2. User entweder das Doc garnicht öffnen oder nur im Lesen-Modus öffen kann.
CrazyCoder
das macht der code doch, oder ?

gruss

Offline CrazyCoder

  • Junior Mitglied
  • **
  • Beiträge: 97
  • Geschlecht: Männlich
Re:Doc Kontrolle?!
« Antwort #5 am: 26.02.03 - 16:25:15 »
@Till_21

Hm... also wenn er das tun würde würde ich mich nicht nochmal deswegen malden! In der Theorie stimmt das wohl, er sollte es machen!!! Aber sollen und tun ist was anderes!!! Ausserdem erkennt er auch nicht, das der User der es geöffnet hat das Doc wieder geschlossen hat und sperrt die Dokumente dauerhaft mit dem Namen der Person, zumindest sag er das!
Aber ich kann trotzdem das Doc öffnen und ich kann immernoch in den Bearbeiten-Modus wechseln und locker-flockig meine Änderungen speichern und das sollte er ja eben verhindern! Ne!? :)

Also, du kannst ihn ja mal bei dir einspielen, du wirst sehen er funzt nicht! Und wenn doch dann mußt du mit erklären was du anders hast als ich!!! ;)

cya
CrazyCoder

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Doc Kontrolle?!
« Antwort #6 am: 27.02.03 - 10:36:07 »
Hallo CrazyCoder,

es stimmt, das es vorkommen kann, das die Meldung:
"Dokument ist von XY in Bearbeitung" erscheint,
obwohl dieser bereits vor Stunden den Rechner
ausgeschaltet hat. Deswegen gibt es dann 2 Lösungen:
Man lässt einen Agenten in der Nacht laufen, der
alle Lock Felder leer oder
die betreffende Person öffnet das Dokument erneut
(er ist der einzige der das Lock umgehen kann) und
verlässt das Dokument regulär.


Ciao

Don Pasquale

Offline CodeWarrior

  • Frischling
  • *
  • Beiträge: 4
  • Ich liebe dieses Forum!
Re:Doc Kontrolle?!
« Antwort #7 am: 10.03.03 - 21:31:38 »
Versuchs mal mit http://www.xetrion.com
Document Locking für Notes- und Web-Clients.
Haben es in einigen DBs aktiv, bis jetzt ohne Probleme.

CodeWarrior

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz