ノーツクライアントの管理をしていると連絡先(names.nsf)の各種設定(文書)の確認や設定変更が必要となることがあります。このような作業は得てしてトラブル対応の場合に多く、時間的余裕がないことが多々あります。そんな状況に備えて、手順を整理しておきます。
先日、ロケーション文書の設定の確認が必要になりました。今回は、その際に利用したプログラムをサンプル化して保管しておきます。
ロケーション文書の取得
まずはすべてのロケーションを順に取得する方法です。
連絡先である names.nsf の Locations ビューに接続。順に文書を取得するだけの単純なプログラムです。下記のサンプルでは文書内の Name フィールドからロケーション名を取得して表示しているだけです。実際には、この部分を必要な処理に変えるだけですね。
|
Option Declare Sub Initialize Dim ns As New NotesSession Dim ndb As NotesDatabase Dim nvLoc As NotesView Dim ndLoc As NotesDocument Dim s As String Set ndb = ns.GetDatabase("","names.nsf") 'ロケーション文書を順に調査 Set nvLoc = ndb.GetView("Locations") Set ndLoc = nvLoc.GetFirstDocument While Not (ndLoc Is Nothing) '発見 'ロケーションに対する処理をここに記述 s = ndLoc.GetItemValue("Name")(0) MsgBox s Set ndLoc = nvLoc.GetNextDocument(ndLoc) Wend End Sub |
現在のロケーションを取得
次は、現在使用中のロケーションだけを取得する方法です。
現在使用中のロケーション名は notes.ini の Location というエントリーに格納されています。NotesSession クラスの GetEnvironmentString メソッドで取得しています。
その値と各ロケーション文書の名称を比較して、現在使用中のロケーションを判断しています。
|
Option Declare Sub Initialize Dim ns As New NotesSession Dim ndb As NotesDatabase Dim nvLoc As NotesView Dim ndLoc As NotesDocument Dim sCur As String Dim s As Variant Set ndb = ns.GetDatabase("","names.nsf") 'notes.ini から現在のロケーション名を取得 sCur = ns.GetEnvironmentString("Location", True) sCur = StrLeft (sCur, ",") 'ロケーション文書を順に調査 Set nvLoc = ndb.GetView("Locations") Set ndLoc = nvLoc.GetFirstDocument While Not (ndLoc Is Nothing) s = ndLoc.GetItemValue("Name")(0) If s = sCur Then '発見 'ロケーションに対する処理をここに記述 MsgBox s End If Set ndLoc = nvLoc.GetNextDocument(ndLoc) Wend End Sub |
0 件のコメント:
コメントを投稿