© 2007 IBM Corporation
®
Lotus Notes/Domino開発者向けJavaScript入門
日本アイ・ビー・エム・株式会社ソフトウェア事業 Lotus事業部
IBM Software Group | Lotus software
2
目次
1. XPagesが提供する価値とJavaScript
2. LotusScript開発者向けJavaScriptの基礎
3. JavaScriptによるDominoオブジェクトの利用
4. より、XPagesを活用していただくために
参考資料
IBM Software Group | Lotus software
3
1. XPagesが提供する価値とJavaScript
XPagesとは
XPagesが提供する価値
(参考)LotusphereでもJavaScriptをテーマにしたセッションがありました
IBM Software Group | Lotus software
4
Xpagesとは 1/3
データとUIの分離により、新たなユーザー体験を提供
複数サーバー、複数DB上の ビュー、文書が対象
データは、ビュー、文書以外 にもRDBなど順次拡張予定
様々なデータを自由度の高い レイアウトで統合して表示
今まで構築が難しかった アプリケーションが実現可能
IBM Software Group | Lotus software
5
Xpagesとは 2/3
バージョン 8.5.1 から、Lotus Notesクライアント上でXPagesアプリケーションがそのまま稼動します。
WebブラウザーとLotus Notesクライアントの両方から利用するハイブリッドアプリケーションが容易に構築可能です。
タグクラウドなどのWeb 2.0的なインターフェースをLotus Notesクライアントで利用可能です。
Notes DB
Lotus Notes クライアントでのXPages表示 WebブラウザーでのXPages表示
• NotesのプロトコルであるNRPCでサーバーにアクセスします。• Notes IDファイルでログインしていれば、Webパスワードを入力する必要ありません。• ローカルレプリカで、オフラインアクセスが可能です。
IBM Software Group | Lotus software
6
Xpagesとは 3/3
サーバーサイドJavaScriptを利用したプログラミングが可能
IBM Software Group | Lotus software
7
XPagesが提供する価値
Web開発の生産性向上
今まで実現が難しかったアプリケーションを実現
– 最新の技術を取り入れることにより、ルック&フィール、操作性を向上させる
– Notes/Dominoの画面仕様上、実現が難しかったアプリケーションを実現
既存のNotes/Domino資産を利用した開発を実施
– データ
– フォーム/ビュー
– 一部のロジック(バックエンドの定期エージェント等)
NotesクライアントとWebブラウザで画面、設計の共通化
NotesクライアントとWebブラウザで異なる画面を提供も可能
IBM Software Group | Lotus software
8
(参考)LotusphereでもJavaScriptをテーマにしたセッションがありました
Don't be afraid of Curly Brackets - JavaScript for IBM LotusScript Develepers
IBM Software Group | Lotus software
9
2. LotusScript開発者向けJavaScriptの基礎
逐次処理
条件分岐処理
ループ処理
エラー処理
IBM Software Group | Lotus software
10
逐次処理
Function AAA
処理1 処理2 処理3
End Function
function AAA() {
処理1; 処理2; 処理3;
}
LotusScript JavaScript
IBM Software Group | Lotus software
11
(参考)代入演算子
代入演算子は、右辺のオペランドの値に基づいて、値を左辺のオペランドに代入します。基本的な代入演算子は、等号 (=) です。他の代入演算子は、別の演算と代入を組み合わせて簡略化したものです。
※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[代入演算子]
IBM Software Group | Lotus software
12
(参考)算術演算子
算術演算子は、基本的な算術演算を実行します。
※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[算術演算子]より抜粋
IBM Software Group | Lotus software
13
(参考)ストリング演算子
ストリング演算子は、値を連結します。
※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[ストリング演算子]より抜粋
IBM Software Group | Lotus software
14
(参考)リスト演算子
リストは、特定の演算子でエンティティとして処理することができます。
※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[リスト演算子]より抜粋
IBM Software Group | Lotus software
15
条件分岐処理
If 条件A Then 処理1ElseIf 条件B Then 処理2Else 処理3End If
if (条件A) { 処理1;} else if (条件B) { 処理2;} else { 処理3;}
LotusScript JavaScript
IBM Software Group | Lotus software
16
(参考)比較演算子
比較演算子は、2 つの値を比較して、論理 (ブール) 結果を生成します。
※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[比較演算子]より抜粋
IBM Software Group | Lotus software
17
(参考)比較演算子
論理演算子は、論理 (ブール) 演算を実行します。
※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[論理演算子]より抜粋
IBM Software Group | Lotus software
18
ループ処理
While 条件式A 処理1 処理2Wend
while (条件式A) { 処理1; 処理2;}
LotusScript JavaScript
For x% = 1 To 10 処理1 処理2Next
for (i=0; i < 10; i++) { 処理1; 処理2;}
IBM Software Group | Lotus software
19
エラー処理
Function AAA On Error Goto Err_AAA
処理1 処理2 処理3
Err_AAA: 処理4 処理5End Function
function AAA() { try { 処理1; 処理2; 処理3; } catch (e) { 処理4; } finally { 処理5; }}
LotusScript JavaScript
IBM Software Group | Lotus software
20
3. JavaScriptによるDominoオブジェクトの利用
JavaScriptで扱うことが可能なDominoオブジェクト
XSPオブジェクトを利用したプログラミング
Dominoオブジェクトを利用したプログラミング
IBM Software Group | Lotus software
21
JavaScriptで扱うことが可能なDominoオブジェクト
XSPオブジェクト
– XSPではブラウザコンテキストにアクセスするクラスが含まれます
Dominoオブジェクト
– Dominoのバックエンドにアクセスするクラスが含まれます
IBM Software Group | Lotus software
22
XSPオブジェクトを利用したプログラミング
document1.replaceItemValue("Subject", "abcdefg");document1.save();
IBM Software Group | Lotus software
23
Dominoオブジェクトを利用したプログラミング
var db:NotesDatabase = session.getCurrentDatabase(); //現在のDBを取得var view:NotesView = db.getView("AllDocView"); //ビューを取得var doc:NotesDocument = view.getFirstDocument(); //最初の文書を取得
//ビュー上の全文書をループ処理で処理を実施while (doc != null) {
var ndoc:NotesDocument = view.getNextDocument(doc);
doc.replaceItemValue(“subject", “abcdefg");doc.save();doc.recycle();doc = ndoc;
}
IBM Software Group | Lotus software
24
4. より、Xpagesを活用していただくために
Notes/Domino開発と他のWebアプリケーション開発
Notes/Dominoで利用できる一時データ
すべてを一度に作り変える必要はありません
IBM Software Group | Lotus software
25
Notes/Domino開発と他のWebアプリケーション開発
ビュー 文書処理完了画面
(文書)
Notes/Domino
このタイミングでデータを保存
その他のWebアプリケーション
画面1画面2
画面3
画面4
画面5
画面6
画面8
画面7
画面9
データ必要なタイミングでのみ
データにアクセス
画面間のデータ受け渡し(一時データ)はSession等を
利用
IBM Software Group | Lotus software
26
Notes/Dominoで利用できる一時データ
Notes/Dominoでもスコープ変数を定義することで、一時データを利用することが可能です。
IBM Software Group | Lotus software
27
すべてを一度に作り変える必要はありません
XPagesを利用した開発の場合、画面単位で作成することが出来るため、部分的なWeb化や段階的なWeb化が可能になります
– 営業が外で参照するカタログデータ(参照系画面)のみをXPagesで構築する
– モバイル端末でも簡単に実施ができる機能(承認・否認ボタンを押すだけ、等)のみ、XPagesでWeb化を行う
– データ入力業務を行う担当者は従来のNotesの画面を利用し、一般ユーザーの画面のみをXPagesでWeb化する
IBM Software Group | Lotus software
28
参考資料
IBM Lotus Domino and Notes Information Centerhttp://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp
Simple error checking in server-side XPages JavaScripthttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/Simple_error_checking_in_server-side_XPages_JavaScript
NotesName sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesName_sample_JavaScript_code_for_XPages
NotesMIMEEntity sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesMIMEEntity_sample_JavaScript_code_for_XPages
NotesViewEntryCollection sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesViewEntryCollection_sample_JavaScript_code_for_XPages
NotesViewNavigator sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesViewNavigator_sample_JavaScript_code_for_XPages
NotesViewEntry sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesViewEntry_sample_JavaScript_code_for_XPages
NotesStream sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesStream_sample_JavaScript_code_for_XPages
NotesView sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesView_sample_JavaScript_code_for_XPages
IBM Software Group | Lotus software
29
参考資料
NotesDocumentCollection sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesDocumentCollection_sample_JavaScript_code_for_XPages
NotesDateRange sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesDateRange_sample_JavaScript_code_for_XPages
NotesDateTime sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesDateTime_sample_JavaScript_code_for_XPages
NotesDbDirectory sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesDbDirectory_sample_JavaScript_code_for_XPages
NotesDocument sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesDocument_sample_JavaScript_code_for_XPages
NotesSession sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesSession_sample_JavaScript_code_for_XPages
NotesXSPDocument sample JavaScript code for XPageshttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesXSPDocument_sample_JavaScript_code_for_XPages
XPages による Web アプリケーション開発: 前編http://www.ibm.com/developerworks/jp/ysl/library/lotus/y-lot-xpages1/
XPages による Web アプリケーション開発: 後編http://www.ibm.com/developerworks/jp/ysl/library/lotus/y-lot-xpages2/
IBM Software Group | Lotus software
特記事項
本資料の記載内容は、正式なIBMのテストやレビューを受けておりません。内容について、できる限り正確を期すよう努めてはおりますが、いかなる明示または暗黙の保証も責任も負いかねます。本資料の情報は、使用先の責任において使用されるべきものであることを、あらかじめご了承ください。
掲載情報は不定期に変更されることもあります。他のメディア等に無断で転載する事はご遠慮ください。
本資料の著作権は日本アイ・ビー・エムにあります。非営利目的の個人利用の場合において、自由に使用してもかまいませんが、営利目的の使用は禁止させていただきます。
IBM, AIX, Lotus, Lotus Notes, Lotus DominoはInternal Business Machines Corporationの米国およびその他の国における商標。その他、記載された社名および製品名は、それぞれ各社の商標または登録商標です。