Takenoff Labs

Lotus Notes/Domino に関する Tips や、クラシックの名曲などを紹介します

[Notes/Domino] LotusScript でビューのカテゴリがあるかどうかを判定する方法

ビューのカテゴリは文書に参照権限が無い場合でも表示される、という件は前回述べましたが、最近とある案件でこのことを利用し、LotusScript からカテゴリがあるかどうかを判定しようとして、小一時間ほど悩んでしまいました(x_x)

同じことで悩む人もいるかもしれませんので、経緯などをログっときます。

やりたいこと

ビューに特定のカテゴリがあるかどうかを判定。文書に対して参照権限が無い場合でも、カテゴリが見えている場合には「ある」と判定させたい。

試したこと

まず、Evaluate({@DbColumn("";"NoCache"; ""; "ビュー名"; 1) = "チェックしたい値"}) としてやれば、カテゴリがあるかどうかは簡単にチェックできます。が、@DbColumn の戻り値は 64KB で、この案件では 64KB を超えることがあるかもしれないので、却下。

次に、NotesView.CreateViewNavFromCategory で NotesViewNavigator を返して、その中身をチェックすることを考えましたが、文書に参照権限が無い場合も、本当にカテゴリが無い場合も、両方とも Count が 0 になって区別ができません……。

では、ということで、NotesView.CreateViewNav で全体の NotesViewNavigator を作成し、GetNextCategory でカテゴリを全部なめればいいかな、と思ってやってみたところ、カテゴリ数が多いと滅茶苦茶時間がかかることが判明(x_x)

回避方法

で、結局どうしたかというと、ビューの方を細工しまして。1列目がカテゴリなわけですが、2列目に1列目とまったく同じカテゴリ列を挿入することで回避しました。こうすれば、必ず1列目と2列目が同じカテゴリになり、NotesView.CreateViewNavFromCategory で返った NotesViewNavigator の Count が 0 なら本当にカテゴリが無いことになり、1(以上)ならカテゴリがあることになります(文書に参照権限があっても無くても結果は同じ)。

かなり無理矢理チックな感じではありますので、他に良いやり方があれば、ぜひコメントしてくださいませm(_ _)m

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
読み込み中...

Navigation

トラックバック

トラックバックはありません

コメント

コメントはありません

※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。





(以下のタグが使えます)
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

For spam filtering purposes, please copy the number 4194 to the field below:

^
×