Autor Thema: messagebox in agent  (Gelesen 2729 mal)

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
messagebox in agent
« am: 07.06.05 - 12:50:33 »
mahlzeit zusammen,

wenn ich im Initialize() eines Agenten ein
Code
MessageBox "Hi"
habe, sollte dann die MessageBox bei mir sichtbar sein?
Ich hab die DB einmal als "local" und einmal auf einem Domino-Server, der auch auf meinem lokalen Rechner installiert ist. In beiden Fällen sehe ich keine Messagebox. Das ganze brauch ich nur, um zu sehen, ob in bestimmte Zeilen des Agenten gesprungen wird, so ganz blicke ich nämlich beim Agenten-Debuggen noch nicht durch (und nicht nur  da...  ??? ).


s.
« Letzte Änderung: 07.06.05 - 15:58:08 von littleS »

klaussal

  • Gast
Re: messagebox in agent
« Antwort #1 am: 07.06.05 - 12:54:30 »
Wie startest Du den Agenten ?
Für welche Dokumente soll er gelten ?

Ich hab das mal mit "Auswahl im Menü Aktionen" und "alle Dokumente" getestet = funzt  :D

PS: ich kann Dir auch gerne Nachhilfe geben, Köln ist nur 80 km entfernt ... ;)
« Letzte Änderung: 07.06.05 - 12:56:11 von klauss »

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Re: messagebox in agent
« Antwort #2 am: 07.06.05 - 13:09:25 »
Hi,

Also der Agent ist shared, on schedule (never), target: all documents in database, run on behalf of (ein user mit allen rechten), security level 1.

Gestartet wird der Agent per
Code
Dim session As New NotesSession
	Dim agent As NotesAgent
	
	'// Dokument zur Parameterübergabe an Agenten anlegen
	Dim paradoc As NotesDocument
	Dim nID As String
	
	Set paradoc = gdb.CreateDocument
	paradoc.Form = "frmParaKatAgent"                                       '// Form enthält Felder zur Parameterübergabe an Agenten
	paradoc.AlterKategorieText = sAlterKategorieText              '// Werte der Parameter setzen
	paradoc.NeuerKategorieText = sNeuerKategorieText
	paradoc.KategorieFarbe = sKategorieFarbe
	Call paradoc.ComputeWithForm(True,True)
	Call paradoc.Save(True,True)
	
	nID = paradoc.NoteID
	
	Set db = session.CurrentDatabase
	Set agent = db.GetAgent("KategorienTextFarbeAendern")
	
	If Not (agent Is Nothing) Then
		If Not agent.RunOnServer(nID) = 0 Then                          '// Agenten-Aufruf mit Paramtern, die im Dokument nID gespeichert sind
			Messagebox "Agent lief nicht!",48,"Fehler"
		End If
	Else
		Messagebox "Agent wurde nicht gefunden",48,"Fehler"
	End If

im initialize des agenten steht dann:
Code
Messagebox "Hi"
	
	Dim ddoc As NotesDocument
	Dim na As NotesAgent
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim dc As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim sAlterKategorieText As String
	Dim sKategorieText As String
	Dim sKategorieFarbe As String
	
	Set db = session.CurrentDatabase
	Set na = session.CurrentAgent
	Set ddoc = db.GetDocumentByID(na.ParameterDocID)
	
	sAlterKategorieText = ddoc.AlterKategorieText
	sKategorieText = ddoc.NeuerKategorieText
	sKategorieFarbe = ddoc.KategorieFarbe
	
	'//Dim i As Integer
	
	Set dc = db.AllDocuments
	'//i = 0
	Set doc = dc.GetFirstDocument
	Do Until doc Is Nothing
		If doc.Form(0) = "frmTermin" Then                                           '// Feiertage auch behandeln??? (nicht implementiert)
			If doc.TerminKategorie(0) = sAlterKategorieText Then
				doc.TerminKategorie = sKategorieText                         '// neuen Text setzen
				doc.TerminKatFarbe = sKategorieFarbe                       '// neue Farbe setzen
				'//i = i + 1
				Call doc.Save(True, True, True)
			End If
		End If
		Set doc = dc.GetNextDocument(doc)
	Loop	


s.

klaussal

  • Gast
Re: messagebox in agent
« Antwort #3 am: 07.06.05 - 13:15:39 »
Dann schalte mal den Debugger ein und starte den Agenten per Hand. Was passiert ? Wo steigt er aus ?

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Re: messagebox in agent
« Antwort #4 am: 07.06.05 - 13:23:36 »
hmm,

also wenn ich den agenten so einstelle: event (action menu selection) und dann per hand starte, sehe ich die Messagebox. Er läuft dann bis zu der Stelle wo auf den übergebenen Parameter zugegriffen werden soll
na.ParameterDocId
das leuchtet mir ein, daß er dann abbricht, weil dem Agenten ja keine NoteId übergeben wurde, wenn er von Hand gestartet wird. Ich werd mal versuchen, die Id des "Paramter Dokuments" festzuverdrahten und mal schaun, was der Debugger dann sagt.
Erstmal danke für die flotte (wie immer) Hilfe.


s.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: messagebox in agent
« Antwort #5 am: 07.06.05 - 14:08:10 »
Wenn Du den Agent Scheduled laufen lässt siehst Du keine Messagebox.
Die Ausgabe wird höchstens im ServerLog sichtbar sein.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Re: messagebox in agent
« Antwort #6 am: 07.06.05 - 15:15:50 »
hi,

im Serverlog hab ich meine Messages gesehen. Gibt es eine Möglichkeit das Serverlog per F9 oder ähnlichem auf den neuesten Stand zu bringen?

s.

klaussal

  • Gast
Re: messagebox in agent
« Antwort #7 am: 07.06.05 - 15:22:44 »
Die Ansicht ja, das einzelne Doc nicht (soweit ich weiss). Da hilft wohl nur öffnen, schliessen, öffnen........

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: messagebox in agent
« Antwort #8 am: 07.06.05 - 15:45:25 »
Kleiner Tipp:
schau Dir mal das OpenLog projekt auf http://www.openntf.org an.

gruss
umi >:D
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz