0

这很难解释,所以我很感激你的阅读。

我有一个带有三个选项卡的 xPages 应用程序。每个选项卡都有自己的自定义控件。在第一个自定义控件上,我有以下代码:

<xp:this.data>
<xp:dominoDocument var="vendorApplication" formName="frmVendorApplication"
action="editDocument" computeWithForm="onsave">
<xp:this.documentId><![CDATA[#{javascript:( param.vendorAppNoteID || "");}]]>
</xp:this.documentId>
</xp:dominoDocument>
</xp:this.data>

在最后一个选项卡上,我有以下代码来保存文档

vendorApplication.save();
var vendorAppDocument = vendorApplication.getDocument();
//  a bunch of code that does vendorAppDocument.ReplaceItemValues( ..... )
vendorAppDocument.save();

我遇到的问题是,当我尝试保存一个新文档时,我一直到 vendorAppDocument.save() 然后我得到一个关于它为空的错误。如果我正在编辑现有文档,那很好。

我怀疑这与新文档时未设置 vendorApplication ( XSPDocument ) 有关。如何将 vendorApplication 设置为当前的 XSPDocument?或者您是否看到其他缺少的东西?

4

2 回答 2

1

Make sure to use getDocument(true) to have the backend document synced with changes made in the frontend document. So do the following:

vendorApplication.save();
var vendorAppDocument = vendorApplication.getDocument(true);
//  a bunch of code that does vendorAppDocument.ReplaceItemValues( ..... )
vendorAppDocument.save();
于 2013-08-13T20:29:09.683 回答
0

Turns out the issue was as simple as removing the action="editDocument"

<xp:this.data>
<xp:dominoDocument var="vendorApplication" formName="frmVendorApplication"
action="editDocument" computeWithForm="onsave">
于 2013-08-14T13:48:35.630 回答