Domino 9 und frühere Versionen > Entwicklung
verbieten eine DB lokal zu replizieren
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