Autor Thema: Lotus Script - Zugriff auf anderen Server  (Gelesen 7926 mal)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Lotus Script - Zugriff auf anderen Server
« am: 29.08.03 - 11:41:45 »
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")
« Letzte Änderung: 29.08.03 - 11:42:41 von HipSlu »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #1 am: 29.08.03 - 12:03:34 »
....zugreifen mit Script auf andere Server, das geht schon, die Frage ist, hat der Server, auf dem das Script läuft auch die Berechtigung ?
Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #2 am: 29.08.03 - 12:17:59 »
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                :    #######################
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #3 am: 29.08.03 - 13:39:06 »
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
Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #4 am: 29.08.03 - 13:49:29 »
ok, danke - ich teste das gleich mal!
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #5 am: 29.08.03 - 14:03:46 »
leider....

dbcheck = OpenDatabaseInBackendAgent(MailServer, MailFile, "")
'Dim dbcheck As New NotesDatabase(MailServer, MailFile)
level = dbcheck.CurrentAccessLevel

==>

14:03:23                : Agent <REPLICA>  gestartet
14:03:23                :    #######################
14:03:23                :    xx/xx/xx wird bearbeitet
14:03:23  Error         : Line  57 /  Error 202: SET required on class instance assignment
14:03:23  Error         : Line  59 /  Error 183: Variant does not contain an object
14:03:23  Error         : QUELL-Datenbank xx/xx/xx / mail\xxx.nsf Access-Level nicht MANAGER: 0
14:03:23                :    #######################


das script gibt zwar eine db zurück, aber eine leere....
« Letzte Änderung: 29.08.03 - 14:04:36 von HipSlu »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #6 am: 29.08.03 - 14:29:33 »
ich weis ja nicht, wie Deine Übergaben aussehen, vielleicht hängts da ja schon ?

...jup, hatte ja geschrieben, das die funktion immer eine Datenbank zurückliefert.
Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #7 am: 29.08.03 - 14:38:24 »
      iServer = xdb.Server

diese Zeile müßtest du mal noch ausschalten, denn er sucht ja so auf dem gleichen server !
Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #8 am: 29.08.03 - 14:49:20 »
1. muss der Funktionsheader nicht besser heißen ???:
Code
Function OpenDatabaseInBackendAgent(iServer As String, iDBName As String, iDBReplicaID As String) As NotesDatabase
Also mit deklarierten Return-Datentyp (As NotesDatabase). Wenn man das wegläßt liefert die Funktion immer Variant zurück, oder?  

2. @HipSlu. Versuch mal:
Code

Set dbcheck = OpenDatabaseInBackendAgent(MailServer, MailFile, "")

also mit set. Die Funktion liefert ja ein Objekt zurück und das geht immer mit dem Schlüsselwort 'set'.
« Letzte Änderung: 29.08.03 - 14:53:03 von Axel_Janssen »
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #9 am: 29.08.03 - 14:52:32 »
...man kann die funktion als NotesDatabase declarieren, okay.

daß er das Set nicht benutzt hat ist mir garnicht aufgefallen - aber da sieht man wieder, wer lesen kann ist klar im Vorteil ;-)
« Letzte Änderung: 29.08.03 - 14:53:06 von Doc Torte »
Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #10 am: 15.10.03 - 13:32:56 »
Hallo,

danke für eure Antworten - hab das jetzt wieder mal versucht, da diese Scripts jetzt endlich automatisch laufen sollten, weil die Migration jetzt in die produktive Phase kommt.....

jedenfalls habe ich auch mit der Function das gleiche Problem:

OpenDatabaseInBackendAgent!!! Line  10 /  Error 4060: User CN=xx/O=xx/C=AT cannot open database xx/xx/xx!!mailtest\t1.nsf

in line 10 passiert ja eigentlich auch nichts anderes, als ich es auch vorher gemacht habe

If xdb2.Open( iServer , iDBName ) Then

insofern bin ich echt ratlos..... kann mir bitte jemand noch einen tip geben? vielen dank!

ps: ja, von den rechten her passt es 100%, und auch servername sowie filename passen!
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Glombi

  • Gast
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #11 am: 15.10.03 - 15:48:22 »
Hi,
hier was aus der Lotus Support Datenbank - vielleicht hilft es weiter:

The user who last saved or "stamped" an agent must be listed in the Run Unrestricted LotusScript agents fields in the Server document.  Note that it may take a period of time for this update to take effect.  (To test if this is the issue, place an asterisk in these fields - to allow access by all.)

The full hierarchical name of the server must be specified in script methods that reference databases via the NotesDatabase Class.  For example, using the Open method, the syntax is as follows:

      Call db.open("ServerA1/US/ACME","sales.nsf")

The server name must be listed explicitly in any referenced database's ACL and listed as Server, Manager.

Andreas
« Letzte Änderung: 15.10.03 - 15:49:16 von Glombi »

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #12 am: 15.10.03 - 16:01:19 »
Hallo,

der Server ansich hat alle Rechte Agents auszuführen. In der ACL der ZielDB war er "nur" in einer Gruppe verrechtet, habe das aber eben geändert - bringt leider auch nichts.

nach dem und anderen artikeln vermute ich aber, dass es gar nicht gehen wird....
http://groups.google.com/groups?q=comp.groupware.lotus-notes+Open+Database+on+another+server&start=10&hl=de&lr=&ie=UTF-8&selm=89hrvg%24n78%241%40nnrp1.deja.com&rnum=14
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #13 am: 15.10.03 - 16:53:55 »
der Beitrag, auf den Du linkst, bezieht sich auf Notes Zeiten vor R6. Unter R6 geht es definitiv. Bitte zieh Dir diese Übersicht rein:

http://www-10.lotus.com/ldd/46dom.nsf/7e6c7e584a76331b85256a46006f083e/574c99ccb345839185256976004e811e?OpenDocument

Da wird auf jeden Fall das passende dabei sein, höchspersönlich von der liebenswerten Julie K. präsentiert :-))
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #14 am: 15.10.03 - 17:28:03 »
f**k  ;D

alles klar, ich müsste auf allen zielservern den quellserver in die "trusted servers" aufnehmen, was aber leider nicht geht, da die noch r5 bzw sogar r4.6 sind.....

naja - muss ich eine andere möglichkeit finden *grübel*

ps: @Rob Green: vielen dank!
« Letzte Änderung: 15.10.03 - 18:04:52 von HipSlu »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Glombi

  • Gast
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #15 am: 15.10.03 - 17:39:39 »
Du könntest die andere Datenbank auf den gleichen Server replizieren. Dann klappt's auch mit dem Agenten.
Nach der Umstellung auf R6 kannst Du dann Deinen jetzigen Code verwenden, wenn Du die Trusted Server eingestellt hast.

Andreas

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re:Lotus Script - Zugriff auf anderen Server
« Antwort #16 am: 15.10.03 - 18:04:10 »
richtig - aber genau das ist es, was das script unter anderem machen soll - repliken mit replizierformel anlegen :-))

vorher noch z.b. checken, ob "replizieren vorübergehend deaktivieren" aktiviert ist, acl usw....

wie gesagt, ich muss nach anderen möglichkeiten suchen...
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz