Domino 9 und frühere Versionen > ND8: Entwicklung
Mailversand über Agent und Script Library klappt nicht
Tode:
Sorry, aber "DocumentContext" ist an dieser Stelle schlicht FALSCH... Auszug aus der Designer- Hilfe:
--- Zitat ---For scheduled agents, before mail arrives, after mail arrives, or any arent running on a Domino server and not invoked through a web browser, this property returns Nothing because there is no current document
--- Ende Zitat ---
Andrew Harder:
Sorry, hier muss ich Dich korrigieren:
Aus dem Eingangspost geht hervor, das der Agent aus dem PostSave Event der Forms aufgerufen wird.
--- Zitat ---Aus dem Form heraus wird das Dokument an den Agenten übergeben...
--- Ende Zitat ---
ThomasHB:
--- Zitat von: Andrew Harder am 27.06.13 - 13:24:54 ---Aus dem Eingangspost geht hervor, das der Agent aus dem PostSave Event der Forms aufgerufen wird.
--- Ende Zitat ---
Das stimmt... :)
Tode:
gut... dann quoten wir halt um die Wette...
--- Zitat --- If Not agent.Run(Source.Document.NoteID) = 0 Then
Messagebox "Agent did not run",48, "Failure"
End If
--- Ende Zitat ---
Ein Agent, der mit "run" aufgerufen wird, hat kein Frontend... (bricht sogar ohne Meldung ab, wenn nur ein Dim ws as New NotesUIWorkspace drin ist)... Insofern ist der wie ein "ServerAgent" zu behandeln (der halt im Client- Background läuft)...
Beweis:
1. maske "TEST" mit folgendem code im Postsave:
--- Code: --- Dim db As NotesDatabase
Set db = Source.Document.ParentDatabase
Set ag = db.GetAgent( "Test" )
Call ag.Run( Source.Document.NoteID )
--- Ende Code ---
Dann Agent "Test" mit folgendem Code:
--- Code: --- Dim ses As New NotesSession
Dim doc As NotesDocument
Dim ag As NotesAgent
Dim agLog As New NotesLog( "Test" )
Call agLog.Openagentlog()
Set ag = ses.Currentagent
Call agLog.Logaction("agentnoteid=" + ag.Parameterdocid)
Set doc = ses.Documentcontext
If Not doc Is Nothing Then
Print "noteid=" + doc.Noteid
Call agLog.Logaction("noteid=" + doc.Noteid)
Else
Call agLog.Logaction("no noteid")
End If
Call agLog.Close()
--- Ende Code ---
Und hier das AgentLog:
--- Zitat ---Started running agent 'Test' on 27.06.2013 13:40:50
27.06.2013 13:40:50: agentnoteid=A9A
27.06.2013 13:40:50: no noteid
Ran LotusScript code
Done running agent 'Test' on 27.06.2013 13:40:50
--- Ende Zitat ---
Andrew Harder:
--- Zitat von: Tode ---gut... dann quoten wir halt um die Wette...
--- Ende Zitat ---
Lustig :D
Ich würde nicht auf die Idee kommen einen Agenten so aufzurufen, sondern wenn nichts dagegen spricht immer das folgende nutzen:
--- Code: ---@command[ToolsRunMacro];"("(SendMailCall)")")
--- Ende Code ---
Grund:
--- Zitat ---You cannot debug a called agent
--- Ende Zitat ---
Nicht debuggbarer Code ist für mich ein NoGo.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln