Xpages - 每次保存文档时都会创建冲突

时间:2014-01-09 09:15:54

标签: xpages xpages-extlib xpages-ssjs

我有一个xpage,有多个标签。第一个选项卡包含一个面板,仅当isNewNote()为true时,其内容才可编辑。所以我计算了面板的readonly属性。

但每次我保存文档时,都会创建一个新的冲突文档。

同时,如果我取消选中只读属性,它会正确保存而不会发生任何冲突。

有人可以帮我解决这个问题吗?

代码 - Xpage

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

    <xp:this.data>
        <xp:dominoDocument var="document1"
            formName="frmOnboardingRequest">
        </xp:dominoDocument>
    </xp:this.data>
    <xp:panel>
        <xp:this.readonly><![CDATA[#{javascript:if(document1.isNewNote()){
    return false;
}else{
    return true;
}}]]></xp:this.readonly>
        <xp:table>
            <xp:tr>
                <xp:td>
                    <xp:label value="O n_ e d_ form completed by:"
                        id="oN_ED_FormCompletedBy_Label1" for="oN_ED_FormCompletedBy1">
                    </xp:label>
                </xp:td>
                <xp:td>
                    <xp:inputText
                        value="#{document1.ON_ED_EmployeeName}"
                        id="oN_ED_FormCompletedBy1">
                    </xp:inputText>
                </xp:td>
            </xp:tr>
        </xp:table></xp:panel>
    <xp:button value="Submit" id="button1"><xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button></xp:view>

3 个答案:

答案 0 :(得分:4)

检查指向同一文档的多个数据源。

之前的一些帖子有同样的问题 xpage creates save conflict on save/submit

Multiple data sources in XPages

Lotus Notes: Replication conflict caused by agent and user running on the document at same time

=============================================== ==

修改

我必须将按钮代码更改为此以获得相同的问题

  <xp:button value="Submit" id="button1"><xp:eventHandler event="onclick" refreshMode="complete" submit="true">
    <xp:this.action>
        <xp:saveDocument></xp:saveDocument>
    </xp:this.action></xp:eventHandler></xp:button>

经过多次测试后,试试这个。

将此字段添加到xpage的末尾

<xp:inputText id="inputText1"
        value="#{document1.temp}"
        style="visibility:hidden;display:none">
    </xp:inputText>

然后不会产生任何冲突。

答案 1 :(得分:0)

确实很奇怪 - 但也没有。您的数据源绑定到页面而不是面板。因此,如果您只想为该面板设置读取模式,请考虑从页面的数据源计算面板的数据源:

<xp:panel>
    <xp:this.data>
        <xp:dominoDocument var="document1" action="openDocument"></xp:dominoDocument>
    </xp:this.data>
</xp:panel>

当然,您必须计算文档模式和docid,而不是使用readonly属性。

答案 2 :(得分:0)

除了其他建议之外,在使用选项卡表时,您还需要仔细阅读此博文。我在之前的项目中遇到过类似的问题,Tommy Valand的redirectToCurrentDocument()修复了它们。

http://dontpanic82.blogspot.com/2010/06/xpages-avoid-saving-duplicate-documents.html