Domino 9 und frühere Versionen > ND6: Entwicklung
Lotus Script - Zugriff auf anderen Server
HipSlu:
Hallo,
ich habe folgendes Problem:
Ich habe ein Lotus Script, welches auf dem Server a läuft und dann auf dem Server b datenbanken öffnen will und z.b. die acl ändert.
starte ich es manuell, funkt alles wunderbar.
starte ich es automatisch, so funkt es überhaupt nicht.
nach langem hin und her glaube ich mich erinnern zu können, dass das im ls ja nicht möglich ist auf db von anderen servern als das script läuft zuzugreifen - ich glaube aber auch gehört zu haben, dass es mit nd6 schon funktionieren sollte.....
stimmt das? oder verwende ich nur die falschen classes oder so?
habs so ca.:
dim db as new notesdatabase("","")
....
call db.open("server", "db")
Doc Torte:
....zugreifen mit Script auf andere Server, das geht schon, die Frage ist, hat der Server, auf dem das Script läuft auch die Berechtigung ?
HipSlu:
ja, das ist alles ok - der username, unter dem das script läuft (also der server "a") ist sowohl im server b config doc "who can access this server" eingetragen also auch natürlich in der acl der db selbst.....
hier ein teil aus dem ls:
Dim dbcheck As New NotesDatabase(MailServer, MailFile)
level = dbcheck.CurrentAccessLevel
If Not level=6 Then 'Haben wir Manager-Zugriff?
AllesOK=False
outputstring$ = "QUELL-Datenbank " & MailServer & " / " & MailFile & " Access-Level nicht MANAGER: " & level
Call gudtScriptlog.writeScriptlog( outputstring$, "Error", intFlush) doc.Error = "Auf die QuellDB besteht kein Zugriff" Call doc.Save(True, True)
End If
12:20:04 : Agent <REPLICA> gestartet
12:20:04 : #######################
12:20:04 : ?????/xxx/xxx wird bearbeitet
12:20:05 Error : Line 57 / Error 4060: User CN=xxxxx/OU=xxxx/O=xxx/C=AT cannot open database xxx/xxx/xxx!!mail\xx.nsf
12:20:05 Error : Line 58 / Error 91: Object variable not set
12:20:05 Error : QUELL-Datenbank xxxx/xxxx/xxx / mail\xxx.nsf Access-Level nicht MANAGER: 0
12:20:05 : #######################
Doc Torte:
Eine Funktion !
wichtig bei den Werten, welche Du der Funktion übergibst,
entweder Server und ReplicaID oder Server und Datenbankname, aber ich denke mit etwas Übung blickst Du schnell Durch wie diese Function funkt - diese funktion liefert immer eine NotesDatabase zurück, so tritt der Fehler "ObjectVariable not set" nicht auf !
Function OpenDatabaseInBackendAgent(iServer As String, iDBName As String, iDBReplicaID As String)
Dim xSession As New NotesSession
Dim xdb As NotesDatabase
Dim xdb2 As New NotesDatabase("" , "")
On Error Goto OpenDatabaseInBackendErrorHandle
Set xdb = xSession.CurrentDatabase
If iDBReplicaID = "" Then
If xdb2.Open( iServer , iDBName ) Then
Set OpenDatabaseInBackendAgent = xdb2
Print "OpenDatabaseInBackendAgent: " & xdb2.Title & " -DB was opened by Server-/Filename"
Else
Print "CouldNotOpenDB"
Set OpenDatabaseInBackendAgent = New NotesDatabase("","")
Exit Function
End If
Elseif Not iDBReplicaID = "" Then
'Eliminate the " : " in ReplicaID
If Not Instr(1 , iDBReplicaID , ":") = 0 Then
iDBReplicaID = Left(iDBReplicaID , Instr(1 , iDBReplicaID , ":") - 1 ) & Right(iDBReplicaID , Instr(1 , iDBReplicaID , ":") - 1 )
End If
iServer = xdb.Server
'Open Database
If xdb2.OpenByReplicaID( iServer , iDBReplicaID ) Then
Set OpenDatabaseInBackendAgent = xdb2
Print "OpenDatabaseInBackendAgent: " & xdb2.Title & " -DB was opened by ReplicaID"
Else
Print "CouldNotOpenDB"
Set OpenDatabaseInBackendAgent = New NotesDatabase("","")
Exit Function
End If
Else
Print "CouldNotOpenDB"
Set OpenDatabaseInBackendAgent = New NotesDatabase("","")
End If
Exit Function
OpenDatabaseInBackendErrorHandle:
Print "CouldNotOpenDB"
Set OpenDatabaseInBackendAgent = New NotesDatabase("","")
Exit Function
End Function
HipSlu:
ok, danke - ich teste das gleich mal!
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln