Domino 9 und frühere Versionen > Entwicklung

Doc Kontrolle?!

(1/2) > >>

CrazyCoder:
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

Axel:
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 ''

--- Ende Zitat ---

Axel

wflamme:
In den Formularoptionen das Merging aktivieren, falls die Logik das zuläßt.
Record-Locking macht in replizierenden Umgebungen keinen rechten Sinn, finde ich.

CrazyCoder:
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

Till_21:

--- Zitat von: CrazyCoder am 26.02.03 - 14:14:24 ---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

--- Ende Zitat ---
das macht der code doch, oder ?

gruss

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln