XPages Получить дескриптор документа в элементе управления повтором

У меня есть элемент управления повтором, привязанный к источнику данных представления.

В каждой строке у меня есть ссылка, при нажатии которой я хочу проштамповать этот внутренний документ с несколькими изменениями значений поля, а затем сохранить эти изменения. Если произошла ошибка при сохранении, я хочу сообщить пользователю, что я хочу, чтобы панель, в которой существует повтор, обновлялась.

Как я могу получить документ, связанный со строкой, и проверить, сработало ли сохранение?


person user1753622    schedule 06.03.2013    source источник


Ответы (3)


Попробуйте вызвать сохранение в документе, а не в источнике данных представления:

var doc:NotesDocument = data.getDocument();
var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
doc.replaceItemValue("RcptDate", dt);
doc.replaceItemValue("RcptBy", sessionScope.get("customerBuyerName"));
doc.replaceItemValue("RcptStatus", "Receipted");
doc.save(true, false);
person W_K    schedule 06.03.2013

Почти готово, но внутренний документ не меняется :o(

Мой код для ссылки внутри элемента управления повтором...

var doc:NotesDocument = data.getDocument();
var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
doc.replaceItemValue("RcptDate", dt);
doc.replaceItemValue("RcptBy", sessionScope.get("customerBuyerName"));
doc.replaceItemValue("RcptStatus", "Receipted");

var dsName = "vdsReceipts.DATASOURCE";
var app = facesContext.getApplication();
var ds = app.getVariableResolver().resolveVariable(facesContext, dsName);
var ret = ds.save( facesContext, true );
person user1753622    schedule 06.03.2013
comment
@user1753622 user1753622, я думаю, важная часть заключается в том, получает ли скрипт дескриптор документа. Не могли бы вы включить контроль повтора? Если у вас нет var=data в элементе управления, он никогда не получит дескриптор документа. Кроме того, вы никогда не выдаете doc.Save, вы сохраняете другой объект. - person David Navarre; 06.03.2013
comment
Вы вносите изменения во внутренний документ, но сохраняете источник данных. Вы пробовали doc.save () вместо этого? - person Frantisek Kossuth; 07.03.2013

Мне любопытно, получает ли скрипт дескриптор документа. Если у вас нет var="data" в элементе управления повтором, он никогда не получит дескриптор документа.

Большая проблема в том, что вы никогда не выпускаете документ. Сохраняете, вы сохраняете другой объект. Итак, добавьте сохранение в верхнюю половину вашего скрипта.

var doc:NotesDocument = data.getDocument();
var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
doc.replaceItemValue("RcptDate", dt);
doc.replaceItemValue("RcptBy", sessionScope.get("customerBuyerName"));
doc.replaceItemValue("RcptStatus", "Receipted");
doc.Save();

После того, как вы действительно сохранили его, вы можете посмотреть источник данных, чтобы увидеть, сохранен ли он. Если бы все это было в одной базе данных, я думаю, это было бы излишним.

Надеюсь, что это делает.

person David Navarre    schedule 06.03.2013