Domino 9 und frühere Versionen > Entwicklung

verbieten eine DB lokal zu replizieren

(1/4) > >>

luna:
hallo,

ich hab eine DB auf meinem server, die mit dem cluster und dem webserver repliziert wird. das soll auch so bleiben.

ich hab diese DB auch nicht in meinem profil notebooks drin, weil ich nicht will, dass die user die DB offline bedienen, weil beim anlegen eines dokumentes die manager aus dem nab nicht ausgelesen werden. ist soweit auch kein problem.

es gibt aber user, die sich trotzdem einfach diese DB lokal replizieren, und offline dokumente anlegen, in denen dann infos fehlen.

kann ich theoretisch verbieten, dass user sich eine DB lokal replizieren? aber die replizierung mit dem cluster und webserver geht dann trotzdem noch?

oder muss ich den button "new document" verstecken, wenn der user nicht online ist? wenn ja, wie geht das?

vielen dank fuer hilfe,
gruss,
daniela

Meff:
Hi Daniela,

mit R6 geht das....mit R5 und tiefer kann ich nur die konsistene ACL empfehlen.
Mit den Hide-When Formeln zu arbeiten, naja. Prüfe doch einfach beim öffnen der DB ob diese sich lokal befindet (ist eine Datenbank Property) und setzte einen entsprechenden Ini Eintrag, diesen nutzt Du dann für die Hide-When Formel.

Meff ;)

ata:
... wenn du beim Öffnen der DB überprüfst, ob sie lokal geöffnet wird, dann gib eine Meldung aus, daß das nicht sein soll und schließe die DB wieder...

ata

Meff:
Leider geht das nicht so ohne weiteres, aber ich hab da was. Einfach in den DB Script einfügen :

Unter Declarations :

Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long
Declare Function NEMStopSubprogramWindow Lib "nnotesws.dll" (Byval hwnd As Long) As Integer

Und im Postopen :

Set session = New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   Dim version As String
   Dim extract As String   
   
   version = session.NotesVersion
   extract = Left(version, 9)
'   Messagebox extract
   If extract <> "Release 5" Then
      Messagebox "Important:  Sorry but you do not have an R5 client and will be unable to properly access this application.", 0 + 64, "Sorry!"
      Dim wHandle As Long
                        ' Get window handle
      wHandle = NEMGetCurrentSubprogramWindow
                        ' Close current window
      Call NEMStopSubprogramWindow(wHandle)
   End If

Das Ding ist zum Prüfen, ob der Anwender mit einem 5er Client arbeitet, sollte ziemlich simple zum Anpassen bzgl. der lokalen Replik sein. Aber Achtung : Wenn ein Anwender mit dem Script Debuger arbeitet, dann kann man das Ding ziemlich simple umgehen.

Meff ;)

ata:
... im QueryOpen der Ansichten folgender Code:

Dim vDB As Variant
vDB = Evaluate("@DBName")
If vDB(0) = "" Then
   Msgbox "Die Datenbank darf nicht lokal geöffnet werden - Abbruch" , 16 , "Abbruch"
   Continue = False
End If

... aber - mit dem Debugger kann man auch das umgehen...

ata

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln