2011/06/01

Notes 開発者のための XPages SSJS 解説 (4)

今回はグローバルオブジェクトの最後として「session」を取り上げます。

前回同様、ヘルプのグローバルオブジェクトと関数の「session」を見ると「現在の Lotus Domino セッションを表す lotus.domino.local.Session オブジェクト。」と説明されています。

この「session」で使用できるメソッド、プロパティは JavaScript のDomino ライブラリにある「NotesSession」となります。

LotusScript でバックエンドプロセスを書くときに、
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase

よく上記のようなコードでスタートすると思いますが、3 行目で現在のデータベースを取得するには、すでに SSJS では「database」というグローバルオブジェクトが用意されているのでこの「session」を使う必要はありません。

ただ、SSJS で他のデータベースを使用する場合は、この「session」がエントリーポイントになります。
var db:NotesDatabase = session.getDatabase("Japan/Teamstudio", "Sales\\sales", false);
var dc:NotesDocumentCollection = db.getAllDocuments();

バックエンドで処理するようなケースがあった場合、現在のデータベースを取得には、LotusScript と SSJS ではエントリーポイントが違う点が混乱しやすいので再確認してください。

特別な処理が必要なければ、データベースオブジェクト取得後には、さほど LotusScript で使用できるクラスと SSJS での Domino ライブラリ内のクラスとの違いがありませんのでコーディングに違和感を覚えることはないと思いますが、一度確認しておくとよいでしょう。

一般的に文書を操作するのに必要な LotusScript でよく使用するクラスを SSJS で見ると下記のものになるでしょうか。リンクはヘルプに飛びます。


また、Lotus Notes and Domino Application Development wiki にはヘルプにはないサンプルがありますのでこちら(sample javascipt code で検索)も参照してください。


以上でグローバルオブジェクトの種類と実際に JavaScript を書く際にどのエントリポイントから書き始めるかを LotusScript と比較しながらご紹介してきました。
いったんここでこの解説シリーズは終了とします。また、まとめたものを近々に、先ほどの wiki にアップしたいと思います。

0 件のコメント:

コメントを投稿