Hello Domino программисты!SessionAsSigner - конфликты объектов базы данных
Я работаю над приложением XPages и я столкнулся с следующей проблемой:
Я должен использовать объект sessionAsSigner, чтобы получить количество всех документов в представлении. Я использую одно вычисленное поле для отображения: количество видимых документов пользователя/всех документов и другое вычисленное поле для отображения текущего (не sessionAsSigner) имени пользователя.
Страница выглядит следующим образом:
Под UserName Вычисляется код поля я поступил следующий код:
session.createName(session.getEffectiveUserName()).getCommon()
Под кодом DocCount вычисляемого поля я поступил следующий код:
var viewAsUser = database.getView("AllByHID");
var docCountUser = viewAsUser.getAllEntries().getCount();
var dbAsSigner = sessionAsSigner.getCurrentDatabase();
var viewAsSigner = dbAsSigner.getView("AllByHID");
var docCountSigner = viewAsSigner.getAllEntries().getCount();
return docCountUser.toString() + "/" + docCountSigner.toString();
Получил следующий результат:
Это правильное количество документов, текущий пользователь может видеть, но похоже, использование sessionAsSigner было полностью проигнорировано.
После некоторого "мастерить" Я сменил несколько строк кода, чтобы получить (?):
var dbAsSigner = sessionAsSigner.getCurrentDatabase();
var viewAsSigner = dbAsSigner.getView("AllByHID");
var docCountSigner = viewAsSigner.getAllEntries().getCount();
var viewAsUser = database.getView("AllByHID");
var docCountUser = viewAsUser.getAllEntries().getCount();
return docCountUser.toString() + "/" + docCountSigner.toString();
и в результате ...
Оба значения являются правильными, но я Интересно, почему я не могу получить их в один звонок? Я что-то упустил?
Любая помощь будет оценена по достоинству.
Означает ли это, что мне приходится перерабатывать только представление, или я должен также перерабатывать объект базы данных? – ShirouWrath
Вам просто нужно переработать представление. –
Хорошо, я вижу. Большое спасибо за Вашу помощь! – ShirouWrath