Domino 9 und frühere Versionen > ND7: Entwicklung
mal wieder ein Benachrichtigungsagent
Demian:
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
Driri:
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.
Demian:
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
Demian:
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
--- Ende Code ---
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)
.......
--- Ende Code ---
Er zeigt zwar die msgbox "Agent ran", aber die print-Befehle des Agenten werden nicht ausgeführt. Habe ich hier nen Denkfehler?
Gruß
Demian
Driri:
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.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln