Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: LisaS am 19.11.08 - 13:22:57

Titel: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 13:22:57
Hallo,
ich möchte den Usern einen Button in der Datenbank anbieten mit dem sie zwischen der lokalen und Server-DB wechseln können.
Sprich ein User hat seine lokale Replik geöffnet und möchte aber zur Server-Replik wechseln, dann sollte ein Klick auf den Button reichen, um die Lokale DB zu schließen und die Server-DB zu öffnen. Umgekehrt natürlich auch.
Ich habe im Moment das Problem , dass sich mit meinem Script die newDB nicht im Frontent öffnet, obwohl isopen auf true steht???
Was mache ich falsch?
Code
Sub Click(Source As Button)
	Dim s As New NotesSession
	Dim uiws As New NotesUIWorkspace
	Dim this_uidb As NotesUIDatabase
	Dim server_default As String
	Dim server_act As String
	Dim RepID As String
	Dim flag_ds As Boolean
	Dim flag_rs As Boolean
	Dim thisDB As NotesDatabase
	Dim newDB As New NotesDatabase( "", "" )
	
	Set thisDb = s.CurrentDatabase
	Set this_uidb = uiws.CurrentDatabase
	repID = thisDB.ReplicaID
	server_act = thisDB.Server
	server_default = s.GetEnvironmentString("MailServer",True)
	If server_act = "" Then
		If newDB.OpenByReplicaID( server_default, RepID ) Then
			Print( newDB.Title & " Replik erfolgreich geöffnet" )
		Else
			Print( "Die Replik konnte nicht gefunden werden" )
		End If
		
	Else
		If newDB.OpenByReplicaID( "", RepID ) Then
			Print( newDB.Title & " Replik erfolgreich geöffnet" )
		Else
			Print( "Die Replik konnte nicht gefunden werden" )
		End If
	End If
End Sub
Grüße
Hitcher
Titel: Re: Replik wechsen Server<-> Lokal
Beitrag von: koehlerbv am 19.11.08 - 13:30:42
newDB ist bei Dir NotesDatabase, also Backend - "Open" heisst da etwas ganz anderes, als was Du erreichen willst.

Du brauchst notesUIWorkspace.OpenDatabase.

Bernhard
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 13:38:48
danke schön....
natürlich, dass ist es....
Grüße
Hitcher
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 14:11:52
Ok, noch eine Frage:
Call this_uidb.Close schließt die DB nicht, hat es damit zu tun, dass das Script innerhalb der DB ausgeführt wird?

Code
Sub Click(Source As Button)
	Dim s As New NotesSession
	Dim uiws As New NotesUIWorkspace
	Dim this_uidb As NotesUIDatabase
	Dim server_default As String
	Dim server_act As String
	Dim RepID As String
	Dim flag_ds As Boolean
	Dim flag_rs As Boolean
	Dim thisDB As NotesDatabase
	Dim newDB As New NotesDatabase( "", "" )
	Dim tmp As String
	
	Set thisDb = s.CurrentDatabase
	Set this_uidb = uiws.CurrentDatabase
	repID = thisDB.ReplicaID
	server_act = thisDB.Server
	server_default = s.GetEnvironmentString("MailServer",True)
	If server_act = "" Then
		If newDB.OpenByReplicaID( server_default , RepID ) Then
			Call uiws.OpenDatabase( server_default ,newDB.FilePath)
			Print( "Server-Replik geöffnet" )
			Call this_uidb.Close
		Else
			Print( "Die Replik konnte nicht gefunden werden" )
		End If
	Else
		If newDB.OpenByReplicaID( "", RepID ) Then
			Call uiws.OpenDatabase("",thisDB.FilePath)
			Print( "Lokale-Replik geöffnet" )
			Call this_uidb.Close
		Else
			Print( "Die Lokale-Replik konnte nicht gefunden werden" )
		End If
	End If
End Sub
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: m3 am 19.11.08 - 14:14:04
Erst schließen, dann öffnen.
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 14:23:35
Habs jetzt so und es wird immer noch nicht geschlossen.
Code
Sub Click(Source As Button)
	Dim s As New NotesSession
	Dim uiws As New NotesUIWorkspace
	Dim this_uidb As NotesUIDatabase
	Dim server_default As String
	Dim server_act As String
	Dim RepID As String
	Dim flag_ds As Boolean
	Dim flag_rs As Boolean
	Dim thisDB As NotesDatabase
	Dim newDB As New NotesDatabase( "", "" )
	Dim tmp As String
	
	Set thisDb = s.CurrentDatabase
	Set this_uidb = uiws.CurrentDatabase
	repID = thisDB.ReplicaID
	server_act = thisDB.Server
	server_default = s.GetEnvironmentString("MailServer",True)
	If server_act = "" Then
		If newDB.OpenByReplicaID( server_default, RepID ) Then
			Call this_uidb.Close
			Call uiws.OpenDatabase( server_default,newDB.FilePath)
			Print( "Server-Replik geöffnet" )
		Else
			Print( "Die Replik konnte nicht gefunden werden" )
		End If
	Else
		If newDB.OpenByReplicaID( "", RepID ) Then
			Call this_uidb.Close
			Call uiws.OpenDatabase("",thisDB.FilePath)
			Print( "Lokale-Replik geöffnet" )
		Else
			Print( "Die Lokale-Replik konnte nicht gefunden werden" )
		End If
	End If
End Sub
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: m3 am 19.11.08 - 14:26:09
Seufz. Auch thisDb ist ein BACKEND Daatenbankobjekt. Das kannst 20 mal schließen, da tut sich im Frontend gar nix.
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 14:29:35
Ne ist es nicht - this_uidb
Code
Set this_uidb = uiws.CurrentDatabase
Code
Call this_uidb.Close
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 14:37:21
wenn ich einen Button mit einem Script mache wo nur geschlossen werden soll gehts ???
Warum dann nicht im anderen Script?
Code
Sub Click(Source As Button)
	Dim s As New NotesSession
	Dim uiws As New NotesUIWorkspace
	Dim this_uidb As NotesUIDatabase
	Dim server_default As String
	Dim server_act As String
	Dim RepID As String
	Dim flag_ds As Boolean
	Dim flag_rs As Boolean
	Dim thisDB As NotesDatabase
	Dim newDB As New NotesDatabase( "", "" )
	Dim tmp As String
	
	Set thisDb = s.CurrentDatabase
	Set this_uidb = uiws.CurrentDatabase
	Call this_uidb.Close
End Sub
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: Driri am 19.11.08 - 14:41:16
Läuft das Script denn in den Then-Zweig rein ? Hast Du schon mal den Debugger mitlaufen lassen ?
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: DAU-in am 19.11.08 - 14:44:08
weil die Bedingung in deinem alten Script nicht erfüllt wird?

Grüsse

Dau-in

Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 14:47:16
Doch ja, die if Bedingungen werden erfüllt, das konnte ich im Debugger sehen.
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: DAU-in am 19.11.08 - 15:13:00
welche der Ifs?

bist du sicher, dass das Ganze nicht einfach im verkehrten Zweig landet?
Titel: Re: Replik wechseln Server<-> Lokal
Beitrag von: LisaS am 19.11.08 - 15:17:38
ja, weil sich ja jeweils die richtigen Datenbanken öffnen, also muss der Agent zwangs läufig am Close vorbeikommen.