slack

テクてく Lotus 技術者 Slack に参加しよう!

2011/05/26

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

前回は content グローバルオブジェクトを見ましたが、今回からデータベース内の文書などにアクセスするためのオブジェクトを見ていきます。

データベースオブジェクトにアクセするには、「database」オブジェクトを使用します。


まずは、Lotus Domino Designer 8.5 の「グローバルオブジェクトおよびグローバル関数」の章を見てください。
ヘルプには、

database
データソースとして現在使用されている Lotus Domino データベースを表す

とあります。
つまり、「database」は今 XPage を開いてるデータベース自体のオブジェクトということになります。LotusScript で言い換えるとこの「database」グローバルオブジェクトは LotusScript の NotesDatabase クラスが、コーディング中、初期化することなく  XPage の中で使用できるのと同じです。
Dim session As New NotesSession 
Dim db As NotesDatabase 
Set db = session.CurrentDatabase
上記のコードのように、LotusScript では現在のデータベースオブジェクトを取得するのに、NotesSession を new して CurrentDatabase で取得していましたが、XPages では直接現在のデータベースを database グローバルオブジェクトからコーディングできます。
そういった観点から LotusScript の NotesUIDatabase クラス がイベントで Source としてすぐ使用できるイメージですが、混同しやすいので、ここでは LotusScript の NotesDatabase と同じようなものだと覚えたほうが得策です。

また、JavaScript でこのオブジェクトを利用する際、
database.<メソッドまたはプロパティ>
の文法になります。メソッドは Domino オブジェクトの下の NotesDatabase オブジェクトのメソッド、プロパティが使用できます。
以下はその使用例のコードです。
database.getServer() //サーバー名の取得
database.getTitle() //データベースタイトルの取得
database.getURL() //データベースのURL取得
var ag = database.getAgent("YourAgent") //エージェントの取得

言い忘れましたが、JavaScript ではコード中の変数名、コントロール名などを厳密に大文字小文字の区別をしますので、database を Database や DATABASE などとするとビルド時あるいは実行時にエラーとなりますのでくれぐれも注意してください。

0 件のコメント:

コメントを投稿