xpages getDocument().getUniversalID()

#xpages

#xpages

Вопрос:

Я просто хочу кое-что проверить о получении универсального идентификатора:

Я создаю вычисляемое поле:

  <xp:text escape="true" id="computedField3"
    value="#{javascript:Cdoc.getDocument().getUniversalID()}">
</xp:text>
 

Когда я составляю документ. содержимое, которое находится на Xpage, вычисляемое поле уже имеет некоторый идентификатор UNID, и оно меняется, если я нажимаю обновить. В программировании lotus notes идентификатор UNID может быть получен, только если текущий документ был сохранен со значением по умолчанию @Text(@DocumentUniqueId) .

Должен ли я сначала сохранить источник данных Cdoc, чтобы получить правильный идентификатор UNID? Я знаю, что чего-то не хватает.

Спасибо за ваше время

Ответ №1:

Если вы обновите свою страницу в браузере, то фактически будет создан новый документ. Вот почему вы получаете другой идентификатор UNID.

Из ваших предыдущих вопросов я знаю, что вы определяете свой Cdoc как источник данных с

 <xp:this.data>
    <xp:dominoDocument
        var="Cdoc"
        formName="fmPersContact">
    </xp:dominoDocument>
</xp:this.data>
 

и это означает, что этот Cdoc создается каждый раз, когда вы открываете эту XPage.

Обновить:

Кроме того, вы также получаете другой UNID каждый раз, когда ваше поле вычисляется на сервере, когда вы выполняете частичное обновление, а документ еще не сохранен.

Комментарии:

1. Спасибо за ваш ответ. Итак, при разработке xpages нет необходимости сохранять источник данных (как это было в lotus notes: форма), чтобы получить его UNID ?

2. Нет, в этом нет необходимости. Вы также получаете UNID для нового созданного и еще не сохраненного документа в LotusScript. Только для получения Noteid вам нужно предварительно сохранить документ.

3. Я заметил, что этот идентификатор UNID также изменяется, когда я просто использую некоторый GetComponent(‘MyHeadacheDialog’).show() … почему?

4. Вероятно, потому, что это вызывает полное обновление. Но не .show(), а кнопка, которая включает этот код.

5. Я попробовал частичный параметр из свойства RefreshMode для кнопки, но все же мое вычисленное значение поля (UNID ), описанное в моем вопросе, меняется, когда я нажимаю кнопку.