2012-03-26 10 views
2

I in Lotus Notes folgenden Code in einem Java-Agenten bin mit:DocumentContext nicht Wert zurück

Session session = getSession(); 
AgentContext agentContext = session.getAgentContext(); 
Document doc = agentContext.getDocumentContext(); 

Aber es kehrt DocVariable als Null Wert. Ich initialisiere Agent in LotusScript Code in Postsave des Formulars. Wenn ich es in Postsave von ToolsRun MAcro verwende, läuft es gut. Aber das Starten mit der Run-Methode von Lotus Script funktioniert überhaupt nicht.

kann mir jemand helfen zu wissen, was der Grund sein könnte?

Antwort

2

Wenn Sie einen Agenten mit der Run-Methode ausführen, können Sie eine NoteId übergeben und im Agenten mit der ParameterDocId-Eigenschaft darauf zugreifen.

Ich habe keine gute Erklärung für die Ursache, aber die DocumentContext-Eigenschaft verhält sich je nach dem Kontext, in dem der Agent ausgeführt wird, unterschiedlich.

1

Hier ist die documentation for DocumentContext. Sie können bestimmen, was durch den Eliminierungsprozess geschieht. Sie laufen nicht von einer Ansicht aus, bevor neue Nachrichten ankommen oder von einem Browser. Dies bedeutet, dass DocumentContext für Ihren Agenten nicht eingerichtet ist.

Sie könnten in der postsave Fall etwas tun:

Sub Postsave(Source As Notesuidocument) 
    Dim ns As New NotesSession, agent As NotesAgent 
    Set agent=ns.CurrentDatabase.GetAgent("PostSave Agent") 
    Call agent.Run(Source.Document.NoteID) 
End Sub 

Dann in Ihrem Agenten tun dies mit dem übergebenen Dokument zu erhalten:

Database db = agentContext.getCurrentDatabase(); 
Agent agent = agentContext.getCurrentAgent(); 
Document doc = db.getDocumentByID(agent.getParameterDocID()); 
+0

Vielen Dank. Aber was ich schließlich tat, war, den Code zu ändern, um Agent in der Formelsprache zu nennen, und es funktionierte .. Weiß nicht warum ... aber es tat es wirklich. –

+0

Ich benutzte das in einem Agenten. Der Agent, den ich angerufen habe, stammt aus Postsave. –

0

überprüfen Sie bitte die folgenden Schritte durchgeführt werden müssen ...

  1. Überprüfen Sie, ob der Agent mit Server ID oder Administrator ID
  2. signiert sein sollte
  3. Sie müssen die Eigenschaft Als Web-Benutzer (Eigenschaft) in Agent-Eigenschaft überprüfen.
  4. Überprüfen Sie Ihre Agent Target - View Window oder None
Verwandte Themen