1

调用代理时如何在 Xpages 中传递文档上下文?在 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());

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

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

4

2 回答 2

5

agent.runWithDocumentContext(currentDocument.getDocument(true))。这会将所有新值放入后端文档中,因此它的工作方式与 lotusscript 相同。此外,如果您需要使用注释表单计算当前文档,请将数据源的“computewithnotesform”属性设置为“onload”或“both”。

于 2012-03-09T20:55:05.960 回答
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
于 2012-03-09T11:38:46.770 回答