abOut.nsf

新旧かまわず、またお役立ち度にあまりこだわらずに、 拡張子がnsfであるNoSQLなデータベースファイルと、それを扱うコラボレーション製品に絡んでのあれこれを。

2015/10

こちらに書いたように、2015年9月16日に テク・てくカフェの第2弾を実施し

「だつ「だつNotes」」

をテーマにした談義の場を設けました。
あわただしかったせいで半月ほど放置していましたが、ホストした立場での感想をここに書いてゆきたいと思います。

前回のように、たまたまノーツコンソーシアムの研究会が行われたあとだった
なんて幸運がないのに、30人近い人数が来てくださり、会場おなじが人の熱でこころもち暖かくかんじられました。
みなさん今回のテーマについてはひとこと云いたい気持ちをお持ちのようでした。

今回自分自身がテーブルに参加して思ったこと。けっこう時間すぎるの早いなぁ!
勤務先の脱Notesの意見に対し果敢に行動されているのお話しなどを興味ぶかく聞きつつも、
うーんこっちの方のお話ももう少し聞けたらなぁ。

ワールド・カフェは途中でテーブルの移動があります。それぞれ旅先のテーブルでは話せたのかな?


(さて、最近の悪い癖ですが本作文は未完のまま公開始めちゃってますので、おいおい書き足してまいります)

あるDBで、選択した文書をアーカイブ。。別のDBに退避できるようにしたい、とします。

まずは元のDBを文書なしでコピーして空のDBをつくり、これをアーカイブ用ということにします。

次に、元のDBのプロパティ「アーカイブの設定」でアーカイブの条件を作成して、先ほどの空のDBを指定します。

細かな指定の仕方は、Dominoデザイナー関連のヘルプでご確認ください。
公式のヘルプは、メールDBのメッセージを前提としている感がある書かれ方ではありますが。

下図のように選択条件には、指定した期間とかではなく「ユーザーに選択された文書」がきちんとあります。
イメージ 2

Notes 9 日本語版だと、設定した際にこんなアラートが
イメージ 3

もしDBがメールDBの場合は、これで完了なのですが、
普通のアプリDBの場合は、これだけでは終わらないようです。

なぜなら、上記アラートに書かれている[アーカイブ] - で始まるメニューが、見つからない…存在しないからです!

メールDBにはメニューがちゃんとあります。(実際には [アクション]- [アーカイブ] - [すぐにアーカイブ]

どうやら、アーカイブの機能全般が、メールで行うことが前提のようになってしまっていて、ほかのDBで使うことがあまり想定されていない感じが強いです。一般のDBで上記メッセージが出るあたりは整合性の改善をお願いしたいところですね。

では、無いメニューをどうするかといえば、作ることは可能です。

メールにしたって、[アーカイブ]の各メニューは、標準のシステムアクションのようなものではなく、
メールDBの設計内に作りこまれたLotus Scriptのエージェントです。

だから、普通のアプリケーションDBでも、
選択文書をアーカイブする機能を実現したければ、
同じようなものを開発者側が作って提供すれば可能そうです。

そう考えて、ひとまずはメールDBの設計を覗くとします。


設計の名称など細かいところは略しますが、こんなコードが書かれており

イメージ 1

「archiveNow」 という、あまり見かけない、
実はデザイナーのヘルプには載っていないメソッドが使用されています。
これによってアーカイブ対象のDBへ文書が移動するわけです。

メールDBではもう少しきめ細かい作りになっていますが、基本的なアーカイブのロジックは
    ユーザーがビューで選択した文書(NotesDatabase.unprocesseddocuments)を
    NotesDocumentCollectionでとって、
    そのCollectionに対して、NotesDatabase.archiveNow を行う
という内容になると思います。これをビューのアクションや、アクションメニューのエージェントとして実装します

archiveNow はヘルプには載っていない(=undocumentedな)メソッドなので、IBMさんのサポート対象外となるかもしれませんからご留意ください。
そのarchiveNowを含むメールDBはサポート対象でしょうから、微妙な感じもしますが。

↑このページのトップヘ