如何在调用代理时在Xpages中传递Document上下文?在Xpage中,我需要使用来自我的Xpage的documentcontext调用java代理,而且我还需要将当前文档作为参数传递...
在Lotuscript中我们可以轻松完成而不保存当前文档,但在Xpage中我使用以下代码。,document1是当前文档。
var agent=database.getAgent("AgentName");
agent.runWithDocumentContext(currentDocument.getDocument());
此代码我无法获取当前文档项的值,但如果我将使用以下代码,
var agent=database.getAgent("AgentName");
document1.save();
agent.runWithDocumentContext(currentDocument.getDocument());
我可以获取当前文档的项目值...但是我不想保存文档,而不保存我需要获取项目的项目值的文档。
请为此提供任何好的解决方案......
答案 0 :(得分:5)
agent.runWithDocumentContext(currentDocument.getDocument(真))。这会将所有新值放在后端doc中,因此它的工作方式与lotusscript相同。此外,如果您需要使用notes表单计算currentdocument,请将数据源的'computewithnotesform'属性设置为'onload'或'both'。
答案 1 :(得分:2)
由于xPage上可以有多个文档源,我使用ParameterDocID ...
var id = document1.getDocument().getNoteID();
var agent = database.getAgent("MyAgent");
agent.run(id)
并在代理人......
Call GetDocument(agent.ParameterDocID)
...
Public Sub GetDocument(DocID As String)
On Error GoTo eh
Set Doc = Db.GetDocumentByID(DocID)
es:
Exit Sub
eh:
Resume es
End Sub