Autor Thema: Befehl db.open wird nicht ausgeführt  (Gelesen 4107 mal)

Offline webchild

  • Junior Mitglied
  • **
  • Beiträge: 94
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Befehl db.open wird nicht ausgeführt
« am: 09.11.04 - 17:03:01 »
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
« Letzte Änderung: 10.11.04 - 10:54:00 von webchild »
Grüße, Krista

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Befehl db.open wird nicht ausgeführt
« Antwort #1 am: 09.11.04 - 17:10:08 »
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline webchild

  • Junior Mitglied
  • **
  • Beiträge: 94
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Befehl db.open wird nicht ausgeführt
« Antwort #2 am: 09.11.04 - 17:52:38 »
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


Grüße, Krista

Offline webchild

  • Junior Mitglied
  • **
  • Beiträge: 94
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Befehl db.open wird nicht ausgeführt
« Antwort #3 am: 09.11.04 - 19:02:29 »
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

Danke, Krista  :)
« Letzte Änderung: 09.11.04 - 19:08:52 von webchild »
Grüße, Krista

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Befehl db.open wird nicht ausgeführt
« Antwort #4 am: 09.11.04 - 19:08:35 »
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

Offline webchild

  • Junior Mitglied
  • **
  • Beiträge: 94
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Befehl db.open wird nicht ausgeführt
« Antwort #5 am: 09.11.04 - 19:12:07 »
@koehlerbv
'Tschuldigung! Ich habe die Frage glatt überlesen!  :-[
Ich habe in einer Rahmengruppe eine Seite mit eingebetter Gliederung und in den Gliederungseinträgen sind die Formeln hinterlegt!

Grüße, Krista
Grüße, Krista

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Befehl db.open wird nicht ausgeführt
« Antwort #6 am: 09.11.04 - 19:27:56 »
Ok, da würde ich eigentlich nicht mit nennenswerten Problemen mehr rechnen. Aber eine Idee hab ich im Moment auch nicht.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline webchild

  • Junior Mitglied
  • **
  • Beiträge: 94
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Befehl db.open wird nicht ausgeführt
« Antwort #7 am: 10.11.04 - 10:53:01 »
Ich weiß zwar nicht wieso, aber das Problem tauchte auf weil ich die Formeln nicht direkt in den Gliederungseintrag geschrieben hatte, sondern im Gliederungseintrag den Aufruf des Agenten der wiederrum den Agenten in der anderen Datenbank aufrief... :P
Ich hatte diesen Weg belassen , weil ich es ja zuerst mit LS versucht hatte zu lösen und man LS nicht direkt in einem Gliederungeintrag eintragen kann.

So mit dieser Formal kann man einen Agenten in einer anderen Datenbank ausführen:
@Command( [FileOpenDatabase]; "Servername":"Datenbank" );
@Command([ToolsRunMacro]; "(CurrentUserIn)");
@Command([FileCloseWindow])

Grüße, Krista  :)

P.S. Und natürlich Danke an alle! Diese Forum ist wirklich toll!
Ich habe bis jetzt mit eurer Hilfe jedes Problem gelöst bekommen!
« Letzte Änderung: 10.11.04 - 10:59:12 von webchild »
Grüße, Krista

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz