slack

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

2011/06/24

Domino Designer の JavaScript エディターをあなた用に

今回はちょっとした小ネタといったところでしょうか。

DDE (Domino Designer on Eclipse) で JavaScript を書くときに、あると便利なのが、エディターで行番号を表示させること。
デフォルトのままでは、行番号が表示されず、DDE の環境になって間もないという方の中には、エディターのカスタマイズができることを知らなかったという方も多いのでは。

行番号を表示するには、
Domino Designer のプリファレンスで、
[一般] - [エディター] - [テキストエディター]を選択します。

「行番号の表示」にチェックすると、下図のような感じで行番号が表示されます。
行番号だけでなく、前景色、背景色などなど自分の好みに合わせることもできますので、一度確認してください。

2011/06/14

XPages と読者名フィールド

先日、社内で少々議論になったことがありました。
それは XPages は「読者名」フィールドを完全にサポートしているのかといった話題です。

既存のワークフローアプリを XPages アプリとして利用したい場合、読者名フィールドでのセキュリティを使用している場合が多いと思いますので、皆さんもご自分の環境でテストしてみるといいでしょう。

この件に関して、ある人は、サポートしていると言い、またある人は完全にサポートしていないという主張に分かれました。

ビュー表示
サポートしているという人の主張はこうです。
読者名でセキュリティがかかっているノーツビューをバインディングして XPage 上に表示すれば、クライアントで見たそのとおりの内容で出てくるので、読者名フィールドは効いているというものです。
したがって、セキュリティの観点から XPages で見れる文書とノーツクライアントで見れる文書には違いはなく、読者名フィールドを XPages はサポートしているというものです。

XPage 上で使用できるコントロール
逆に、完全にサポートしていないという人の主張は、Notes 特有といってよい「読者名」フィールドなるものが、JSF 準拠の XPages にはあるはずがなく、「読者名」フィールドとして扱える XPage 上のコントロールがないことから由来します。
読者名をデータバインディングして使用できるコントロールは、たとえば、編集ボックスなどのテキストです。

XPages でのミステリー
ノーツクライアントアプリを考えてみてください。フォーム上には読者名アイテムがあります。この読者名フィールド設計をテキストの属性に変更して保存すると、読者名フィールドだったフィールドは、テキストフィールドに置き換わってしまいます。
フィールド属性を設計で変えなくても、LotusScript で読者名アイテムに値をテキストで代入すると読者名の属性が消えてテキストの形式に置き換わってしまいます。


さて、XPages ではどうなるでしょう。XPage 上で読者名フィールドを「編集テキストコントロール」にデータバインディングして、値を修正後保存し、ノーツ文書上の読者名フィールドがどう変わったを確認しました。すると、ノーツ文書上のこの読者名フィールドは、テキストに置き換わることなく、読者名の属性を持ったまま保存されていました。この事象は「サポートする派」をさらに勇気づけさせる結果となります。

ところが、XPage 上で文書を新規作成してみると、この読者名フィールドはテキストのままノーツ文書に保存されてしまいました。今度は「サポートしない派」の逆襲が始まりました。

結局、この話は、サポートする派の、新規文書の場合だけは属性を変えるノーツエージェントを文書を保存してから起動すればいいんじゃないの?というオチで終わってしまいました。

さて、皆さんはどちらの意見をサポートしますか?




Domino Designer 8.5.3 プリビュー

まもなく、Notes/Domino 8.5.3 のリリースが間近に迫ってきました。先週 Code Drop 5 というベータ版がリリースされています。フォーラムの中で Code Drop 5 からブログなどに機能の紹介をしてもよいというスレッドがあり、いま海外でも最近頻繁にこれが話題にのぼっているようです。

遡って、Lotusphere 2011 のセッションの中でも 8.5.3 の機能がどんなものになるかが話に出てきていたそうで、かなり早い段階でその機能概要があちらこちらのブログで紹介されていました。たとえば、この記事は 3 月に出されたものですが、ベータ版 Code Drop 5 を見る限り、機能に関してはその時点と比べて大きな追加も削除もなく、順調に予定通り仕上がってきている感があります。

