如何在调用代理时在Xpages中传递Document上下文?

时间:2012-03-09 10:59:12

标签: lotus-notes xpages xpages-ssjs

如何在调用代理时在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());

我可以获取当前文档的项目值...但是我不想保存文档,而不保存我需要获取项目的项目值的文档。

请为此提供任何好的解决方案......

2 个答案:

答案 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