lotus notes/domino開発者向けjavascript入門 -...

30
© 2007 IBM Corporation ® Lotus Notes/Domino開発者向けJavaScript入門 日本アイ・ビー・エム・株式会社 ソフトウェア事業 Lotus事業部

Upload: others

Post on 04-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

© 2007 IBM Corporation

®

Lotus Notes/Domino開発者向けJavaScript入門

日本アイ・ビー・エム・株式会社ソフトウェア事業 Lotus事業部

Page 2: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

2

目次

1. XPagesが提供する価値とJavaScript

2. LotusScript開発者向けJavaScriptの基礎

3. JavaScriptによるDominoオブジェクトの利用

4. より、XPagesを活用していただくために

参考資料

Page 3: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

3

1. XPagesが提供する価値とJavaScript

XPagesとは

XPagesが提供する価値

(参考)LotusphereでもJavaScriptをテーマにしたセッションがありました

Page 4: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

4

Xpagesとは 1/3

データとUIの分離により、新たなユーザー体験を提供

複数サーバー、複数DB上の ビュー、文書が対象

データは、ビュー、文書以外 にもRDBなど順次拡張予定

様々なデータを自由度の高い レイアウトで統合して表示

今まで構築が難しかった アプリケーションが実現可能

Page 5: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

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パスワードを入力する必要ありません。• ローカルレプリカで、オフラインアクセスが可能です。

Page 6: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

6

Xpagesとは 3/3

サーバーサイドJavaScriptを利用したプログラミングが可能

Page 7: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

7

XPagesが提供する価値

Web開発の生産性向上

今まで実現が難しかったアプリケーションを実現

– 最新の技術を取り入れることにより、ルック&フィール、操作性を向上させる

– Notes/Dominoの画面仕様上、実現が難しかったアプリケーションを実現

既存のNotes/Domino資産を利用した開発を実施

– データ

– フォーム/ビュー

– 一部のロジック(バックエンドの定期エージェント等)

NotesクライアントとWebブラウザで画面、設計の共通化

NotesクライアントとWebブラウザで異なる画面を提供も可能

Page 8: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

8

(参考)LotusphereでもJavaScriptをテーマにしたセッションがありました

Don't be afraid of Curly Brackets - JavaScript for IBM LotusScript Develepers

Page 9: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

9

2. LotusScript開発者向けJavaScriptの基礎

逐次処理

条件分岐処理

ループ処理

エラー処理

Page 10: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

10

逐次処理

Function AAA

処理1 処理2 処理3

End Function

function AAA() {

処理1; 処理2; 処理3;

}

LotusScript JavaScript

Page 11: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

11

(参考)代入演算子

代入演算子は、右辺のオペランドの値に基づいて、値を左辺のオペランドに代入します。基本的な代入演算子は、等号 (=) です。他の代入演算子は、別の演算と代入を組み合わせて簡略化したものです。

※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[代入演算子]

Page 12: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

12

(参考)算術演算子

算術演算子は、基本的な算術演算を実行します。

※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[算術演算子]より抜粋

Page 13: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

13

(参考)ストリング演算子

ストリング演算子は、値を連結します。

※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[ストリング演算子]より抜粋

Page 14: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

14

(参考)リスト演算子

リストは、特定の演算子でエンティティとして処理することができます。

※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[リスト演算子]より抜粋

Page 15: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

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

Page 16: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

16

(参考)比較演算子

比較演算子は、2 つの値を比較して、論理 (ブール) 結果を生成します。

※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[比較演算子]より抜粋

Page 17: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

17

(参考)比較演算子

論理演算子は、論理 (ブール) 演算を実行します。

※「IBM Lotus Domino and Notes Information Center」内、[Lotus Domino Designer 8.5]-[Lotus Domino Designer XPageのリファレンス]-[JavaScript言語エレメント]-[演算子]-[論理演算子]より抜粋

Page 18: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

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;}

Page 19: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 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

Page 20: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

20

3. JavaScriptによるDominoオブジェクトの利用

JavaScriptで扱うことが可能なDominoオブジェクト

XSPオブジェクトを利用したプログラミング

Dominoオブジェクトを利用したプログラミング

Page 21: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

21

JavaScriptで扱うことが可能なDominoオブジェクト

XSPオブジェクト

– XSPではブラウザコンテキストにアクセスするクラスが含まれます

Dominoオブジェクト

– Dominoのバックエンドにアクセスするクラスが含まれます

Page 22: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

22

XSPオブジェクトを利用したプログラミング

document1.replaceItemValue("Subject", "abcdefg");document1.save();

Page 23: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

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;

}

Page 24: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

24

4. より、Xpagesを活用していただくために

Notes/Domino開発と他のWebアプリケーション開発

Notes/Dominoで利用できる一時データ

すべてを一度に作り変える必要はありません

Page 25: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

25

Notes/Domino開発と他のWebアプリケーション開発

ビュー 文書処理完了画面

(文書)

Notes/Domino

このタイミングでデータを保存

その他のWebアプリケーション

画面1画面2

画面3

画面4

画面5

画面6

画面8

画面7

画面9

データ必要なタイミングでのみ

データにアクセス

画面間のデータ受け渡し(一時データ)はSession等を

利用

Page 26: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

26

Notes/Dominoで利用できる一時データ

Notes/Dominoでもスコープ変数を定義することで、一時データを利用することが可能です。

Page 27: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

27

すべてを一度に作り変える必要はありません

XPagesを利用した開発の場合、画面単位で作成することが出来るため、部分的なWeb化や段階的なWeb化が可能になります

– 営業が外で参照するカタログデータ(参照系画面)のみをXPagesで構築する

– モバイル端末でも簡単に実施ができる機能(承認・否認ボタンを押すだけ、等)のみ、XPagesでWeb化を行う

– データ入力業務を行う担当者は従来のNotesの画面を利用し、一般ユーザーの画面のみをXPagesでWeb化する

Page 28: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

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

Page 29: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

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/

Page 30: Lotus Notes/Domino開発者向けJavaScript入門 - IBMpublic.dhe.ibm.com/software/dw/jp/lotus/ldd_tech/2011apr... · 2011-05-13 · 1. XPagesが提供する価値とJavaScript 2

IBM Software Group | Lotus software

特記事項

本資料の記載内容は、正式なIBMのテストやレビューを受けておりません。内容について、できる限り正確を期すよう努めてはおりますが、いかなる明示または暗黙の保証も責任も負いかねます。本資料の情報は、使用先の責任において使用されるべきものであることを、あらかじめご了承ください。

掲載情報は不定期に変更されることもあります。他のメディア等に無断で転載する事はご遠慮ください。

本資料の著作権は日本アイ・ビー・エムにあります。非営利目的の個人利用の場合において、自由に使用してもかまいませんが、営利目的の使用は禁止させていただきます。

IBM, AIX, Lotus, Lotus Notes, Lotus DominoはInternal Business Machines Corporationの米国およびその他の国における商標。その他、記載された社名および製品名は、それぞれ各社の商標または登録商標です。