fc2ブログ

iNotes Lite Framework - Common Property

iNotes Lite Framework ではグローバル変数のような仕組みを使う事が出来ます。
これは、Common Property と呼ばれるのですが、今日はこの詳細について見てみます。

バックナンバー
1. iNotes Lite Framework - Frameset
2. iNotes Lite Framework - iNotes Lite Widgets
3. iNotes Lite Framework - Lazy loading code
4. iNotes Lite Framework - Basic Layout
5. iNotes Lite Framework - Common Property

(このエントリは以下の記事を参考に書かれています)
iNotes Lite framework (Notes/Domino Wiki)

iNotes Lite framework では、二つ以上のWidgetが一つのProperty を扱えるような"Common Property"と言う方法を提供しています。 Common propertyは名前つきの値で、どんなWidgetもアタッチする事が出来ます。
Common Property に対して変更が起こった場合、Widget にアタッチしているEYK() [observe()] メソッドが非同期的に実行されます。
p-color と言う名前のCommon Propertyと値を得るには、以下のようにします。

var oProperty = EPx.get('p-color'); 
var vValue = oProperty.BoB;

BoB vValue
EPx com_ibm_dwa_misc_commonProperty
BRW setValue

common propertyに新しい値をセットするには以下のようにします。

var oProperty = EPx.get('p-color');
oProperty.BRW('#808080');


common property を使用すると、以下のようなWidgetを作る事が出来ます。
com_ibm_dwa_ui_colorBox widget がどのように実装されているのかを知ることなく、<select> のonChange属性に書き込む事ができるようになります。


// Box changing color
// ------------------
function com_ibm_dwa_ui_colorBox(sId){
var oElem = AAA.EcK.getElementById(this.sId = sId);
var oProperty = EPx.get(oElem.getAttribute('com_ibm_dwa_misc_observes_color'));
oProperty.attach(this);
this.EYK(oProperty); // Pick up existing value
}

// =====================================
// Observe the color
// Inputs:
// oProperty - The property to observe
// =====================================
com_ibm_dwa_ui_colorBox.prototype.EYK = function com_ibm_dwa_ui_colorBox_observe(oProperty){
// ERD() checks if oProperty represents the latest value - As this function is called asynchronously
if (oProperty.ERD && !oProperty.ERD())
return;
var oElem = AAA.EcK.getElementById(this.sId);
oElem.style.backgroundColor = oProperty.BoB;
};
更に、以下のような要素があります。

<div class="s-stack" style="padding-top:5em;">
<div class="s-basicpanel" style="border:solid black 1px;"
com_ibm_dwa_ui_widget_class="com_ibm_dwa_ui_colorBox" com_ibm_dwa_misc_observes_color="p-e-colorselect-currentselected">
</div>
</div>
<div class="s-toppanel" style="height:5em;">
<form>
<select name="e-colorselect" class="s-label-light" onchange="EPx.get('p-e-colorselect-currentselected').BRW(this.value);">
<option value="#ffffff">Select color</option>
<option value="#ffc0c0">Red</option>
<option value="#c0ffc0">Green</option>
<option value="#c0c0ff">Blue</option>
</select>
</form>
</div>



8.5.1 : Lotus iNotesでのID Vaultの利用

 今日の新機能紹介は Lotus iNotes のID ボールト対応についてです。

iNotes/DWA はIDファイルを利用する事によって、暗号化や電子署名したメールが扱えるようになったり、S/MIME メールが送れるようになったり、通常のWebメールの範疇を超えた機能が使えるようになりました。ただし、これはユーザーがWebアクセスで意識する「インターネットパスワード」とIDファイルのパスワードの二重管理が必要になったり、せっかくWebクライアントにしているのに、エンドユーザーに効率よくIDファイルを管理者側で配布する方法がなかったりとID ファイルマネージメントには比較的課題が多かったのも事実です。 iNotesのIDボールト対応は、単純にNotesクライアントでも使える機能を使えるようにする、と言う側面だけでなく、そのような課題に応える、と言う意味でも意義の大きい拡張なのではないかと思います。

IDボールト環境を構築するには、大きく以下のステップが必要です。
もうちょっと細かいステップが知りたい方もいると思いますが、ちょっとここは簡単に説明します。
システム管理ヘルプでは「ID ボールトを作成する」と言う項目があるのでそちらを参照してください。
目次からたどる場合には、[セキュリティ]-[Lotus Domino Server ID と Lotus Notes ユーザー ID]-[Lotus Notes ID ボールト] をご確認下さい。

1. ボールトデータベースを管理クライアントから作成する
2. ポリシー設定からセキュリティーポリシーを作成し、IDボールトに関する設定を行う
3. ポリシー文書を作成し、2. で作成したセキュリティポリシーを作成する
4. 作成したポリシーを明示的ポリシーまたは組織的ポリシーとしてユーザーに適用する


