投稿

3月, 2016の投稿を表示しています

環境変数を色々試してみた(3)XPagesの場合

イメージ
こんにちは。
今日は3月8日。雨が止んだのは良いですが、霞がかっていてもやもやしています。晴れるならカラッと晴れてほしいものです。


さて、昨日は1日に2本の記事を書くという暴挙を犯しましたが、それでは物足りない!という方がいたようです。
@Lotus_BPTE あ。はい、じゃぁ、次で書きます(笑) — Masahiko Miyo (@guylocke) 2016年3月7日

ということで、ESS Dev Japanの中の人に無茶ぶりを受けてしまったので、書きます(笑)。


XPagesの場合、Webブラウザで動かすのとNotesクライアントStandard版で動かす(いわゆるXPinC)という2種類あります。
それぞれ環境変数はどのようにアクセスできるのかを検証してみましょう。
XPagesそのものは同じものを使いますということでこんな画面を作ってみました。

1.環境変数の設定方法 まずは、設定方法から見ていきましょう。
動きを分かり易くするために、 [設定]ボタンを設けて、それをクリックすると環境変数が設定されるというものにします。
1-1.設定方法 XPagesの場合、@Environmentや@SetEnvironment関数はありません。代わりにSSJSが利用できますので、NotesSessionクラスのsetEnvironmentVarが利用できます。
構文は次の通りです。
setEnvironmentVar( vname:string, value:any, issystem:boolean );
vnameが環境変数名、valueが設定する値、issystemがユーザー環境変数かシステム環境変数化を指定します。
引数自体はLotusScriptと同じなので分かり易いですね。
例)
var env1 = getComponent( "env1" ).getValue(); var val1 = getComponent( "val1" ).getValue(); session.setEnvironmentVar( env1, val1, true );
上記は画面上のenv1というコントロールとval1というコントロールに書かれた内容を元にして、環境変数を設定するというものです。


1-2.Webブラウザで動かした場合 上で…

環境変数を色々試してみた(2)値の取得

イメージ
こんにちは。
雨が降っていたのに、防水用の靴を履いてこなかったおかげで、くつがびしょびしょです。お気に入りだったのに・・・
防水用のやつを買いに行かないと。


さて、前回の記事(環境変数を色々試してみた(1)値の設定)では、環境変数に値を設定する方法について説明しました。

今回は、環境変数の値を取得する方法について説明します。

1.取得方法(1) @関数の場合 notes.iniに設定した環境変数を取得する方法について記述します。
設定方法は@関数では、3種類ありましたが、取得方法は1つしかありません。
それには、@Environment関数を利用します。構文は下記の通り。
@Environment( variable ) variableは環境変数名を指定します。
""で囲えば直接指定できますし、囲わない場合はプログラム内の変数の値を指定できます。
ここで注意点が一つあります。
指定する環境変数名に「$」はつけないという事です。
@関数では、ユーザー環境変数しか扱えないため、自動で「$」がついているものに対してアクセスするため、不要なのです。
例)
@Environment("AA"); tmp := "BB"; @Environment(tmp);
1行目の場合、notes.iniの
$AA=xx
のxxを取得します。
2-3行目の場合、notes.iniの
$BB=xx
のxxを取得します。
これは設定方法の種類にかかわらず変わりません(@関数で設定しても、LotusScriptで設定しても同じ)。



2.取得方法(2) LotusScriptの場合 続いて、LotusScriptでの環境変数の取得方法について説明します。
設定方法は1つのメソッドしかありませんでしたが、取得方法は2つのメソッドが用意されています。
2-1.文字列で取得する まずは、NotesSessionクラスのGetEnvironmentStringメソッドです。
構文は以下の通り。
value$ = notesSession.GetEnvironmentString( name$ [, system ] ) name$は環境変数名を指定します。
systemはシステム環境変数を取得するのか、ユーザー環境変数を取得するのかをTru…

環境変数を色々試してみた(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キーワードと違い、""で囲えばその値を、変数名を指定すればその変数名の値…