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

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

2008年12月12日金曜日

ユーザ情報の取得

今回はユーザ情報の取得に挑戦してみる。

ユーザのメールDBファイル名やサーバ名を取得するとき、
よく使うのはサーバのnames.nsfにアクセスして、ユーザ文書を取得して、そこの値を読み取るとか、
個人アドレス帳のロケーション文書を取得するなどではないかと思う。

しかし、ロケーション文書は間違って設定されることがあったりするし、names.nsfもビューを開かないといけない(筆者は($VIMPeople)ビューを使っていた)とか、面倒である。

今日、紹介するのはNotesRegistrationクラスを使うもので、調査したいサーバ名とユーザ名を与えれば、そのユーザがドミノディレクトリにどのように登録されているのかを返してくれるものだ。

サンプルは、アドレス帳で選択したユーザのメールファイル情報を取得して、ダイアログ表示するものである。


Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim curdb As NotesDatabase
    Dim uiws As New NotesUIWorkspace
    Dim ret As Variant '選択したユーザ名
    Dim regist As New NotesRegistration 'ドミノ登録情報
    Dim mailserver As String 'メールサーバ
    Dim mailfile As String 'メールファイル名
    Dim maildomain As String 'メールドメイン
    Dim mailsystem As Integer 'メールシステム
    Dim mailprofile As String 'セットアッププロフィール(今回は利用しない)
    Dim mailtype As String 'メールシステムの表示用
    
    Set curdb = session.CurrentDatabase
    
    '取得したいユーザ名を選択する
    ret = uiws.PickListStrings( 0, False )
    If Isempty(ret) Then
        Msgbox "処理を中断します。", 0 + 16, "ユーザ情報の取得"
        Exit Sub
    End If
    
    'ユーザ情報を取得するサーバをセットする
    regist.RegistrationServer = curdb.Server
    'ユーザ情報の取得(2番目以降の引数に戻り値がセットされる)
    Call regist.GetUserInfo( ret(0), mailserver, mailfile, maildomain, mailsystem, mailprofile )
    
    'メールシステムは、数値で戻ってくるので、実際の表示値に変換
    Select Case mailsystem
    Case 0:
        mailtype = "Notes"
    Case 1:
        mailtype = "cc:Mail"
    Case 2:
        mailtype = "その他"
    Case 3:
        mailtype = "X.400"
    Case 4:
        mailtype = "その他のインターネットメール"
    Case 5:
        mailtype = "POP or IMAP"
    Case 99:
        mailtype = "なし"
    End Select
    
    Msgbox _
    "メールサーバ :" & mailserver & Chr$(10) &_
    "メールファイル:" & mailfile & Chr$(10) &_
    "メールドメイン:" & maildomain & Chr$(10) &_
    "メールシステム:" & mailtype, 0, "ユーザ情報の取得"
End Sub


Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: