@PostedCommand([FileOpenDatabase]; RichtigeServer : DbName )
Und mit einen @Command([FileCloseWindow]) sollte das aktuelle dann auch vorher geschlossen werden können.
Du kannst sogar noch ein schritt weiter gehen und den das Icon Ändern, entweder löschen oder umbenennen (andere server setzen) damit die es auf den Server auch nicht mehr öffnen könnten.
@PostedCommand([RenameDatabase]; @DbName ; S2 );
Server1 := @DbColumn("";"";"viewPar";8);
Server2 := @Subset(@DbName;1);
@Prompt([Ok]; "Test"; Server1 + " - " + @DBName + " -");
@If(Server2 != Server1;
@Do(
@Command([FileCloseWindow]);
@PostedCommand([RenameDatabase]; @DbName; Server1);
@PostedCommand([FileOpenDatabase]; Server1:@Subset(@DbName;-1))
);
""
)
Sub Postopen(Source As Notesuidatabase)
Dim db As NotesDatabase ("", "")
Dim server1 As String, server2 As string
' Get values Server1 and Server2
Server1 = "cn=test/o=orga"
Server2 = "cn=test2/o=orga"
If lcase( source.database.server ) = lcase( server1 ) Then
if db.Openbyreplicaid(Server2, source.database.Replicaid) Then
'ok und alte Datenbank schließen
source.close
Else
'problem
End If
End If
End Sub
Sub Postopen(Source As Notesuidatabase)
Dim db As New NotesDatabase ("", "")
Dim view As NotesView
Dim docStm As NotesDocument
Dim ServerAkt As String, ServerStd As String, ReplicaID As String
Dim erg As Variant
Set db = Source.Database
ServerAkt = db.Server
ReplicaID = Source.Database.ReplicaID
Set view = db.GetView("viewPar") 'Db-Parameter einlesen für Standard-Server
Set docStm = view.GetFirstDocument
ServerStd = docStm.Server(0)
If LCase(ServerAkt) <> LCase(ServerStd) Then
erg = Evaluate(|@IsNotMember("[TL]"; @UserRoles)|) 'Teamleiter nicht umschalten
If erg(0) = 1 then
If db.OpenByReplicaID(ServerAkt, ReplicaID) Then
Source.close
Else
MessageBox"Öffnen der Datenbank nicht möglich", 0 + 48, "Datenbank"
End If
Else
MessageBox"Achtung: Sie arbeiten nicht auf dem Standard-Server " + docStm.Server(0), 0 + 48, "Datenbank"
End If
End If
End Sub
Set db = Source.Database
ServerAkt = db.Server
If db.OpenByReplicaID(ServerAkt, ReplicaID) Then . . .
If db.OpenByReplicaID(ServerStd, ReplicaID) Then . . .