Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: machineslave am 04.03.08 - 15:26:52
-
Hallo,
folgendes Szenario:
Auf einem Domino Server in Notes Domäne A läuft eine Webanwendung, welche im WebQuerySave-Event einen Agenten eingetragen hat.
Dieser soll in eine Datenbank auf einem Server in Domäne B ein Dokument ändern.
Rufe ich den Agenten manuell über den Notes Client auf, so funktioniert das reibungslos.
Berechtigungen etc. habe ich bereits geprüft.
Wenn dieser allerdings über das Webformular aufgerufen wird, bekomme ich auf der Konsole eine Fehlermeldung "Database has not been opened yet".
Ich habe den Server aus Domäne A schon als Trusted Server im Serverdokument in Domäne B eingetragen.
Hat jemand einen Tipp?
Danke und Gruß
Stefan
-
Ja, Fehlermeldung genau lesen! ;)
Probier mal im Code ein db.Open und fang dort auch ev. Fehler ab.
-
Wenn ich den Fehler abfange, bekomme ich genau das zurück:
Database <datenbankname> has not been opened yet.
Merkwürdigerweise bekomme ich diesen Fehler nicht, wenn ich auf einen anderen Server in der fremden Domäne dieselbe DB öffnen möchte.
-
Wie sind die Einstellungen auf dem zweiten Reiter der Eigenschaftenbox des Agenten?
Set Security level, run on hehalf of?
-
Das ist Level 2 mit Run on behalf of: <Server, wo der Agent gestartet wird>
-
Wir brauchen Code ... Wie ist das Datenbankobjekt deklariert?
Dim dbRemoteServer As New NotesDatabase ("", "")
sollte schon sein, und dann entsprechend zuweisen. Ohne Code ist das jetzt aber ins Dunkle gefeuert ...
Bernhard
-
Ohne Code ist das jetzt aber ins Dunkle gefeuert ...
... sehe ich auch so.
Die Fehlermeldung deutet darauf hin, daß die Datenbank entweder nicht richtig initialisiert wurde => Schreibfehler bei Server und/oder Pfad, oder du dort keine Rechte auf die Datenbank hast...
Toni
-
Hallo,
die Berechtigung habe ich überprüft, die stimmt soweit.
Hier wäre der Code:
Sub Initialize
Dim session As New NotesSession
Dim db As New NotesDatabase("", "")
Dim view As NotesView
Dim doc As NotesDocument
Dim nabDoc As NotesDocument
Set doc = session.DocumentContext
On Error Goto fehler
Call db.Open("<server>", "names.nsf")
Set view = db.GetView("($VIMPeople)")
aUser = doc.UserName(0)
Set nabDoc = view.GetDocumentByKey(aUser)
If Not (nabDoc Is Nothing) Then
nabDoc.JobTitle = doc.JobTitle
Call nabDoc.save(True, False)
End If
Print "Success"
Exit Sub
fehler:
Print Erl
Print Err
Print Error
Exit Sub
End Sub
-
Ich würd mal nach dem db.Open einen Test einbauen, ob die DB auch wirklich offen ist.
-
Wenn ich folgenden Code verwende:
flag = db.Open("<server>", "names.nsf")
print flag
... bekomme ich False ausgegeben.
Merkwürdig ist halt, warum er mir nicht sagt, warum er die DB nicht öffnen kann.
-
Hab's herausbekommen.
Ich habe einfach ein Verbindungsdokument zu dem Server, der in der anderen Domäne ist, erstellt; schon kann ich auch die Datenbank öffnen.
Gruß
Stefan
-
... es ist wie immer - kaum macht man's richtig - tut's ;D
Toni