本文へジャンプ

ソフトウェア > Lotus > Lotus Developer Domain > 製品別技術情報 > Lotus Notes/Domino > 

LDD Today

受信者リストからのユーザー名抽出


Lotus Software
by Dhanasekar Dhandapani
レベル:中級者
対象: Notes/Domino
原文の掲載:2003年4月1日

LDD Todayの原文(US)


このTIPSは、異なったドメインのユーザーを含む受信者リストからユーザー名を抽出する方法を説明しています。Notesの式言語を使用して、[SendTo]、[CopyTo]、[BlindCopyTo]の各フィールドから名前を抽出することができます。以下の範囲で、このヒントで説明しているコードを利用することができます。
  • スマートアイコン
  • ビューの選択あるいは列の式
  • エージェントまたはビューのアクション・ボタン
以下に示すコードの例では、同じ会社に属しているユーザー名のみを抽出します。
  1. スマートアイコン、ビュー選択または列の式、あるいはエージェントをメール・ファイル・データベースに作成し、以下のコードをプログラマーペインに追加します。
    Recipients:=SendTo : CopyTo : BlindCopyTo;
    OriginalAbbrevList:=@Name([Abbreviate];Recipients);
    OriginalCommonList:=@Name([CN];Recipients);
    CommonAppendList:=OriginalCommonList +"/MyCompany/MyDomain@MyDomain";
    UnwantedList:=@Replace(OriginalAbbrevList;CommonAppendList;"");
    FilteredList:=@Replace(OriginalAbbrevList;UnwantedList;"");

  2. /MyCompany/MyDomain@MyDomainを適切な会社名およびドメイン名で置換します。
  3. エージェントを保存し、終了します。
  4. 次に同じドメインからのユーザーを含む受信者リストを持つ電子メールを受信するときに、エージェントを実行して、名前のリストをまとめます。
最初の行で、[Recipients]変数が[SendTo]、[CopyTo]、[BlindCopyTo]の各フィールドから名前を受け取ります。第2行で、受信者リストがその省略形に変換されます。このコードの例では、会社ユーザー名は省略されますが、残りは省略されません。第3行で、受信者リストが共通名形式に変換されます。このコード例では、会社ユーザー名が共通名に変換されますが、残りはそのままです。第4行は最も重要で、省略したユーザー名がもう一度生成され、今度は「OU」および「U」が追加されることになります。「OU」および「U」は、自社名に対して固有となり、従ってユーザーの抽出に役立つことになります。第5行では、「OriginalAbbrevList」が第4行のリストにより空スペースで置換され(すなわち、自社ユーザー名が空スペースで置換される)、不要なリストが得られることになります。最後に第6行は第5行を(自社以外のユーザーを含む)「UnwantedList」で繰り返し、その代わりに自社ユーザーを取り出します。

注意: このヒントをスマートアイコンで使用する場合、「@Prompt([OK];"Our Company Users";@Implode(FilteredList))」をコードの最後の行として使用します。これによりユーザーがメール・メモを選択し、スマートアイコンをクリックすることで、会社ユーザー名を見つけることができます。ただし、[@Prompt]は254文字しか表示しない点に注意が必要です。

 
上に戻る