Lotus iNotes上でID ボールトを使用する場合、セキュリティポリシーのID ボールトの設定で更に以下の設定が必要です。
セキュリティポリシーの設定

「Allow Notes-based programs to use the Notes ID Vault」 と言う設定をはいにする必要があります。

このポリシーが設定されたユーザーがログオンして、iNotesプリファレンスを開くと、セキュリティタブに以下のような設定が現れます。

ボールとの同期化ボタン

このボタンを使用すると、以下のようなことが行えるようになります。

・ メールDB上にIDファイルが無く、ボールト上に存在している場合、「ボールトと同期化」ボタンを使用してIDファイルをボールトからダウンロードする事が出来ます
・ メールDB上にIDファイルがあり、ボールト上に存在していない場合、「ボールトと同期化」ボタンを使用してIDファイルをボールトへアップロードする事が出来ます
・ どちらにもIDファイルが存在する場合、「ボールトと同期化」ボタンを使用してIDファイルをボールトと同期して最新の状態に保つ事が出来ます。

これで、Notesクライアントなどと混在していてもIDファイルの管理はかなり容易になるのではないかと思います。

DWA - Fiddler を使ったリクエストログの取得

今日は最近出たDWA関連の以下のTechnoteの話をしようと思います。

DWA 問題判別:リクエストログの取得と解析

DWAの調査では問題判別の際に発生時のHTTPリクエストログが必要になる事があります。
UI上の操作よりも実際に送られたリクエストが思わぬ再現条件を提供したり、色々な動作が明らかになってくる事が多いからです。

これはDominoの機能を使うと以下の技術文書で紹介されているようなリクエストログの取得が必要になります。

Domino 6:HTTP リクエストログの仕様について

しかし、特定のブラウザクライアントの操作で起こる問題でサーバー全体に及ぶ設定を行うのはテスト環境ならともかくとして、現実的ではないことが多くあります。
このような場合はやはりブラウザ側にしかけるリクエストログの取得ツールをお願いすることがあります。

例えばIBMは以下のようなIBM Page Detailer と言うツールもalphaWorksで公開したりしていますが、Free版だとSSLで使えないなど機能制限も多いため、苦労する事も多くありました。

IBM Page Detailer(alphaWorks)

操作性やログの見易さ、機能のシンプルさもあり、Proxyとして動作する以下のようなツールもよく使っていました。秀丸の作者が作っているツールですがこれも非常に便利だと思います。

横取り丸

このようにサポートでは色々なツールを使用していた経緯もあるのですが、今回発行した技術文書では以下のような点を考慮してFiddlerを使った取得について詳細に説明しています。

・ SSLやFirefoxのサポート
・ Fileupload Controlなどのログが取れる
・ 解析機能やログの取得も比較的容易
・ Web関連のDebugツールとしてGlobalでも認知度が高い

導入やログの取得などもそれほど負担にならずにProxyのOn-Offも自動で切り替えてくれるので非常にこの辺は使いやすくなっています。Firefoxもアドオンを入れれば自動切換えをしてくれます。

文書では単純にログの取得方法だけでなく、簡単な見方も紹介しているので是非DWAの問題判別だけでなく、Fiddler自体に興味がある方も一読して頂ければと思います。

iNotes 9.0 で文書リンクの URL が notes:// になる

Notes クライアントから文書リンクやビューリンク、データベースリンクを含むメールを IBM iNotes ユーザーに送信した場合、IBM iNotes 9.0 以降ではこのリンク情報を notes:// プロトコルで開くように仕様が変更されています。

この形式だと、Notes クライアントや Notes Browser Plugin が無い環境では iNotes でリンクを開くことがでないので注意してください。

iNotes_WA_OfferNotesURLLinks=0 を設定することで、http:// の形式で表示されます。

また、iNotes_WA_OfferNotesURLLinks=1 に設定すると、http:// と notes:// の両方の形式で表示されます。

Title: IBM iNotes 9.0 で文書リンクの URL が notes:// になる
Doc #: 1642851

URL: http://www.ibm.com/support/docview.wss?uid=swg21642851

iNotes で特定ユーザーのみウルトラライトモードで開く

iNotes (DWA) を使用していて、特定のユーザーだけログイン後の初期画面が違う?(例えば、ウルトラライトモードで開く)みたいな経験をされたことがないでしょうか。

ポリシーなどの設定を見直しても、他のユーザーと特に変わりない。ポリシー何て設定した記憶がない。ってことでしたら、リダイレクトデータベースのパーソナルオプションを疑ってみてください。(もちろん使用している場合です)

