2023/10/15

プロフィール文書の取り扱い

よく使う機能ですが、いざ使うとなるとついついヘルプを見てしまう機能にプロフィール文書があります。そこで、プロフィール文書の基本的な取り扱いについてまとめておきます。


プロフィール文書とは

nsf 内に保存できる特殊な文書です。文書ではあるのですが、DB のプロパティの文書数にカウントされず、ビューに表示することができないのが特徴です。そして、作成されたプロフィール文書は、アプリケーションの利用者で共有します。

このような特性から、一般的には、アプリケーションの設定などの保存に利用します。設計と文書の中間的な位置づけと言えますね。


プロフィール文書の作成方法

一般的な作成方法について記述します。

まず、プロフィール文書のフォームを作成します。

作成手順は通常のフォームと同様です。ポイントは、文書の作成方法です。次の式でフォームを開き、保存するとプロフィール文書として保存される仕組みとなっています。"fConfigForm" は、プロフィール文書のフォーム名です。

   @Command([EditProfile]; "fConfigForm")

保存後、もう一度このコマンドを実行すると、前回保存した内容が開き、内容を再編集し更新することができます。


LotusScript の場合、NotesUIWorkspace クラスの EditProfile メソッドを使用します。

   Call notesUIWorkspace.EditProfile("fConfigForm")


プロフィール文書のアクセス(@関数)

次の式でプロフィール文書から値を読み込みます。次の式では、指定したプロフィール文書の "DBPath" というフィールドの値を取得します。

   @GetProfileField("fConfigForm"; "DBPath")

次の式でプロフィール文書の "DBPath" というフィールドに値をセットします。

   @SetProfileField("Profile"; "DBPath"; "names.nsf")


LotusScript の場合

LotusScript からもプロフィール文書にアクセスできます。

ただ、@関数と違い直接的にプロフィール文書内のフィールドにアクセスするのではなく、NotesDocument のオブジェクト経由でアクセスします。プロフィール文書の取得は NotesDatabase クラスの GetProfileDocument メソッドを使用します。

   Dim ns As New NotesSession
   Dim ndb As NotesDatabase
   Dim nd As NotesDocument

   Set ndb = ns.CurrentDatabase
   Set nd = ndb.GetProfileDocument("Profile")

   MsgBox nd.DBPath(0)

そして、フィールドのアクセスは、NotesDocument オブジェクト経由で通常のフィールドと同様にアクセスできます。


もちろん、フィールドに値をセットすることができます。

   nd.DBPath = "names.nsf"

ただし、プロフィール文書の場合 Save メソッドを使用して明示的に保存する必要はありません。フィールドに値をセットするだけで、プロフィール文書が更新されます。

0 件のコメント:

コメントを投稿