当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2016年1月28日木曜日

データベースリンク情報の確認

皆さん、こんにちは。もうすぐ1月も終わりです。
そして、今月末からIBM Connect 2016です。

今年はどんな情報が待ち受けているのか楽しみですね。



また、本日(2016年1月28日)、OnTimeさまのHPにOnTime Open APIについての記事を寄稿させていただいたところ、本ブログサイトの番外編ということで、掲載されました。\(^o^)/
記事はこちら→OnTime Open APIを活用しよう!
Notes/Dominoユーザーであれば、カレンダー/スケジュールの機能強化は是非ともかなえたいものですからね。今後も不定期ではありますが、OnTime関連のことは書いていきますので、本編ともどもよろしくお願いします。



さて、今日はそんなIBM Connect 2016やOnTime とは関係ない話題です(笑)。

知っているようで知らない(なんてことはない?)データベースリンクについてです。

データベースリンクとは

データベースリンクとは、Notes DBの実体を指し示すテキストファイルです。
実際のファイルパスを記述したテキストファイルを「****.nsf」というファイル名で表すという手法をとります。
この時、実際のNotes DBのファイル名とデータベースリンクのファイル名は異なっていても問題ありません。
Notes/Dominoでは、データベースリンクのファイル名で認識されます。

詳細は、管理者ヘルプにあるディレクトリリンクとデータベースリンクの作成、更新、削除を参照してください。


NotesDatabaseクラスのIsLinkプロパティ

Notes DBがデータベースリンクであるかどうかはLotus ScriptのNotesDatabaseクラスのIsLinkプロパティを使うことで確認できます。
下記のサンプルは、選択したNotes DBがデータベースリンクであるかどうかを判定するものです。

Sub Click(Source As Button)
    Dim uiws    As New NotesUIWorkspace
    Dim ret     As     Variant
    Dim session As New NotesSession
    Dim db      As     NotesDatabase
    
    ret = uiws.Prompt( 13, "", "" )
    If Isempty( ret ) Then
        Msgbox "キャンセルがクリックされました。処理を中止します。", 0 + 16, MSGTITLE
        Exit Sub
    End If
    
    Set db = session.GetDatabase( ret(0), ret(1), False )
    If db Is Nothing Then
        Msgbox "選択したNotes DBにアクセスできません。", 0 + 16, MSGTITLE
        Exit Sub
    Else
        If db.IsLink Then
            Msgbox ret(2) & "はリンクファイルです。", 0 + 64, MSGTITLE
        Else
            Msgbox db.FilePath & "はnsfの実体です。", 0 + 64, MSGTITLE
        End If
    End If
End Sub


※Notes DBがローカルにある場合、オープンしてしまうと実体の方にアクセスされてしまい、IsLinkプロパティの値が正しく取得できません。


ヘルプのサンプルを利用すると、ローカルPC内のNotes DBのうち、データベースリンクになっているものをまとめて表示してくれます。
Dim dbdir As New NotesDbDirectory("")
の""の部分をDominoサーバ名にすれば、そのDominoサーバ内の全Notes DBを検索してくれるので、棚卸に利用できるでしょう。
ただし、ディレクトリリンクには対応していないので、それは別の方法で探してください。 *1




*1 Domino Administratorクライアントを利用すれば、ディレクトリ名/データベースアイコンがショートカットアイコンのような形になるので分かり易いでしょう。下図に示します。
Domino Administratorクライアントの画面


古いバージョンから利用されているお客様の場合、サーバのディスクが不足してしまい、拡張するときに、このような機能を多用している事かと思います。
それが、バージョンアップする際に、ディスク容量が潤沢になったのはいいけど、nsfファイルの実体がどこにあるかわからなくなってしまう。ということが考えられます。

そのようなときは、今回ご紹介したサンプルを使って検索するのも一つの手法ですね。
ぜひ、Notes DBの棚卸の手法の一つとして採用されてみてはいかがでしょうか。



では、今日はこの辺で。




 【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: