Java DocumentContext不返回值
我在Lotus Notes中的Java代理中使用以下代码:Java DocumentContext不返回值,java,lotus-notes,lotus-domino,lotus,lotusscript,Java,Lotus Notes,Lotus Domino,Lotus,Lotusscript,我在Lotus Notes中的Java代理中使用以下代码: Session session = getSession(); AgentContext agentContext = session.getAgentContext(); Document doc = agentContext.getDocumentContext(); 但它将docvariable返回为Null值。我在表单的postsave中初始化LotusScriptcode中的代理。当我在postsave by ToolsR
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Document doc = agentContext.getDocumentContext();
但它将docvariable返回为Null
值。我在表单的postsave中初始化LotusScript
code中的代理。当我在postsave by ToolsRun宏中使用它时,它运行良好。但通过LotusScript的Run方法启动它根本不起作用
有人能帮我知道原因吗?当您使用run方法运行代理时,您可以通过ParameterDocId属性在代理中传递NoteId并访问它 我没有很好的解释为什么会这样,但是,DocumentContext属性的行为会根据代理运行的上下文而有所不同。下面是示例。你们可以通过消除的过程来确定发生了什么。在新邮件到达之前或从浏览器中,您不是在视图中运行。这意味着没有为您的代理建立DocumentContext 您可以在PostSave事件中执行以下操作:
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
然后在代理中执行此操作以获取通过的文档:
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
Document doc = db.getDocumentByID(agent.getParameterDocID());
请检查以下需要完成的步骤
谢谢但我最后做的是,将代码更改为用公式语言调用代理,它成功了。。不知道为什么。。但确实是这样,我在一个特工身上用过。我打电话给的探员是postsave的。