XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう

Preview:

DESCRIPTION

XPagesDay 2014 【A-2】ノーツスタンダードクライアントで、XPagesを使ってみよう

Citation preview

【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

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

ご清聴ありがとうございました!

Recommended