Xpages :响应文档的奇怪行为



我有2个按钮,button1(为新的主文档创建响应文档(和按钮2(为现有主文档创建响应文档(当我第一次创建一个新的主"MyBirthday"文档并创建响应时,即使我尝试创建更多响应文档,也只会创建 1 个响应文档。这是我隐藏 button1 的时间,它在调用 create-responseDoc 函数之前保存主文档。

对于响应文档的第二个或多个条目,我创建了直接调用 create-responseDoc 函数的 button2,因为我的主文档已经保存。单击按钮 2 不会影响任何内容。它不会创建响应。但是,如果我关闭并重新打开文档..同样的事情工作正常。我发现很难理解幕后到底发生了什么!!

这应该很简单,但我被困在代码或我的理解中。这是我的问题是:我有一个主文件"我的生日"。我想创建与我的生日相关联的响应文档"我的家庭生日"。 我想要这个而不提交我的主文档(我可以保存它(。

我做了什么:我创建了生日 xpage 和 2 个用于家庭生日的字段。单击"创建响应文档 1"按钮,首先我使用简单的操作保存主文档。然后我通过 SSJS 中的函数创建响应文档。

我创建了 2 个类似的按钮(第一个用于新文档,第二个用于现有文档(:1 个将首先保存主文档,然后将调用此函数,另一个按钮不会保存主文档,但会调用和创建响应。

功能如下:

function fncCreateResponseDoc(currDoc:NotesDocument)
{
    var name = sessionScope.get("FNAME")
    var Bday = sessionScope.get("FBIRTH")
    var respDoc:NotesDocument = database.createDocument()
    respDoc.replaceItemValue("Form","rfFamily") 
    respDoc.replaceItemValue("FName",name)
    respDoc.replaceItemValue("FBirthday",Bday)
    respDoc.makeResponse(currDoc)
    respDoc.save()
    respDoc = null
}

然后在下面,我重复查看这些响应文档。重复的数据绑定公式如下所示 -> currentDocument.getDocument().getResponses()

在保存主文档之前,我设置了 sessionScope 变量:

sessionScope.put("FNAME",currentDocument.getItemValueString("FName"))
sessionScope.put("FBIRTH",currentDocument.getItemValueDateTime("FBirthday"))

然后在此文档 1 的 postSaveDocument 事件中:

var currDoc:NotesDocument = currentDocument.getDocument(true)
fncCreateResponseDoc(currDoc)

请帮忙!!

Ravi,很可能你的currDoc没有docid,因为它还没有被保存。添加当前文档。一开始就save();你的函数。还要在将其设置为 NULL 之前添加respDoc.recyle();。此外,每;你省略一个jostick(不要试图争论这个问题(。

让我们知道它是怎么回事。

最新更新