[Notes/Domino] 設計解析講座: ノーツDBの構成要素
今回は、ノーツDBの構成についてざっと俯瞰していきたいと思います。今回も概要的な内容でゴメンナサイ。
ノーツDBの構成要素
API を使うには、まずノーツDBの構成要素がどのようになっているかをおさえておく必要があります。ノーツDBの構成要素を大雑把に分類すると、以下のようになると思います。
- IDテーブル
- ノート
- 索引
- それ以外(使用状況、アイテム定義テーブル、添付ファイルなどなど)
このうち、IDテーブルとノートについて、以下で概要を説明します。
IDテーブル
IDテーブルというものはあまり耳にしたことがない用語かもしれませんが、文字通りID(ノートID)を管理しているテーブルのことです。文書や設計の一覧が管理されている、と考えれば解りやすいかと。
ノーツDBの中には未読情報を管理している未読テーブルというものがありますが、これもIDテーブル形式で保管されています。
今回の連載ではあまり登場しないかもしれませんが、重要な要素なので覚えておいてください。
ノート
ノート(Note)とは、文書や設計のことです。ノートの構造は、ヘッダとデータ(アイテム)によって構成されています。文書と設計は、実は構造的には全く同じものであり、ノートクラスや中に入っているデータ($Flags)によって区別されているにすぎません。
文書と設計が構造的に同じ、という例を以下に2つ示します。
例1: キャッシュを覗いてみる
cache.ndk は実はノーツデータベース形式になっています。普通に「データベースを開く」ダイアログで「cache.ndk」と直打ちして開けば、cachd.ndk が開きます。
cache.ndk を開くと、ずらずらっと文書が表示されていると思います。カテゴリを見ると、「Form」とか「View」などのカテゴリがありますよね? これが設計を文書化したものになります。(おそらくノートクラスをいじっているだけだと思います。)
試しに文書のプロパティを見てみると、「$」付きのフィールドが並んでいます。これが設計である証です。キャッシュの設計文書は、「$Source~」で始まるアイテムが追加されていますので、これらの値や、「$TITLE」(ある場合のみ)の値を手がかりに、元の設計を探して、プロパティの内容を見比べてみてください。同じものであることが解るかと思います。
<キャッシュの内容>
<対応する設計(ここではドミノディレクトリのビュー)>
ちなみに、以前に紹介した bookmark.nsf の (ByURL) ビューの中にある文書も、設計文書です。こちらは、フレームのリサイズ情報、ビューのカスタマイズ(ソート変更、列移動)情報などを保管しているものと思われます。カスタマイズ情報を保管しているというよりは、カスタマイズ後の設計をまるごと保管してるっぽいですね(^^;
例2: アイコンを取得してみる
次に、LotusScript で設計要素を文書として取得してみます。どのDBでもよいので、以下のコードを記述したエージェントを作成してみてください。
Dim ss As New NotesSession Dim doc As NotesDocument Set doc = ss.CurrentDatabase.GetDocumentByID("FFFF0010") Msgbox doc.~$TITLE(0)
(「FFFF0010」はアイコン設計を意味します。アイコンがどのようなノートIDであっても、この値でアクセスできます。詳しくは次回以降のどこかで解説します。)
上記エージェントを実行すると、アイコンノートの「$TITLE」の値が表示されます。設計であっても文書と同じ方法でアクセスできることがお解りいただけたかと思います。
アイテム
ノートの中にあるアイテムは、フィールドによって作られるおなじみのやつですね。
アイテムはいくつかの種類があり、その種類によって保管形式が変わります。設計にしかない種類のアイテムもあります。設計解析では、このアイテムの中身からデータを読み込んで解析する作業がほとんどになります。
次回は、コードの書き方かノートの詳しい説明にしようかと思っていますが、なかなか説明の順番って難しいです(x_x) 解りづらいところがあったら、コメントくださいませ。
ちなみに、本連載では LotusScript だけで問題なくできること、たとえば ACL や ビューの検索などについては、説明しないか後回しにする予定ですのであしからず。
コメント
コメントはありません
※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。