今回は Domino Designer 8.5.3 を中心に新機能をご紹介します。
初めにお断りしておきますが、ここでの記載の内容に関して以下のDisclaimerが付きますのでご了承ください。

DISCLAIMER :
"This is beta software from IBM and does not represent a commitment, promise or legal obligation by IBM to deliver, in a future release of Notes/Domino or Lotus Notes Traveler, any material, code or functionality described/shown in this presentation."
加えて、ベータソフトに出てくるユーザーインターフェースは正式な製品版と異なる可能性があり、機能の日本語訳も正式なものではありません。

Java設計要素の追加
Domino アプリとりわけ XPages で Java が利用できるように追加されました。データベースの中のスコープ範囲で、XPages から呼び出すことができます。

@GetMMachinInfo() 関数の追加

ソースコントロールの利用
Subversionなどのオープンソースのソースコントロールと可能な限りシームレスな統合ができるようにする目的でDomino Designerにプラグインをインストールして連携させるものです。

パレットプロフィール(Palette Porfiles)
Domino Designer に表示する設計要素の種類を自分でカスタマイズできます。カスタマイズはプロファイルという形で登録します。

"XPages" と "Forms/Views" パースペクティブ
Domino Designer はすべての設計要素をリストアプリケーション・ビューにリストしますが、「XPages」パースペクティブでは XPages 開発に必要な設計だけを、「Forms/Views」パースペクティブはクラシックノーツアプリケーションを作成するために必要な設計のみ表示できるようパースペクティブを切り替えることができます。

JavaScript エディターが WTP (Web Tools Platform) で使用される最新のものにアップデートされています。

「署名」ボタン
8.5.2 まではアプリケーション内のすべての設計要素を一括で署名できる機能しかありませんでしたが、選択した個々の設計要素を個別で署名することができるようになりました。

情報ボックス(プロパティボックス)の表示
設計のプロパティは DDE になって以来、設計のプロパティが Eclipse のパースペクティブの一部になっていましたが、8.0.x までのように、情報ボックス(プロパティボックス)で表示するかどうかの選択ができるようになりました。

F2を押して設計要素の名前変更する際、別名も変更できるようになりました。

以降は XPages 関連のものです。

Dojo のバージョンが 1.5 になります。

XPage またはカスタムコントロールのアウトラインビューに全展開、全省略のボタンがつきました。

Show disabled control for read-only」の属性がすべての入力コントロールに追加されています。

XPage とカスタムコントロールのプロパティパネルに新しく「Dojo」パネルが追加されました。

ビューがWebアクセスされたとき、そのビューをWebで表示する代わりに、「Display XPages Instead」プロパティで指定した XPages を表示することができます。8.5.2 まではフォームなどにはありましたが、ビューに対しても指定可能となりました。

Full text search results sorting in XPages
XPages で全文索引をしようして検索された結果に対してソートをかけることができるようになりました。

その他にもたくさんの機能拡張があり、たとえば、XPage アプリをサーバー起動時にプリロードするなどの機能もあります。正式リリースされた時に確認してみてください。

その他関連ポストを集めてみました。
What's new in Domino 8.5.3 on XPages wiki
XPages and HTML5 gets easier in IBM Notes/Domino 8.5.3
Baked in Source Control Enabler in IBM Domino Designer 8.5.3
8.5.3: App Dev keeps moving forward
HUGE starting time improvement for XPages applications in the Notes 8.5.3 client

今回は、Domino Designer の新機能を紹介しましたが、Domino サーバー、Notes クライアント、Traveler も数多くの機能拡張がされていますので、お楽しみに。

2011/06/03

Ytria databaseEZ 機能紹介デモ

Ytria から最近リリースされた databaseEZ の機能紹介デモを作成しました。

皆さんは、サーバー上の全データベースに対して、アプリケーション(データベース)プロパティを調査しなければならないことはありませんか?

データベースプロパティの設定の中には非常にシステム管理上、重要な項目が数多くあります。
サーバー・ワイドでデータベースプロパティの確認を databaseEZ ではほんの数秒で欲しい情報が手に入り、複数のデータベースに対してプロパティの一括変更も行えます。

ドミノシステム管理者には、お薦めのツールです!!





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 にアップしたいと思います。