Domino 9 und frühere Versionen > ND6: Entwicklung

Lotus Script - Zugriff auf anderen Server

(1/4) > >>

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