Xpagesで開発しているのですが、フォームを開くときにssjsのgetRead()を使って特定のDBの
未読文書数をカウントしてフィールドに入れています。
var db:NotesDatabase = session.getDatabase("Server1", "common\\BB.nsf",false);
var v:NotesView = db.getView("(forXpages)");
var doc:NotesDocument = v.getFirstDocument();
var i = 0;
while (doc != null) {
if(doc.getRead()==false){
i = i +1
}
var tmpdoc:NotesDocument = v.getNextDocument(doc);
doc.recycle();
doc = tmpdoc;
};
var ucount = i;
var unReadField = getComponent("All_bb");
unReadField.setValue(ucount);
今までうまくいっていたのですが、最近作成したテストユーザーで未読文書が正常にカウント
されなくなりました。クライアントでDBを開いてみると未読文書が20文書あるのにも
関わらず、上記の結果は未読文書が0件となってしまいます。実際はいくつかのDBの未読
文書数を見に行っているのですが、全て未読文書数は0件となってしまいます。
if(doc.getRead()==false) の部分を if(doc.getRead()==true)と変えてみると、文書が全て既読として
カウントされていることがわかりました。
なぜ正しく未読文書数がカウントされないのでしょうか?この原因と対処法はありますでしょうか?