NotesDatabase クラスには UnprocessedDocuments というプロパティがあります。これを使えば「現在実行中のエージェントにとって未処理の文書集合」 を取得することができます。
例えば、
|
Dim ns As New NotesSession Dim ndb As NotesDatabase Dim ndc As NotesDocumentCollection Set ndb = ns.CurrentDatabase Set ndc = ndb.UnprocessedDocuments '未処理の文書の一覧 |
と記述すると、ndc に未処理の文書の一覧が取得できます。
どの文書が返る?
では、未処理の文書とは具体的にどのように決定されるのでしょうか?実はエージェントのプロパティにある ”対象” により変化します。
「データベースのすべての文書」を選択するとその名称の通りの動作をします。よって、以下の記述はどちらも同じ結果を返すことになります。
|
Set ndc = ndb.UnprocessedDocuments Set ndc = ndb.AllDocuments |
それ以外の選択肢についての挙動を順にまとめます。
ビューのすべての文書
この設定も名称の通りの動作となります。現在のビューに存在するすべての文書が返されます。
ビューが基準となりますので、文書を開いている状態など、ビュー以外を開いている状態では、エージェントの実行自体がエラーとなります。
ビューのすべての未読文書
この設定もビューを基準とした機能ですので、ビューを開いた状態で実行する必要があります。
ビュー内の未読文書だけを抽出してくれるのですが、ビューの設計で未読文書を表示していなくても構わないようです。こんな設計はわかりにくいだけなのでおすすめはしませんが...
もちろん、データベースのプロパティで「未読マークを使用しない」を設定すると、この機能は動作しなくなります。この場合、UnprocessedDocuments は Count が 0 の空のコレクションを返します。
すべての選択文書
この設定の挙動は3パターンに分かれます。
まず、ビューを表示していて、カーソルで文書を選んだ状態です。この場合は、カーソルのある文書だけが返ります。
同じビューでも、チェックマークを付けて文書を選択している場合は、選択した文書が返ります。この時カーソルのある文書は返されません。例えば以下の例の場合では3文書が返され、「総務部」の文書は含まれません。
ビューではなく文書を開いている場合には、開いている文書1つだけを含むコレクションが返されます。「ビューのすべての文書」や「ビューのすべての未読文書」のようにエラーになりません。
選択肢が「すべての選択文書」となっており”ビューの”といついていない理由なのかもしれませんね。
ただ、ワークスペースでDBアイコンを選択した状態でエージェントを実行すると『選択したエージェントはビューウィンドウから実行してください。』とエラーが出ます。このエラーメッセージにはいただけないですね...。
続きは次回
今回は、エージェントの実行対象と UnprocessedDocuments プロパティの関係についてまとめました。まだ、「作成または変更されたすべての文書」が残っていますが、この設定については次回紹介したいと思います。












































