【A-2】ノーツスタンダードクライアントで、XPagesを使ってみよう
株式会社ソルクシーズ
吉田武司
自己紹介株式会社ソルクシーズ吉田武司
– developerWorks:一週間で学ぶ XPages 開発入門 (初級編)
http://www.ibm.com/developerworks/jp/lotus/education/xpages-1week/
– その他• 簡易ワークフロー
http://goo.gl/EPqih5
• その他サンプルプログラム(掲示板など)https://www.ibm.com/developerworks/community/files/app?lang=ja#/person/270002CF31
– 弊社情報サイト「菜緒さんの企画ノート」でグループウェアについて執筆
http://naosan.info/
XPages の活躍できるケース
XPages の活躍できるケース
• ノーツのWeb化
–旧来の技術だけでは基本的に古いデザインとなる。
–今どきの新しいUI、インターフェースで開発できる。
• モバイル対応
–画面サイズの関係から旧来のデザインでは使いにくい。
–モバイル用のコントロールなどを活用することで開発効率が上がる。
まだまだ知名度、普及率は低い?(1)
技術的な問題
・昔より情報は増えてきたがまだまだ少ない・技術者が少ない
コミュニティーの活用
・テクてく技術者夜会・qA9 for ICS(Lotus)
Developers
・XPagesDay などのイベント
まだまだ知名度、普及率は低い?(2)
モバイル利用環境やポリシーの問題
ポリシーや費用の問題があり、なかなか進まない
・セキュリティーポリシーの改定
・インフラ整備
XPages の活躍できるケース
他にはないの?
あります!
XPages はブラウザだけではなく、ノーツスタンダードクライアントでも動きます
OK OKブラウザ ノーツスタンダードクライアント
スタンダードクライアントのおさらい
• 基本的な機能は、ベーシック版と同じ。それにプラスαされています
• 利点– メールやカレンダーの UI、機能の違い– サイドバーやコンポジットアプリケーションが使える
• 欠点– 最近のPCであれば問題はないですが、要求スペック(特にメモリ)が高め– 重い
• スタンダードクライアントを利用しているユーザー様も多いと思います
XPages が活躍できるケース
• ノーツクライアント上で、XPages標準の様々なコントロールに加えて、Dojo や jQuery、その他のライブラリも利用可能!
• 既存のノーツクライアントでは実現できなかった機能が開発できる。拡張的な意味あいで利用してみては?
• この技術(XPinC:XPages in Notes Client)のおかげでXPagesがスタンダードクライアントで使えるようになりました。(Notes 8.5.1 以降)
※読み方はエックスピンク?ナンカ、イイヒビキデスヨネ
XPinC の利用イメージ
XPinC を利用する利点(1)
• 従来のノーツアプリケーションでは実装が難しかった表現が可能
– グラフ
– 地図の表示などの社内/社外のWeb
サービスの利用
– タイムライン
– スライドバーやツリー構造などの UI
– 動きのあるデザイン
– タブレット対応(タッチ)?Dojo Chart の例
XPinC を利用する利点(2)
• これらを組み合わせれば、Welcome ページよりもリッチなポータルも作成可能
Dojo ウィジェットの例
クライアントでのイメージ
グラフ ポータル タイムライン風お知らせ
Demo
例:ポータル
グラフ
DataGrid
表示する期間を動的に変更できるグラフ
一定周期でグラフを描画
• スモールスタート– 単体のアプリケーションから始められる
– すべてのアプリケーションを Web 化するところからはじめなくてもよいのでXPages を小さく始めるには最適
XPinC を利用する利点(2)
XPages 最初は1DBからでもOK!
こんなにたくさんは大変だ!
助けて〜
1DBならなんとかなりそう
XPinC を利用する際の注意点
• UI が Web ベース。ノーツクライアントとは違うのでユーザーが混乱しないような UI を意識する必要があり。
• 開発対象とするアプリケーションの選定も重要
–ボタンのデザインや配置がノーツクライアントと違い過ぎないように注意
–編集した文書を保存せずに閉じようとした時に警告が通知されない
–右ダブルクリックで閉じられない
XPinC の技術的な話
Web ブラウザからアクセスする場合
ブラウザ
Web Container
Xpages Runtime
NSF
設計要素
Domino Server
G
XPages in the Notes Client の場合
ブラウザ
Web Container
Xpages Runtime
NSF
設計要素
Domino Server
Notes Client
ローカルNSF
設計要素
オフラインでもローカルで利用可能
内部的にはローカルで動作
XPages in the Notes Client の場合(補足)
• Domino 9 ではデータベースプロパティの「起動」タブにサーバー上で動かすオプションがつきました。
「サーバーベースの Xpages アプリケーションをサーバー上で直接…」
XPinC で動かすために必要なことは?
• 面倒な設定が必要なの?
簡単です!ノーツDBのアプリケーションプロパティの「起動」タブで「指定された XPages を開く(標準クライアント)」を設定するだけ!!
開発の注意点
• 内部で動いているブラウザの違いを意識する必要あり
• Firefox 系の XURunner で動いている
• ブラウザでプレビューしている時とは、違うブラウザで動いている
• 私は Firefox を基本に動作確認して、最終的に XPinC での動作を確認する手順で開発しています
認証の違い
• 認証/セキュリティ
– Web ブラウザからアクセスする場合
• 通常の Domino Web アプリケーションと同様に認証画面が表示される
– XPinC でアクセスする場合
• ノーツクライアントにログインしているユーザーIDで Xpages にアクセスする
• 操作制御リスト(ECL)も働く
• セッションタイムアウトなどを特に意識する必要がないので楽?
XPinC の小ネタ
Web と XPinC の違いを判定したい場合
• @ClientType を使う方法
• <xp:XXXXX.rcp> タグを使う方法
if (@ClientType() == “Notes”) {
// Notes クライアントの場合の処理} else if ( @ClientType() == “Web”) {
// Web クライアントの場合の処理}
<xp:label value="Web ブラウザ" id="label1" rendered="true">
<xp:label.rcp value="Notes クライアント" rendered="true"></xp:label.rcp>
</xp:label>
編集した文書を保存せずに閉じようとした時にダイアログで通知する
• XPagesのすべてのプロパティ
– enableModifiedFlag• True をセットしておくと、ページを閉じたり、遷
移する時に入力値が変更されていれば、ダイアログで通知してくれる
– modifiedControl• 保存する時に実行されるように関連付けるコントロールを指定(例:保存ボタン)
– modifiedMessage• ダイアログに表示するメッセージ
• 但し、ノーツクライアントではデフォルトのメッセージが表示される?ようだ
編集した文書を保存せずに閉じようとした時にダイアログで通知する
• enableModifiedFlag プロパティを有効にしておくと画面を閉じたり、遷移しようとするとダイアログで通知される
• 編集したフィールドから一度”移動しないと”働かないので注意
• シンプルアクションのページを開くでは働かない
Esc キーで閉じるのを防ぎたい
• onClientLoad イベントで Esc キーを検知してブロックする
– DontPanic - a blog about Lotus Notes / Domino
http://goo.gl/Rikd2Z
dojo.addOnLoad( function(){
dojo.connect( document, 'keydown', function(e){
// 27 -> Key code for ESC -> stop event
if(e.keyCode === 27){
alert("ESC キーは無効です。");
dojo.stopEvent(e);
}
});
});
ノーツアプリケーションを開きたい場合
• Notes:// で始まる URL を利用
例:
Notes://domino1/49257D150019584C/BorderFrame?OpenFrameset&view=B8639AE93C74170B482572DD002BD737
[アドレス] ツールバーを表示 リンクしたいノーツアプリケーションを開いて、表示されるアドレスをコピー
まとめ
• ノーツクライアントの表現方法を広げる技術です。アイデア次第でいろいろできます。面白いアイデアがあったら教えてください!!
• スタンダードクライアントを利用している方はもし機会があれば利用の検討をしてみてはどうでしょうか?
• ベーシッククライアントのユーザー様はスタンダートクライアントにする利点の一つとしてみてください。XPages 以外にもサイドバーなど便利な機能が増えます。個人的にはカレンダーのオーバーレイが便利です。私はノーツのスケジュールと google のカレンダーを同時に表示して使っています。
参考文献
• developerWorks– IBM Lotus Notes/Domino 8.5.1 における XPages 新機能
http://www.ibm.com/developerworks/jp/ysl/library/lotus/y-lot-xpages851newfunction/
• IBM Notes and Domino Application Development wiki– XPages in the Notes Client - Security
http://www-10.lotus.com/ldd/ddwiki.nsf/dx/XPages_in_the_Notes_Client-Security
• CodeZine– 「Dojo道場」~実用アプリ構築のためのベストプラクティス
http://codezine.jp/article/corner/397
Q&A
ご清聴ありがとうございました!