@GetProfileField (式言語)

プロフィール文書からフィールドを取得し、そのフィールドの値をセッションが終わるまでキャッシュします。

構文

@GetProfileField( profilename ; fieldname ; uniqueKey )

パラメータ

profilename

文字列。アクセスするフィールドが含まれているプロフィール文書の名前です。

fieldname

文字列。アクセスするフィールドの名前です。

uniqueKey

文字列。オプション。プロフィール文書を識別する一意のキーです。

戻り値

fieldvalue

フィールドの値です。

使用法

この関数は、列式、非表示切り替え式、セクション編集者式、ビュー選択式では機能しません。ツールバーボタンとエージェントで使用できます。

Web 上でも使用できます。Web アプリケーションでプロフィール文書を作成するには、@SetProfileField を使用します。@SetProfileField の最初のパラメータで指定した名前のプロフィール文書がないときは、自動的に作成されます。この関数により、作成されたプロフィール文書のフィールドにアクセスできます。

プロフィール文書は、変更される頻度が低い値で使用してください。パフォーマンスを向上させるために、プロフィールはローカルメモリにキャッシュされます。そのため、1 人のユーザーがプロフィール内の値を変更しても、ほかのユーザーにはその変更がすぐに表示されません。文書に通し番号を付けるためにプロフィール文書を使用しないでください。Notes クライアントアプリケーションの場合、ユーザーは自分のキャッシュだけでなく保管されているプロフィール文書も更新するため、自分自身による変更がクライアントアプリケーションにすぐに反映されます。しかし、Domino Web アプリケーションの場合は、複数のサーバープロセスがそれぞれのプロフィールキャッシュを持つため、プロフィール文書を変更しても、Web アプリケーションのすべての部分にすぐに適用されないことがあります。

  1. 次の例では、「Interest Profile」文書の [ProfileCategories] フィールドの内容が取得されます。
    @GetProfileField("Interest Profile"; 
    "ProfileCategories") 
  2. 次の例では、weekday のデフォルト値が「Monday」のとき、Monday のプロフィール文書「Interest Profile」文書にある「ProfileCategories」フィールドの内容が取得されます。
    @GetProfileField("Interest Profile"; 
    "ProfileCategories"; "weekday") 
  3. 次の例では、「userprofile」プロフィール文書の [age] と [job] の 2 つのフィールドの値が取得され、ビューの列に縦に表示されます。次のコードを、ユーザーがアクセスできるフォームの [profile] フィールドに記述します。
    @Explode(@GetProfileField("userprofile"; "age"; @UserName):@GetProfileField("userprofile"; "job"; @UserName); ":")

    この 2 つの値を表示するビューの列式では、ビューのプロパティで行の高さが 2、[行の高さを内容に合わせる] が有効に設定され、列のプロパティで複数値の分離記号が [改行] に設定されています。列式の値は次の通りです。

    @Trim(profile)

    @Explode 関数によって、[profile] フィールドに返すセミコロン (;) がコロン (:) に置き換えられます。このコロンによって、列式内の @Trim 関数は 2 つの値が文字列リストであることを認識します。

  4. 次のコードを Web フォームの [Update Info] アクションボタンに追加すると、ユーザーのプロフィール文書 (「Profile」) からユーザー名とアドレス情報が取り出され、Web フォームの [name] フィールドと [address] フィールドに表示されます。
    tempName := @GetProfileField("Profile";"userName";@UserName);
    tempAddress := @GetProfileField("Profile";"userAddress";@UserName);
    @SetDocField(@DocumentUniqueID;"name";tempName);
    @SetDocField(@DocumentUniqueID;"address";tempAddress);

クロスリファレンス

LotusScript® NotesUIDocument クラスの FieldGetText メソッド

LotusScript NotesDocument クラスの GetItemValue メソッド

Java™ Document クラスの getItemValue メソッド