2016-06-30 6 views
1

私は単一のデータソースを持つXPageを持っていますdocument1。文書が保存される前に、文書のunidを知りたいと思います。文書を保存する前にunidを取得し、保存時に変更しないでください

document1.getDocument().getUniversalID()が保存される前に値を返すので、これが可能なようです。

ただし、この値は、ドキュメントが保存されると常に変更され、その後も変更されません。 unidを設定する方法はありますか?保存されると変更されません。私はif (document1.isNewNote()) document1.getDocument().setUniversalID(document1.getDocument().getUniversalID())を試しましたが、それは保存されても変わりません。

答えて

2

dominoDocumentのquerySaveDocumentイベントでドキュメントのIDを変更します。ここで

if (document1.isNewNote()) { 
    document1.getDocument().setUniversalID(yourID); 
} 

完全なの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="Test"> 
      <xp:this.querySaveDocument><![CDATA[#{javascript: 
       if (document1.isNewNote()) { 
       document1.getDocument().setUniversalID(document1.getItemValueString("id")); 
       } 
      }]]></xp:this.querySaveDocument> 
     </xp:dominoDocument> 
    </xp:this.data> 

    <xp:inputText 
     value="#{document1.id}" 
     defaultValue="#{javascript:document1.getDocument().getUniversalID()}"> 
    </xp:inputText> 

    <xp:button 
     value="Label" 
     id="button1"> 
     <xp:eventHandler 
      event="onclick" 
      submit="true" 
      refreshMode="complete" 
      immediate="false" 
      save="true"> 
     </xp:eventHandler> 
    </xp:button> 
</xp:view> 
関連する問題