Pergunta

Eu tenho uma xpage, com vários separadores.O primeiro separador contém um painel, cujo conteúdo são editáveis apenas quando isNewNote() é verdadeira.Então eu calculado atributo só de leitura para o painel.

Mas toda vez que eu salve o documento, é a criação de um novo conflito documento.

No sametime,se eu desmarcar a propriedade só de leitura, ela está salvando corretamente, sem qualquer conflito.

Alguém pode me ajudar a resolver este problema?

CÓDIGO - 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>
Foi útil?

Solução

Verifique múltiplas fontes de dados apontando para o mesmo documento.

Alguns posts antes com o mesmo problema xpage cria conflito de salvamento em salvar/enviar

Várias fontes de dados em XPages

O Lotus Notes:Conflito de replicação causado pelo agente e o usuário que está executando no documento ao mesmo tempo

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

Editar

Eu tive que alterar o código do botão para obter o mesmo problema

  <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>

Depois de mais alguns testes, tente este.

Adicione esse campo para a final da xpage

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

Em seguida, sem conflitos são criados.

Outras dicas

Estranho mesmo - mas também não.Sua fonte de dados está vinculada à página e não ao painel.Portanto, se você deseja definir o modo de leitura apenas para esse painel, considere calcular a fonte de dados do painel a partir da fonte de dados da página:

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

Claro que você tem que calcular o modo do documento e o docid em vez de usar a propriedade readonly.

Além das outras sugestões, ao trabalhar com tabelas com guias, você deverá seguir esta postagem do blog com atenção.Passei por problemas semelhantes em um projeto anterior e o redirectToCurrentDocument() de Tommy Valand os corrigiu.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top