Hi! Da manche Nutzer es irgendwie immer schaffen, internationale Repliken einer Datenbank zu öffnen, anstatt die auf dem lokalen Application-Server - und sich dann über die "lausige Lotus Notes Performance" beschweren - habe ich ein Skript programmiert, das auf Basis des Mailservers des Anwenders ermittelt, ob die dazu passende Replik geöffnet wurde und ggf. nach einer Abfrage die Replik auf dem richtigen Server öffnet. Die "falsche" Replik soll anschliessend geschlossen werden. Sieht dann so aus:
Dim ws As New NotesUIWorkspace
Set uidb = ws.CurrentDatabase
...
'Open suitable server and close open db
Dim ndb As New NotesDatabase( suitableserver, path )
If Not ndb.IsOpen Then
MsgBox "Could not open database on server " & suitableserver & Chr$(10) &_
"Please contact your db admin",48,"Error"
Exit Sub
End If
Call ws.Opendatabase(suitableserver, path,,,,True )
Call uidb.Close()
Wenn ich das in einer Aktion aus der bereits geöffneten Datenbank heraus teste, funktioniert es auch einwandfrei. Wenn ich den Code jedoch aus dem Datenbankscript im Postopen aufrufe, wird zwar die Frontend DB geschlossen, die gewähle Replik aber nicht geöffnet.
Woran kann das liegen?
Die REIHENFOLGE ist an dieser Stelle ganz essentiell...
Mache es so, so funktioniert es definitiv (habe ich hier vor ein paar Tagen benutzt):
Call uidb.Close()
Call ws.Opendatabase(suitableserver, path)