パーソナルオプションは、リダイレクトデータベースを開き、「UIセットアップ」 にあります。ここが「はい」になっていますと、
inotes1.jpg

iNotes へのログインのリダイレクト中の右上にに、「パーソナルオプション」なるものが表示されます。ここをクリックすると、
inotes2.jpg

デフォルトでどんなモードで開くか設定できます。
inotes3.jpg

ユーザーがここで、「ウルトラライトモード」と設定してしまうと、再度ここで設定し直さない限りそのモードで開き続けます。結構ここで設定したことを忘れがちです。

また、設定はプロファイル文書としてリダイレクトデータベース内に保持されるので、管理者でも気付かない可能性があり、見落としてしまいます。

ただし、設定を変更しても、設定通り動作しないということがあるかもしれません。その場合は、そのプロフィール文書が壊れている可能性もあるので、次のようなスクリプトエージェントをリダイレクトデータベースに実行しユーザーのプロフィール文書を削除することもお試しください。

-------------
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = s.currentdatabase
Set doc = db.GetProfileDocument("wmrprofile","CN=admin/O=lotus")
Call doc.Remove(True)
-------------

<参考>
Title: How to delete one user's Personal Options in the Redirect database
Doc #: 1272957
URL: http://www.ibm.com/support/docview.wss?uid=swg21272957


見落としがちな設定なので、ブログにしてみました。

iNotesのコンソールログを表示させる

iNotes で画面左上の「IBM Lotus iNotes 」という文字をマウスの右ボタンでクリックすると iNotes のバージョン情報が表示されることをご存じの方も多いとおもいます。
inotes_2014091622463330b.jpg

このようにバージョン情報のウインドウが表示されます。
inotes2_20140916224635b4c.jpg

単にマウスの右ボタンをクリックではなく、Ctrlキーを押しながら、右ボタンをクリックすると、以下の様に iNotes のコンソールログを表示させることが可能です。
inotes3_20140916224637db9.jpg

iNofesのコンソールログは、エラーが発生した時を除き通常は隠されていますが、この方法により表示をさせることができます。

表示されるのは現在のセッションだけで過去の記録を参照することはできませんが、表示され消えてしまったエラーの再確認などの際に役に立ちます。サポートでも、問題発生時にこの機能を使って、お客様にログの収集をお願いすることがあります。

この機能については、以下の公開文書でも触れられていますので、どうぞ合わせてご覧ください。

「問題判別ガイド:IBM iNotes 利用時に発生するエラーのトラブルシューティング」
文書番号 #1681775
http://www.ibm.com/support/docview.wss?uid=swg21681775

iNotes 9.0.1 で会議招集にコメントつきで返信時に改行できない

会議招集にコメント付きで返信する際、コメント入力時にEnterキーを押した際に、改行にならずに送信処理されてしまう問題が報告されています。

iNotes 9.0.1 で会議招集に対してコメント付きで [了承] や [辞退] などを送信する際、以下の画面が表示されます。
このとき、コメントを入力し、改行しようと Enter キーを押下すると、[OK] ボタンが押下されたものとされ、即送信されてしまいます。
inotescomment.jpg

この問題は、IE のみで発生し、iNotes 9.0.2 で修正されました。

この問題が確認された場合は、テキストエディタで改行を含めてコメントを作成していただき、クリップボード経由でペーストして送信していただくしか回避策がありません。
ご迷惑をおかけし申し訳ございません。

技術情報は公開準備中の段階ですが、一足お先にこちらでお伝えしておきます。

IBM iNotes:送信者・受信者を別名で検索できない

IBM iNotes 9.0/9.0.1 で全文索引を有効にすると、受信ボックスなどで右上に検索ボックスが表示されます。
ここで、[送信者] や [受信者] を指定して日本語別名で検索すると、何も検索結果が得られません。ヒットする名前で検索しても 0件と表示されます。[すべて] を指定した場合は、日本語別名で検索することができます。

inotessearch.jpg

これは、現状のリリース(9.0/9.0.1) では、[送信者] や [受信者] を指定して日本語別名で検索する機能は用意されていないためです。基本名でのみ検索可能です。

日本語別名で検索したい場合は、[すべて] を指定して検索してください。

使えないならプルダウンを非表示にしたいというご要望があれば、Form9_x.nsf でカスタマイズ可能です。

Custom_CSS サブフォームに以下を追記してください。
----------------
.s-searchField-select {
display: none!important;
}
----------------
検索ボックスのみが表示されます。

デフォルトは「すべて」が選択された状態なので、このまま検索を実行しても問題無く結果は得られます。

なお、カスタマイズを行う際は、十分にテストした上で行ってください。