2016-06-30 8 views
1

Ich habe eine XPage mit einer einzigen Datenquelle document1. Ich möchte die Unid des Dokuments kennen, bevor es gespeichert wurde.Erhalten Sie eine Dokument-ID, bevor sie gespeichert wird, und ändern Sie sie beim Speichern nicht.

Es scheint, dass dies möglich ist, weil document1.getDocument().getUniversalID() einen Wert zurückgibt, bevor es gespeichert wird.

Dieser Wert ändert sich jedoch immer, sobald das Dokument gespeichert wird, und bleibt dann konstant. Gibt es eine Möglichkeit, die Unid so einzustellen, dass sie sich beim Speichern nicht ändert? Ich habe versucht if (document1.isNewNote()) document1.getDocument().setUniversalID(document1.getDocument().getUniversalID()), aber es ändert sich immer noch, wenn gespeichert.

Antwort

2

Ändern Sie die ID des Dokuments im Ereignis querySaveDocument von DominoDocument.

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

ist die komplette XPage Beispiel:

<?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> 
Verwandte Themen