@Environment (式言語)

式に保存されている環境変数を設定するか、返します。

構文

@Environment( variable ) @Environment( variable ; value )

パラメータ

variable

文字列または文字列リスト。取り出したい環境変数の名前を指定します。複数の環境変数を取り出すには、文字列リストを使用します。

value

文字列。オプション。環境変数に割り当てる値を指定します。 ユーザーは独自の notes.ini ファイルや Notes のプリファレンスファイルを持っているため、この値はユーザーごとに設定できます。値を取り出すだけで設定はしないときは、このパラメータは省略します。

戻り値

environmentVariable

文字列。指定した環境変数の値が返されます。戻り値を計算に使用するには、@TextToNumber を使用してこの文字列を数値に変換します。

使用法

式内で環境変数を設定したいときに @Environment を使用します。@If や @Do など他の @関数内にネストするときは、この関数ではなく @SetEnvironment を使用します。

ENVIRONMENT キーワードは @Environment と同じように機能します。

@Environment は、列式や選択式では使用できません。フィールド式、ツールバーボタン、エージェントで使用します。スケジュールが設定されているエージェントなど、一部の式はユーザーのクライアント上ではなくサーバー上で実行されます。この場合、式の対象となる環境変数は、クライアントではなくサーバーの環境変数です。計算結果の文字列式を使用して変数を取得できますが、変数を設定することはできません。

@Environment を使用して、ユーザーの notes.ini ファイル (Windows、OS/2、UNIX) または Notes のプリファレンスファイル (Macintosh) に保存されている環境変数の値を取得することもできます。値を設定および取得できるのは、ドル記号 ($) で始まっている変数のみです。変数パラメータの一部にドル記号を使用することはできません。例えば、INI 変数 $EnableAlarms の値を 1 から 0 に変更するには、次のように入力します。

@Environment("EnableAlarms";"0") 

Web アプリケーションでは、Web ユーザーの環境についての情報を取得するには、事前定義のフィールド名を使用して CGI (コモンゲートウェイインターフェース) 環境変数を要求します。

  1. 次の例では、現在のユーザーの notes.ini ファイルまたは Notes のプリファレンスファイルに保存されている変数 $IEVersionMajor の値が 5 のとき、5 が返されます。
    @Environment("IEVersionMajor")
  2. 次の例では、現在のユーザーの notes.ini ファイルまたは Notes のプリファレンスファイルに OrderNumber という変数を設定し、値として 0 を割り当てます。
    @Environment("OrderNumber";"0")
  3. プロフィール文書を作成するときの時間を短縮するために、オフィスの所在地が自動的に入力されるようにします。この場合、編集可能な [OfficeLocation] という文字列フィールドを作成します。このフィールドのデフォルト式は次のとおりです。
    @Environment("ENVOfficeLocation")

    このフィールドの入力変換式は次のとおりです。

    @Environment("ENVOfficeLocation"; OfficeLocation);
    OfficeLocation

    ユーザーが初めてプロフィール文書を作成するときは、[OfficeLocation] フィールドは空白です。したがって、ユーザーがオフィスの所在地を入力します。文書を保存するときに、[OfficeLocation] フィールドの内容が notes.ini ファイルまたは Notes のプリファレンスファイルに保存されます。このユーザーが次回プロフィール文書を作成するときは、オフィスの所在地が環境変数 ENVOfficeLocation から取得されます。したがって、オフィスの所在地に変更がなければ、もう一度入力する必要はありません。所在地が変更されたときは、ユーザーがフィールドを編集します。

    また、@SetEnvironment か ENVIRONMENT キーワードを使用して入力変換式を作成することもできます。どちらを使用しても結果は同じです。

    @SetEnvironment("ENVOfficeLocation"; OfficeLocation);
    OfficeLocation

    または

    ENVIRONMENT ENVOfficeLocation:= OfficeLocation;
    OfficeLocation
  4. オフィス所在地以外に、ユーザーの生年月日も環境変数を使用して保存します。[Birthday] という編集可能な日付フィールドを作成します。このフィールドのデフォルト式は、[OfficeLocation] で使用したデフォルト式と同様です。
    @Environment("ENVBirthday")

    このフィールドの入力変換式では、@Text を使用して日付値を文字列に変換します。

    @SetEnvironment("ENVBirthday"; @Text(Birthday));
    Birthday

    @Text を使用し、数値型フィールドに対する同様の入力変換式を作成することもできます。

  5. 各ユーザーに対して連番を生成し、その番号を [OrderNumber] というフィールドに保存します。[OrderNumber] フィールドは文字列データ形式として定義します。何らかの形式の計算結果フィールドでなければなりません。次に、このフィールドに対して次のような式を作成します。
    Temporary := @Environment("OrderNumber");
    Temporary2 := @If(Temporary="";"0";Temporary);
    CurrentOrderNumber := @TextToNumber(Temporary2);
    NextOrderNumber := CurrentOrderNumber + 1;
    ENVIRONMENT OrderNumber := @Text(NextOrderNumber);
    @Text(CurrentOrderNumber);
  6. 次の式では、OrderNumber という環境変数がユーザーの notes.ini ファイルまたは Notes のプリファレンスファイルに保存されているかどうかを調べます。この環境変数が保存されていなければ、@SetEnvironment で 0 に初期化します。すでに値が保存されていれば、@Return でその値を返し、式の実行を中止します。
    @If(@Environment(OrderNumber)=""; @SetEnvironment("OrderNumber";"0"); @Return(@Environment("OrderNumber")))
  7. 次の例では、2 つのエージェントを使用し、ユーザーが所属可能なグループ名を呼び出し、ユーザーにその 1 つを選ばせ、選ばれたグループ名を選択されているすべての文書 (ここでは現在のユーザーに属する文書) の [Group] フィールドに入力します。

    Set Group」エージェントは、[Service Requests - By Group] ビューの列 1 に保存されているグループ名を呼び出し、ユーザーにグループ名を選択するよう求めるメッセージを表示します。選択された名前を環境変数 TmpName に保存してから、「(Set Group Helper)」エージェントを実行します。「(Set Group Helper)」エージェントは、ユーザーの notes.ini ファイルまたは Notes のプリファレンスファイルからグループ名を取り出し、選択されているすべての文書の [Group] フィールドに保存します。

    Set Group エージェントは 1 回だけ実行されます。

    GroupList:=@DbColumn("":"NoCache";"";
    "Service Requests¥¥By Group";1);
    Group:=@Prompt([OKCancelEditCombo];"Choose a group";"Choose 
    	a group";"Marketing";GroupList);
    Tmp1:=@Environment("TmpName";Group);
    @Command([RunAgent];"(Set Group Helper)");

    (Set Group Helper) エージェントは、選択された文書ごとに実行されます。

    FIELD Group:=@Environment("TmpName");

クロスリファレンス

LotusScript® 言語の Environ 関数

LotusScript NotesSession クラスの GetEnvironmentString メソッド

LotusScript NotesSession クラスの SetEnvironmentVar メソッド

Java™ Session クラスの getEnvironmentString メソッド

Java Session クラスの setEnvironmentVar メソッド