xpages试图获取文档parentdoc返回null错误

时间:2013-02-05 17:58:40

标签: xpages

我正在尝试获取新响应文档的父文档,以便我可以在xpages中复制表单继承的功能。以下是我的代码和返回的错误:

Error while executing JavaScript action expression
Script interpreter error, line=3, col=60: 'parentDoc' is null
JavaScript code

   1: if (document2.isNewNote()) {
   2: var parentDoc:NotesDocument = database.getDocumentByID(document2.getParentId());
   3: getComponent("immediateParentSubject1").setValue(parentDoc.getItemValueString("Subject"));
   4: }

2 个答案:

答案 0 :(得分:4)

当我需要变量“document”的父文档句柄时,我通常使用dataContext和getParentDocumentUNID()。您可以将其用于新文档(尚未保存):

<xp:this.dataContexts>
    <xp:dataContext var="parentDoc">
        <xp:this.value><![CDATA[#{javascript:
            try {
                if (document.isResponse()) {
                    return database.getDocumentByUNID(document.getDocument().getParentDocumentUNID());
                } else {
                    return "";
                }
            } catch(e) {
                return "";
        }}]]></xp:this.value>
    </xp:dataContext>
</xp:this.dataContexts>

然后,您可以在其他控件中使用parentDoc并执行parentDoc.getItemValueString("Subject")等。

答案 1 :(得分:3)

datasource.getParentId()不会像您期望的那样返回NoteID。它返回UnID,这就是你需要像Per那样使用database.getDocumentByUNID的原因。

另一种方法是从URL获取父UnID:

param.get("parentId")

每当打开一个孩子时,也要考虑查找父主题。这样它只存储在一个地方,这总是一件好事。