Domino 9 und frühere Versionen > Entwicklung

Befehl db.open wird nicht ausgeführt

(1/2) > >>

webchild:
Hallo liebe Forumsmitglieder,
ich bin bei meinem Versuch, aus der Bookmark heraus einen Agenten in einer Datenbank auf dem Server zu starten, auf eine Problem gestoßen.

Er startet nur, wenn die Datenbank vorher mal geöffnet wurde.
Jetzt habe ich mir gedacht ich schreibe ein Script das die Datenbank erst öffnet und dann den Agenten startet.

Das ist mein Versuch und über die Hilfe komme ich jetzt nicht weiter:  ???

Dim s As New NotesSession
Dim agent As NotesAgent
Dim db As NotesDatabase
   
Set db = New NotesDatabase( "AC1", "abwesenheit.nsf" )
If Not db.isopen Then
   Call db.open(db.server, db.filepath)
End If
   
Set agent = db.GetAgent("CurrentUserIn")
If agent.Run = 0 Then
   Exit Sub
Else
   Messagebox "Agent did not run",, "Failure"
End If

Er meldet beim Durchlauf mit dem Debugger das die Datenbank nicht geöffnet wäre und die Eigenschaft "IsOpen" der Db steht auch nach dem Aufruf von "db.open" noch auf "False".
Was stimmt nicht oder geht so etwas von der Bookmark.nsf aus nicht?

Grüße, Krista  :D

Semeaphoros:
Wo in der Bookmark.nsf startest Du das? Da die Bookmark vom System sehr früh geöffnet wird, ist es schon möglich, dass da noch keine Netzverbindungen möglich sind.

webchild:
Also ich war blöd hatte nicht darauf geachtet das die Datenbank im Verzeichnis Test auf dem Server liegt! >:(

Also nachdem ich meine Dummheit korrigiert hatte taucht das Problem jetzt anders herum auf! Ich kann die Agenten genau einmal ausführen dann kommt die Meldung Agent nicht gefunden.
Ich rate mal weil ich die Datenbank nicht wieder geschlossen habe. >:(
Genau so jetzt habe ich den Code so geändert:

Dim s As New NotesSession
Dim agent As NotesAgent
Dim db As NotesDatabase
   
Set db = New NotesDatabase( "AC1", "Test\abwesenheit.nsf" )
If Not db.isopen Then
   Call db.open(db.server, db.filepath)
End If
   
Set agent = db.GetAgent("CurrentUserIn")
If agent.Run = 0 Then
   db.Close
   Exit Sub
Else
   Messagebox "Agent did not run",, "Failure"
End If

Jetzt läuft das Script ohne Probleme durch nur führt es die Agenten nicht aus! :'(

Aber zu Agenten starten habe ich in der Hilfe keine andere Anweisung gefunden!

Ich suche!
Danke bis jetzt, Krista


webchild:
So jetzt habe ich es mit @Formeln versucht!
Aber wenn ich versuche  diesen Code ein zweites mal aufzurufen kommt die Fehlermeldung:
"Der angegebene Agent ist nicht vorhanden!"  ???

@Command( [FileOpenDatabase]; "AC1":"Test/abwesenheit.nsf" );
@Command([ToolsRunMacro]; "(CurrentUserIn)");
@Command([FileCloseWindow])

Hat dazu jemand eine Idee!

Ich habe es jetzt damit versucht, weil ich diesen Fehler ja mit LS auch hatte aber ihn durch das Schließen der DB weg bekommen hatte nur schienen die Agenten nicht sichtbar aufgerufen zu werden.


--- Code: --- Dim s As New NotesSession
Dim agent As NotesAgent
Dim db As NotesDatabase

Set db = New NotesDatabase( "AC1", "Test\abwesenheit.nsf" )
If Not db.isopen Then
Call db.open(db.server, db.filepath)
End If

Set agent = db.GetAgent("CurrentUserIn")
Call agent.Run
If agent.Run = 0 Then
db.Close
Else
Messagebox "Agent did not run",, "Failure"
End If
--- Ende Code ---

Danke, Krista  :)

koehlerbv:
Die BOOKMARK.NSF ist (mehr oder weniger) eine System-DB. Da kommt es schon sehr darauf, an welcher Stelle Du da schraubst. Beantworte bitte mal die Frage von Semeaphoros ...

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln