プロが教える店舗&オフィスのセキュリティ対策術

LotusNotesのスペシャリストの方いらっしゃたら助けてください!

社員番号からメールアドレスを調べたいのですがわかりません。。。

社員番号のフィールドは「Enp」
メールアドレスのフィールドは「mail」です。

社員番号を入力するとメールアドレスが自動で表示するようにしたいです。

初歩的な質問で恐縮ですがどなたかご教示お願いいたします。

A 回答 (2件)

実際に試したわけではないので、間違っているかもしれませんが、



・@dblookup の二番目の引数がおかしいです。サーバー名:データベース名です
・EmployeeID は""でくくります。

@DbLookup( class :cache ; server :database ; view ; key ; fieldName ; keywords ) または
@DbLookup( class :cache ; server :database ; view ; key ; columnNumber ; keywords)

こんな感じででしょうか。省略して問題なさそうなところを省略して書いています)
@DbLookup( "" ; "": "names.nsf" ; "all_list_1" ; @Nallow(enp) ; "EmployeeID" ; 2)

ただ、この式を評価するには以下の条件が必要です。

1. names.nsf の中に、all_list_1 というビューを作っている(デフォルトではないので、カスタマイズしていると仮定しています)
2. 検索をかけるall_list_1 の社員番号列がソートされており、ソートされている列のうち、もっとも左側に来ている

今はエラーメッセージは吸収されているかもしれませんが、実際にどんなエラーメッセージがでているか分かれば、どこが原因かわかりそうです。

この回答への補足

strawha_tさま。お調べいただきありがとうございました。

1. はい、ソートさせる為にnames.nsf の中に、all_list_1 というビューを作りました。
2. はい、all_list_1ビューは社員番号列が一番左側にありソートしています。

以下のような式を実装しましたが、やはりエラーのようで"?"このように表示されてしまいます。

tmp1:=@DbLookup( "" ; "": "names.nsf" ; "all_list_1" ; @Narrow(enp) ; "EmployeeID" ; 2);
@If(@IsError(tmp1);@Return("?");@Return(tmp1));
tmp1

式は間違いないようなので、社員番号からメールアドレスを引き出す事は実現出来ないのでしょうか?!

補足日時:2010/09/24 22:12
    • good
    • 0

どの場所で社員番号を入力して、どの場所にメールアドレスを自動表示させたいでしょうか?



単純に調べることができればいいということであれば、Domino ディレクトリのユーザー文書のどこかに社員番号が入っているという前提で、単純に全文検索で調べることができます。

メール送信などで利用したいということであれば、Domino の短縮名に社員番号"も"入れてしまうことです(複数値の入力が可能です)。ただし、短縮名は設定によってはログインの ID にも利用できますので、それがいやであれば短縮名でログインさせない設定が必要です。

カスタマイズしたデータベースや外部から引きたいということであれば、ちょっとした開発が必要になる場合があります。いずれにせよ利用したいシーンをもう少し詳細にお書き頂ければ、もう少し詳細にアドバイスできると思います。

この回答への補足

ご連絡ありがとうございます!

説明不足で申し訳ございません。

やりたいことはEnpというフィールド(テキスト、編集可能)に社員番号を入力すると
mailとういうフィールドの計算結果または入力の変換(保存した時)に
メールアドレス(CN=名前/0=会社名)を表示させたいと思っています。


現在mailフィールドの「入力の変換」に以下式を入れえいるのですが”?”と表示されてしまいます。
どこが間違っているかわからなく、アドバイスいただければと思います。

※@DbLookupでドミノディレクトリの"all_list_1"というビューの2列目がメールアドレスのフィールドです。"EmloyeeID"はドミノディレクトリの社員番号フィールドです。


FIELD Enp:= Enp; REM{社員番号フィールド};
FIELD mail:= mail; REM{メールアドレスフィールド};
DB := @Subset(@DbName; 1);
ENo := @DbLookup("Notes":"NoCache"; DB : "names.nsf"; "all_list_1"; @Narrow(Enp); EmployeeID;2);

@If(@IsError(ENo); @Return("?"); @Return(ENo));


お手数ですが引き続きアドバイスよろしくお願いいたします。

補足日時:2010/09/21 21:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!