Xpages:响应文档的奇怪行为

时间:2013-02-27 07:52:22

标签: xpages xpages-ssjs

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

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

这应该很简单,但我被困在代码或我的理解中。 我的问题在于: 我有一份主要文件'MyBirthday'。我想创建与MyBirthday链接的响应文档“MyFamily Birthday”。我想要这个而不提交我的主文档(我可以保存)。

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

我创建了两个类似的按钮(第一个用于新文档,第二个用于现有文档):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"))

然后在这个document1的postSaveDocument事件中:

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

请帮忙!!

1 个答案:

答案 0 :(得分:1)

Ravi,很可能你的currDoc没有docid,因为它还没有保存。在开头为您的函数添加一个currDoc。save();。在将其设置为null之前,还要添加respDoc.recyle();。此外,为您省略的每个;刻录一个jostick(并且不要试图争论那个< vbg>)。

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