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

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

2016年3月7日月曜日

環境変数を色々試してみた(1)値の設定

こんにちは。今日(2016年3月7日)は東京では雨が降ってます。
雨は降ってくれないと困るのはわかっていますが、やはり好きではありません。 傘を差しながらの移動は大変です。
早く、傘に変わる雨除けの道具を発明してほしいものです(合羽は着替えるのが大変なので嫌です・・・(笑))
なお、雨だと花粉の飛散が少ないとか言いますが、関係ありません。少なかろうがなんだろうが辛いものは辛いのです。


閑話休題。


さて、本日の話題はNotesの環境変数です。
Notes/Dominoはnotes.iniというファイルに色々な情報を格納していて、その内容を元に稼働させています(これだけではありませんが)。
そして、利用者もこのファイルに対してアクセスができます。
つまり、値の読書きができるという事です。

今回はその方法と注意点についてまとめてみます。


1.設定方法(1) @関数の場合

notes.iniに値を設定するには、@関数で行う方法とLotusScriptで行う方法があります(このほか、Notes Java/CORVAクラスやJavaScriptクラスでの方法がありますが、割愛します)。
まずは、@関数について説明します。

1-1.ENVIRONMENTキーワード

まず、ENVIRONMENTキーワードを使う方法です。
構文は次の通りです。
ENVIRONMENT variable := textValue;

variableは環境変数名を指定します。この値は""で囲ってはいけません(囲ってもエラーになり、保存できません)。
textValueは環境変数に設定する値を指定します。こちらは""で囲った値が設定されます。プログラム内の変数の値を格納することもできます。この場合、変数名をそのまま記述します。
例)
tmp := "hogehoge";
ENVIRONMENT AA := tmp;


1-2.@Environment関数

次に、@Environment関数で、こちらの構文は次の通りです。
@Environment( variable ; value )

variableは環境変数名を指定します。こちらはENVIRONMENTキーワードと違い、""で囲えばその値を、変数名を指定すればその変数名の値が設定されます。
valueは環境変数に設定すする値を指定します。
例)
@Environment( "BB"; "hogehoge" )

後述しますが、この関数では環境変数に値を設定するだけでなく、取得することもできます。

1-3.@SetEnvironment関数

3つ目は@SetEnvironment関数で、構文は次の通りです。
@SetEnvironment( variableName ; value ) 

variableNameは環境変数名を指定します。
valueは環境変数に設定すする値を指定します。
@Environment関数との違いは、値の取得ができるかできないかです。
例)
env1 := "CC";
tmp := "hogehoge";
@SetEnvironment( env1 ; tmp )


これらのキーワードや@関数での設定方法に共通しているのは、環境変数名の頭に「$」が付くという事です。
これは通常、「ユーザー環境変数」と呼ばれています。
「$」を頭につけることにより、Notesが利用しているものと区別するためというのと、予約語に対して設定してしまうのを避けるという目的があると思われます。
ちなみに、頭に「$」が付かないものは「システム環境変数」と呼ばれています。


2.設定方法(2) LotusScriptの場合

続いて、LotusScriptで設定する方法について説明します。
設定に使うメソッドは1つで、NotesSessionクラスのSetEnvironmentVarを利用します。
構文は次の通りです。
Call notesSession.SetEnvironmentVar( name$, valueV [, issystemvar ] )

name$は環境変数名を指定します。
valueVは環境変数に設定する値を指定します。
issystemvaはユーザー環境変数もしくはシステム環境変数のどちらを使うのかを指定します。

2-1.ユーザー環境変数の設定方法

LotusScriptでは、ユーザー環境変数とシステム環境変数の2種類を取り扱うことができます。
issystemvarにfalseを指定すれば、ユーザー環境変数を利用することになります。
例)
Sub Click(Source As Button)
    Dim session As New NotesSession
    Call session.SetEnvironmentVar( "DD", "hogehoge", False )
End Sub

上記を実行すると、$DDという環境変数にhogehogeが設定されます。
notes.iniの行では
$DD=hogehoge

となります。

2-2.システム環境変数の設定方法

issystemvarにtrueを指定すれば、システム環境変数を利用することになります。
例)
Sub Click(Source As Button)
    Dim session As New NotesSession
    Call session.SetEnvironmentVar( "EE", "hogehoge", True )
End Sub

上記を実行すると、notes.iniに
EE=hogehoge
という行が追加されます。



ちょっと長くなったので、今回はここまでとします。
次回は値の取得方法についてみてみましょう。






Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: