Autor Thema: mal wieder ein Benachrichtigungsagent  (Gelesen 1882 mal)

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
mal wieder ein Benachrichtigungsagent
« am: 18.06.07 - 17:11:05 »
Moin,moin,

ich brauche einen Agenten der auf per Script erstellte Doks referenziert. Also in Ansicht A wird ein Dok A erstellt. Im Querysave von Dok A wird ein Dok B in Ansicht B erstellt.

Wenn ich dem Agenten sage, er soll nachdem Dokumente erstellt oder geändert wurden starten, wie kann ich dann auf das Dok B in Ansicht B referenzieren (Link)? Funktioniert das auch mit db.unprocesseddocuments?

Gruß
Demian
Gruß
Demian

Driri

  • Gast
Re: mal wieder ein Benachrichtigungsagent
« Antwort #1 am: 18.06.07 - 17:18:31 »
Wenn Du Dok B erstellt hast, hast Du auch die NoteID des Dokuments. Das kannst Du bei der Run bzw. RunOnServer-Methode des Agents einfach übergeben.

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: mal wieder ein Benachrichtigungsagent
« Antwort #2 am: 18.06.07 - 17:21:17 »
Oh man, jetzt wo du es sagst. Ich kann den Agent ja auch einfach vom Script starten lassen, das ist wenigstens zeitnah. Manchmal sieht man den Wald vor lauter Bäumen nicht.

Vielen Dank Driri. Manchmal braucht man einen Stoß in die richtige Richtung.

Gruß
Demian
Gruß
Demian

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: mal wieder ein Benachrichtigungsagent
« Antwort #3 am: 18.06.07 - 20:10:52 »
glaube ich hab nicht die richtige Berechtigung für .runonserver...

Anbei das Initialize aus dem Agenten

Code
Sub Initialize	
	'*****************************************************************************************************
	'Dieser Agent wird im Querysave der Maske "Leiharbeitnehmer anlegen" beim Erstellen
	'der An- /Abmeldung gestartet. Die übergebene DocID bezieht sich auf das per Script
	'erstellte Dokument
	'*****************************************************************************************************
	Dim s As New notessession
	Dim db As notesdatabase
	Dim agent As NotesAgent
	Dim doc As notesdocument
	'*****************************************************************************************************
	
	
	Set agent = s.CurrentAgent
	Print agent.ParameterDocID
	
	Set db = s.CurrentDatabase
	
	Set doc = db.GetDocumentByID(agent.ParameterDocID)
	
	Print "DocID gefunden"	
	
	'Erforderliche Daten auslesen
	
	If Not (doc Is Nothing) Then	
		Call VariablenAuslesen(doc)
		Call EmailVorbereiten(db,doc)	
	End If		
End Sub


Aufgerufen wird der Agent mit folgendem Code:

               
Code
 .........

	If Art = "aufgenommen" Then 
		doc.Beginn = Beginn
	Else
		doc.Ende = Ende
	End If
	
	Call doc.Save(True,True)
	

	Dim agent As NotesAgent
	Set db = s.CurrentDatabase
	Set agent = db.GetAgent("BENACHRICHTIGUNG - Buttonänderung")
	
	If agent.RunOnServer(doc.NoteID) = 0 Then
		Messagebox "Agent ran",, "Success"
	Else
		Messagebox "Agent did not run",, "Failure"
	End If	
	
	'Call agent.RunOnServer(doc.NoteID)
                .......

Er zeigt zwar die msgbox "Agent ran", aber die print-Befehle des Agenten werden nicht ausgeführt. Habe ich hier nen Denkfehler?


Gruß
Demian
« Letzte Änderung: 19.06.07 - 08:41:08 von Demian »
Gruß
Demian

Driri

  • Gast
Re: mal wieder ein Benachrichtigungsagent
« Antwort #4 am: 19.06.07 - 11:44:50 »
Macht er denn, was er soll ? Das Print des Agent kannst Du im Client auch nicht sehen, wenn er auf dem Server rennt. Schaut mal ins Log rein, ob es da auftaucht.

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: mal wieder ein Benachrichtigungsagent
« Antwort #5 am: 19.06.07 - 11:49:36 »
Moin Driri,

die Lösung ist soeben gefunden. Bin kein Admin und wusste nicht, dass das dann nur im Serverlog erscheint. Habe ja auch keinen Zugriff auf das Log.

Aber folgendes hatte mir der Admin eben gemailt:

Zitat
19.06.2007 11:18:59   Agent printing: 17C6
19.06.2007 11:18:59   Agent printing: DocID gefunden
19.06.2007 11:18:59   Agent printing: Variablen ausgelesen
19.06.2007 11:18:59   Agent printing: Email wird erstellt
19.06.2007 11:18:59   Agent 'BENACHRICHTIGUNG - Buttonänderung' error: Couldn't get default View id for database (Abteilungen\public\Arbeitnehmerueberlassung.nsf)
Weiterhin hat er mir das hier gemailt:

Zitat
Problem For a Lotus Workflow application, you enable mail notification for the first activity in a process. When the OS Backgrounder agent runs, it stops and does not process any jobs. You do not see any error reporting within Lotus Workflow that indicates the cause of the problem.   Solution This behavior occurs when no default view is set in the Workflow Application database. The error condition is not reported within Lotus Workflow; however, if you have access to the Domino server console or log, you see the following error:

"Error 4175 Couldn't get default View id for database."

To resolve the problem, set the OSDefaultView as the default view again. In the View Properties, the option "Default when database is first opened" should be selected. (The OSDefaultView is set as the default view for any new application database, but it is possible for a designer to change that property, thus causing the problem.)


Das fett gedruckte war des Rätsels Lösung.

Vielen Dank Driri.

Gruß
Demian
« Letzte Änderung: 19.06.07 - 11:51:52 von Demian »
Gruß
Demian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz