2011/12/12

XPage からビューを読み込みに関する考察

ある記事を見ていて XPage からノーツビューに読み込む際、いくつかの選択肢があることに気が付きました。
  1. ビューコントロールを使用する(初級者にはもっとも簡単)
  2. ViewEntryCollection を使用する
  3. ViewNavigator を使用する (8.5.2 以降)
この3つの中で、どれがもっとも速いでしょうか?

答えは、3. ViewNavigator のようです。

ViewNavigator にはキャッシュの機能があり、パフォーマンスに良いということらしいです。
VIewNavigator のキャッシュには、コレクションデータのバッファリング、サーバーとのトランザクションの減少のメリットが得られます。

ViewNavigator のキャッシュを有効にするには、
View.AutoUpdate = False による自動更新の無効化
Vnav.BufferMaxEntries = (2-400) の指定にようる最大エントリの指定
Vnav.getNext() によるエントリの取得

が挙げられます。

8.5.3 からはこのViewNavigator のキャッシュのメリットを利用しながら操作できるメソッドは以下のようになります。
  • getNext
  • getPrev
  • getNextDocument
  • getPrevDocument
  • getNextSibling
  • getPrevSibling
  • getChild
  • getParent
  • getNextCategory
  • getPrevCategory
一度、違いを試してみようかと思います。


2011/12/02

5 分でできる aclEZ を使った ACL エントリ一括登録

最近では、エンドユーザーの異動に伴い、四半期ごとにノーツアプリケーションデータベースのACLエントリを変更しなければならない企業もすくなくありません。

そこで、今回は大量のエントリをデータベースACLに追加しなければならない場合を想定して、どのように aclEZ を使って作業するかをビデオでご紹介します。

ポイントは、追加したいACLエントリを持つ、ダミーのデータベースを作成して、そのエントリを追加対象のデータベースにコピーします。

詳細はビデオをご覧ください。

2011/11/23

OneUI 2.1 のドキュメンテーション公開

Notes/Domino 8.5.3 で導入された OneUI 2.1 のドキュメンテーションが公開されています。

http://infolib.lotus.com/resources/oneui/2.1/docPublic/index.htm


OneUI 2.0 を使って XPages アプリケーションを開発したものを 8.5.3 で表示がおかしい場合は、一度こちらのページでチェックしてみてください。基本的に 2.0 と互換性がないわけではありませんが、いくつかの項目がアップデートされています。

Migrating from version 2.0 to version 2.1



2011/11/17

ビデオで見る Domino Designer 8.5.3 の新機能

先日 XPages CHANNEL で先行してご紹介しました Domino Designer 8.5.3 の新機能紹介ビデオを YouTube に公開しました。

すでに、いくつか紹介記事が Web 上に公開されているかもしれませんが、手っ取り早く概要を掴んでいただくにはこのビデオが最適です。



また、8.5.3 になり Extension Library でモバイルアプリ、リレーショナルデータベースとの連携などが容易にできるようになっています。
こういう話題やテクニックも XPages CHANNEL で取り込みたいとプランを立てている最中ですので、ご期待ください。

2011/11/10

Ytria Suite 10.5 アップグレード後の言語ファイル差し替え

Ytria 製品のアップグレードリリース(マイナーリリース) 10.5 が先日リリースされました。

既に製品をご購入されたお客様が製品を起動されると、更新のご案内の小さなダイアログウィンドウが開き、アップグレードを選択すると自動的にアップグレードのプロセスへと移ります。
あるいは、ヘルプメニューの「更新の確認」でも同様のプロセスを行うことができます。

今回製品の 10.5 へのアップグレードの後に、Ytria 製品がクラッシュする現象が発生しています。

原因はユーザーインターフェースの日本語化に必要な言語ファイル (YtriaLang.loc) が 10.5 用のものより古い場合に発生します。

アップグレード後に、言語ファイルを最新のものに置き換えていただくと正常に動作しますので、言語ファイルの置き換えをお願いします。

最新の言語ファイルの入手は次のサイトから入手できます。
http://www.ytria.com/glossary.nsf




Ytria 製品は多言語対応されおり、それぞれの言語ファイルはこのサイトからいつでも最新のものが入手可能になっています。

Japanese」のカテゴリから「Download」のリンクをクリックしていただくと、ポップアップダイアログが上図のように表示されます。ここから「YtriaLang.loc」ダウンロードしてください。
ダウンロードしたこのファイルは、Notes クライアントの実行フォルダー(通常)にコピー置き換えしてください。

これで、問題なく 10.5 が使用できるはずです。

Ytria でのソフトウェア更新では、残念ながら言語ファイルは自動更新されませんので、今後も同様の処置が必要になります。また、製品をご使用いただく中でユーザーインターフェースの翻訳上、改善が必要だと思われる箇所があればチームスタジオのテクニカルサポートへ Email でご連絡ください。
こちらで修正後、上記のプロセスでお客様からのフィードバックに基づいた、改善されたユーザーインターフェースでご使用いただけるはずです。




2011/11/08

DDE 上でのコードコメントアウトのショートカット

小ネタになりますが、こういうことができたらと何度思ったことでしょう。
オリジナルの出展はこちらになります。
Russell Maher 氏の「Speed up your development with code comment shortcuts」。

XPages で JavaScript を書いているとき、コードにコメントアウトするショートカットが紹介されています。

一行だけのコメントアウト/コメントアウトの解除は Ctrl + Shift + C
複数行の場合は、範囲を選択して Ctrl + Shift + / でコメントアウト、Ctrl + Shift + \ で解除になります。

このショートカットが使えるのは、XPage ソース、テーマ、Java エディター、JavaScript と JavaScript ライブラリーだそうです。






他にも役立ちそうなショートカットがあるかもしれません。

2011/10/19

Lotus Knows EXPO 2011 で本音で思ったこと


今回は Lotus Knows EXPO 2011 東京のみの参加でしたが、皆さんも楽しんでいただいたと思います。もうすでに何人かの方がブログなどで概況や感想をコメントされていますね。
みなさんの感想はどうだったでしょうか?

私の感想。今年の Lotus Knows は本当に意義ある良いイベントだったと思います。
一概にイベントには、「Wow!」を期待したり、未知の知識に触れることを期待していくものですが、どうやら私の興味は最初から違うところに向いていたようです。

「人と人とが、つながる、広がる、動き出す」
が2年連続のイベントテーマになっていますが、

冒頭、私が意義あるイベントとしたのは、Lotus ユーザーやビジネスパートナー、コミュニティそれぞれの課題、目指すべき方向がモヤモヤしたものから秋晴れのようにスカッと明確になったような気がしたからです。

Business Partnersに突き付けられた課題
Lotus ユーザーがソーシャル・ビジネスを展開できる日はいつのことか?


「ソーシャル・ビジネス」はすでに私たちの生活の中に明らかに取り込まれています。何かの判断をするとき、Webで検索したりすることは日常的。最近は片手に収まる端末からも。その際に、商品や会社、あるいはその社員のことがポジティブに、あるいはネガティブに書きこまれていることも珍しくありません。一般消費者はもちろん、企業もそれを見て、その商品や会社のことを判断しています。私たちはすでにソーシャルに晒されているし、一方でそれを個人としてうまく活用していたりします。

公開討論会の控室で関さんが話していたことが印象的です。概要は、これからソーシャルを取り込まずして生き残れる企業はないと。唯一の例外はこの世界で1社、Appleだけ。Appleでは、そのための人的リソース、資金などをふんだんに投入できる組織体であること。企業でそれができればそうすれば良いし、できないならソーシャルを取り込むべき。
もう一つは、丸山さんから。商品やサービスを購入するとき、最近は「人」から購入するようになったというお話。会社の商品やサービスは、その会社のどんな人がどういう話をしているかで最終判断することが多くなったと。結局「(素)顔」がないと買わないということでしょう。

そんな中で、こういうソーシャルの流れにビジネスパートナーは、あまりにも鈍感過ぎるような気がしてなりません。そう思うのは私だけだと良いのですが。
IBM -> ビジネスパートナー -> エンドユーザーの構図の中で、エンドユーザーにソーシャルの声が届かないのは、真ん中の BP で淀んでしまっているのでしょう。
これから訪れる大きなうねりに巻き込まれて慌てる前に早急に今、ビジネスパートナー自身が真剣に取り組み、一刻も早くエンドユーザーにプロモーションすべきだと思います。

最後に、#lotusEXPOのハッシュタグを見てても、IBMerか数人のLotusファンしか出てこないのは、皆さんソーシャルに興味がないのでしょうか?

唯一の Lotus コミュニティ、ノーツコンソーシアムは大丈夫?もっとソーシャルに。

イベント中、XPages に詳しいある方にお会いして、コミュニティに Blog や wiki などに投稿して少し貢献してもらえないですかというお願いをしました。ところが、会社で許可がいるらしくためらっていらっしゃいました。会社とは、ノーツコンソーシアムで理事クラスの会社だと思うのですが、えっ、そうなの?というのが私の率直な感想です。ノーツコンソーシアムの討論会に参加させていただいた身で、こんなことを言うことは恐縮ですが(S氏はいつも私の小言を知っていますが)今さらながら会の上に行けばいくほど、なんて閉鎖的でハイラーキーなコミュニティなんだと。後でホームページを確認したら、いわゆる Lotus 製品を売るための企業連合体みたいなことが書いてあったので、私の認識も間違っていたのかもしれません。昔はそれで食っていけたし、やっていけたんですが。

新しいコンセプト、技術の伝播を考えると、やはりユーザー企業やBP、あるいは学生でも参加できるような垣根のない真のユーザー主導のコミュニティが必要ではないのかと。

いまどき、SNS やリモートでの参加ができるコミュニティをもし立ち上げたら、1年後ノーツコンソーシアムが終焉を迎えることもあながち起こりうる時代なんだと肝に銘じてノーツコンソーシアムに参加、あるいは応援されている企業もドラスティックに変わって欲しいと思います。
最後に"Notes"コンソーシアムではなく、せめて"Lotus"コンソーシアムにしませんか?

XPages、認知されてるけど浸透していない
言葉がありません。がっかりです。
ちょっと考えてみました。
(エンドユーザー企業にとって)ノーツの技術者は大別してアドミンとデベロッパーに分けれますが、現状、「ノーツ担当者」として仕事されている方が多く、新しい言語、テクノロジーを習得しようという人が少なくなったのでしょうか?

(SIerにとって)お客様から新規でWebアプリ開発を依頼されたとき、わざわざNotes/Domino + XPages を選択することはなかった思いますが、IBM XWork Server のオファリングでかなり魅力的になったのではないでしょうか?どうでしょう?

最後に、今週、うちのマーケとLotusの女性だけの男子禁制のコミュニティとか立ち上げたらどう?面白いんじゃないって話をしてました。結構技術者の中で女性の比率も高いし、実は XPages CHANNEL のお申込みいただいた個人/企業問わず女性が多いので面白いかもしれません。

以上、私の視点からLotus Knows EXPO を振り返って。


2011/10/04

IBM XWork Server

昨日、Ed Brill 氏のブログで公開された IBM XWork Server の概要が公開されました。{Original Post}
ビジネスパートナーと IBM Champions に対して先行して説明があり、8 月 4 日までは公表しないようにと釘を刺されていたのに、その前日にブログポストされてしまいちょっとビックリでした。
IBM XWork Server は特にビジネスパートナー(ISV)の XPages ソリューションを加速させるための新しいオファリングで、年間約2,000 ドル(現在英語版のみ)でサーバーライセンスを提供するものです。
ただし、XPagesによる 4 つのアプリケーション(ひとつのアプリケーションは 4個のNSF で構成、合計最大 16 の NSF)が 1 つの IBM XWork Server ライセンスで使用できる範囲となり、4 つのアプリケーションを超える場合は、追加の XWork Server を購入する形を取ります。ノーツクライアントからのアクセスが必要としない形態に関しては、ユーザー数の制限なく使用することができるようです。XWork Server はメッセージングの機能もなく、XPages アプリケーションをブラウザから利用するだけの利用になると思いますが、2,000 ドルという価格で ISV が持つ XPages ソリューションと組み合わせて市場に提供は大英断といっても過言ではありません。日本でのリリースの詳細は日本IBMからの正式な案内を待たなければいけませんが、ISV とそれを利用する顧客の両方に大きなメリットが生まれます。

また、製品の位置づけで面白いのは、Lotus の黄色いブランドではなく、IBM のブルーのブランドから出荷されるようです。

今週から始まるLotusKnows EXPO 2011 でどれぐらいの XPages ソリューションの展示がされるのか興味深いところですが、このニュースは間違いなくパートナー企業が XPages ソリューションビジネスに本格参戦するに十分なニュースではないかと思います。

詳細はおそらく LotusKnows EXPO 2011 でのビッグニュースのひとつになると思いますので、それまでのお楽しみということにしておきます。

**Disclaimer
当内容は当市場における IBM からの正式な発表からのものではありません。したがって、正確な内容に関しては正式な発表をもってご確認ください。




2011/08/19

テクてく Lotus 技術者夜会での講演

夏休みが終わり、ほとんどの方が、そろそろ通常の業務に戻られているいるのではないでしょうか。

さて、今回は、皆さんにもおなじみとなっている「テクてく Lotus 技術者夜会」。
次回のデベロッパー編にあたる 9 月 16 日(金)の 19 時から 20 時までのセッションの後半をいただき、初の外部講師として Lotus Notes/Domino アプリケーションのモバイル対応についてお話する機会をいただきました。

特に、XPages を使用したモバイル化についてということでお時間をいただきましたが、
このエリアは1ヶ月前の内容がもう古くなってしまうほど、動きが非常に早く、開催される次期がおそらく Notes/Domino 8.5.3 のリリースと重なって(?)、話の内容を確定するのが、非常に難しくなってきています。

加えて、後のセッションでも Dojo Mobile を使ったハンズオンもあることから、どういう話にしようか、しばらく動向を含めて静観しているところです。

モバイルアプリケーションを作成する方法はいくつかありますが、その技術の総括的なものか、モバイルアプリケーションを作成するうえでの考慮点など、いくつか頭に浮かんでいることをこれからまとめていきたいと思いますが、もし皆さんの中でご興味がある内容があれば参考にさせていただきたいと思います。

夜会はリモートでも参加できますので、東京近辺以外の方でも、是非ご参加ください。

「テクてく Lotus 技術者夜会」の詳細、お申込みはこちらになります。
http://www.ibm.com/developerworks/jp/offers/events/techtech01/




2011/07/19

unplugged.teamstudio.com がオープン! XPages を使用したモバイルアプリ開発

先週末、Teamstudio からアプリケーションのモバイル化に特化したソリューションの website が公開されました。

http://unplugged.teamstudio.com


Unplugged の BlackBerry 向けのソリューションは既にご提供できていますが、スマートフォン端末のクロスプラットフォームでの Notes/Domino アプリケーションの作成を実現するため、加えて、ユーザーがタッチパネルを使用してアプリケーションを操作できる、最近のスマートフォンアプリ同様、ビジュアルで操作性に優れていることを最重要としてこの開発プロジェクトに臨んできました。今月に Android、続いて iOS、来年には Windows Phone 7 にも対応する予定です。

Unplugged は開発に XPages の技術を使用します。つまり、Domino Designer で XPage の作成を行いモバイルアプリケーションを作成できます。
また、HTML5 などの最新の技術を使用してさらに、スマートフォンならではのユーザーエクスペリエンスを実現しています。


もし、iPhone や iPad をお持ちでしたら、この Unplugged で実現できるデモデータベース(ビジュアル・アドレス帳)にアクセスできますので是非お試しください。
スクリーンイメージはこちらの URL で、
http://unplugged.teamstudio.com/unplugged-engine-for-ios/

iOS デバイス(iPad や iPhone)をお持ちでしたら直接こちらでデモデータベースを操作しご確認いただけます。
http://emea.teamstudio.com/vab/vab_demo.nsf







2011/07/08

Teamstudio Analyzer 分析テンプレートの不具合

Teamstudio Analyzer Edition27J の分析テンプレートの中に「設計\ビュー」と「設計\フォルダ」のビューの選択式が誤っているため、分析内容がその2つのビューだけ表示されないという報告がありました。

時期リリース(Edition 28)で修正される予定ではありますが、近々に必要という方は、テンプレートの設計を修正していただくことで簡単に修復できますのでお知らせしたいと思います。

分析結果テンプレート(ivesdean.ntf) のビュー設計から、「オブジェクト\ビュー」を開きます。
ビュー選択式に次のようなコードが書かれていますが、 fvewType の指定が誤っていますので、次のように書き換えてください。

REM {Show only design notes that have not been deleted};
SELECT Form = "CVEW00" & fvewType = "View" & fspvDeleted_WB != 1


REM {Show only design notes that have not been deleted};
SELECT Form = "CVEW00" & fvewType = "ビュー" & fspvDeleted_WB != 1

もう一つの「オブジェクト\フォルダ」も次のように書き換えます。
REM {Show only design notes that have not been deleted};
SELECT Form = "CVEW00" & fvewType = "フォルダ" & fspvDeleted_WB != 1
以上で修正は終わりです。
ご迷惑をお掛けして申し訳ありません。

2011/07/05

OneUI 2.1

Domino Designer 8.5.3 CD5 を見ていて偶然見つけました(私のリリースノートの見落としか、まだ確定でないのか定かではありません)が、OneUI に 2.1 の新しいバージョンが CD5 には追加されていました。

これまでの OneUI v2 はこんなようなイメージのページ構成でした。

テーマファイルが格納されているフォルダを見ると、これまでのものに 2.1 を表す OneUI のテーマがあったので、早速どんな見栄えになるかをテストすることにしました。

今回追加があったのは、

  • oneuiv2.1
  • oneuiv2.1_blue
  • oneuiv2.1_gen1
  • oneuiv2.1_gold
  • oneuiv2.1_green
  • oneuiv2.1_onyx
  • oneuiv2.1_orange
  • oneuiv2.1_pink
  • oneuiv2.1_purple
  • oneuiv2.1_red
  • oneuiv2.1_silver
のようです。
oneuiv2.1 のテーマを使用したページイメージは次のようになります。なんだか、次の Lotusphere のデモで見たページを連想します。次のスタンダードになることを意識しているようです。

blue
gen1
gold

green
onyx

orange

pink

purple

red

silver

なんだか色見本のようになってしまいました。


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

2011/05/30

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

今回は XPages 開発の JavaScript コーディングで頻繁に出てくる XSP ライブラリとバックエンドライブラリをしっかりと理解したいと思います。

XPages は LotusScript のクラスと同様、オブジェクトにはフロントエンドの文書/ビューを扱う XSP ライブラリバックエンドの文書/ビューを扱う Domino ライブラリがあります。

Domino ライブラリを使用して、現在ページ表示しているデータベースとは違う他のデータベースを参照したり、今ページ上で開いている文書以外の文書にアクセスできます。要は、ユーザーインタフェース(ページ)に見えていないものを扱います。
これに対して、フロントエンドの XSP ライブラリはヘルプで「XSP」、「Xsp」というオブジェクトの名前がついています。。XSP や Xsp という言葉を見つけたら、それはフロントエンドのオブジェクトだと思ってください。
LotusScript クラスでフロントエンドというと「UI」にあたるんですが、考え方は同様です。
ブラウザ中にまさに表示されているページで扱えるものです。Domino 文書をデータソースで使用していれば文書を、Domino ビューをページで表示していればそのビューが XSP オブジェクトとして扱えます。

(補足: ここで「XSP ライブラリ」と「XSP オブジェクト」という言葉を使用していますが、ライブラリはそれぞれのオブジェクトの集まりと理解してください。)


話をグローバルオブジェクトに戻しますが、
ヘルプでのグローバルオブジェクトおよびグローバル関数
currentDocument と dominoDocument1 のそれぞれの説明にこうあります。
currentDocument 現行コンテキストで最も近くにある文書を表す NotesXspDocument オブジェクト。
dominoDocument1 Lotus Domino 文書データソースを表す NotesXspDocument オブジェクト。
ちなみに dominoDocument1 は仮の名前で、XPage でデータソースの名前を指定しますが、そのデータソース名です。仮りに皆さんの指定したデータソース名を dominoDocument1 として説明しています。

currentDocument も dominoDocument1 も NotesXspDocument を表していることから、使用できるメソッド、プロパティはヘルプの NotesXspDocument のこちらの章になります。
メソッド、プロパティの数はそんなに多くないのでヘルプで確認してください。

NotesXspDocument ではページ上の文書アイテムの値を取得する関数が、データ型によって厳密に操作できるようになっています。LotusScript の NotesUIDocument クラスでは「FieldGetText」でテキストとして値の取得のみでしたが。


ヘルプにはサンプルのコードが少ないので、Lotus Notes and Domino Application Development wiki の「NotesXSPDocument sample JavaScript code for XPages」が役に立つと思います。



次回は Domino ライブラリを取り上げる予定です。

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 などとするとビルド時あるいは実行時にエラーとなりますのでくれぐれも注意してください。

2011/05/24

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

4 月から今月にわたり、大阪、東京、名古屋で「Teamstudio Bootcamp for XPages」ワークショップで XPages 開発のハンズオンを実施させていただきました。ご参加いただいた皆さんには重ねて御礼申し上げます。

そのハンズオンで、サーバーサイド JavaScript (SSJS) が今ひとつよくわからないという感想をいただくことがありました。とかくハンズオンではコードの入力に忙しく、SSJS の十分な理解を得られないまま進めざるをえない状況に陥りがちです。ご参加いただいた方は、ほとんどがすでにLotusScript での開発経験がある方なので、SSJS をまったく新しい言語として覚えるよりは、LotusScript との違いや類似点に焦点をあててご説明したほうがよりご理解いただけることがわかってきました。今回は、その勘所を皆さんにもご紹介したいと思います。

私が LotusScript を覚えたときは、皆さんもそうだと思いますが、とにもかくにも Designer ヘルプをよく見ました。全てを覚えるというよりは、出てきたコードをその都度ヘルプと照らし合わせながら、またサンプルを見ながら理解するのがもっとも効率的だと思っています。ヘルプの見方を覚えるだけで、急に全容がわかるということも期待できます。

今回は「IBM Lotus Domino and Notes Information Center」のヘルプを使います。このサイトは、Domino Designer にインストールされているヘルプよりも最新の情報が最新の状態で入手できるのでブックマークしておくと便利です。


JavaScript の構文や書き方よりは、むしろグローバルオブジェクト、Domino オブジェクト、XSP オブジェクトの理解していただきたいと思います。

グローバルオブジェクト
ヘルプには「グローバルオブジェクトは、サーバーサイドスクリプトへのエントリポイントを提供します。 グローバルオブジェクトの名前を入力すると、そのグローバルオブジェクトがインスタンス化されます。」とあります。
簡単な言葉で言えば、XPage 内でいつでもどこでも使えるオブジェクト。
スコープ変数を扱う、「applicationScope」、「requestScope」、「sessionScope」、「viewScope」はわかりやすいと思います。
詳細は、Lotus Notes and Domino Application Development wiki の「XPagesのスコープ変数のタイムアウト」を参照してください。

その他、実際のアプリケーション開発で使用されるグローバルオブジェクトで使用頻度の高いものを見ると、
  • context
  • currentDocument
  • database
  • dominoDocument1
  • session

があげられます。私の経験では90%以上が、このグローバルオブジェクトから派生するオブジェクトや変数が実際の開発では使用されるのではと思っています。今回のポストから数回にわたって、このグローバルオブジェクトを解説したいと思います。
まず今回は context から。

context
ヘルプにある context の説明には「データベースサーバー、ユーザーブラウザ、およびその他のオブジェクトにアクセスできるようにする XSPContext オブジェクト。」とあります。コンテキストを簡単に言うと、ユーザーがどのブラウザを使用しているか、そのバージョンは何か、OSは何かといった Web ページを表示するうえでのユーザー環境を取得したり確認したりするため使用します。Webアプリならではのオブジェクトで、もちろんノーツクライアントアプリの作成には出てこない新しいものです。どういう使い方があるかというと、たとえば、ブラウザが FireFox か IE かによってページの表示が多少異なる場合があるかもしれません。そんな時には、この context オブジェクトからユーザーが使用するブラウザの種類を検知して、制御できます。
次は context の 3 つの使用例です。
var browser = context.getUserAgent().getBrowser(); //ブラウザの種類
var bversion = context.getUserAgent().getBrowserVersion(); //ブラウザのバージョン
var locale = context.getLocale().getDisplayName(); //言語ロケール
また context は以下のようにテーマ設計の中にブラウザの種類によって読み込む CSS ファイルを制御する際にも使われます。
 <resource rendered="#{javascript:context.getUserAgent().isIE(0, 6) == true}">

            <content-type>text/css</content-type>

            <href>blue_ie06.css</href>

      </resource>



      <resource rendered="#{javascript:context.getUserAgent().isIE(7, 8) == true}">

            <content-type>text/css</content-type>

            <href>blue_ie78.css</href>

      </resource>

ヘルプにあるとおり、
context = XSPContext
なので、この context で使用できるメソッドやプロパティは、ヘルプの
「XSP」-「 XSPContext」の中を展開すると確認できます。
XSPContext オブジェクトのメソッドやプロパティのヘルプをひとつひとつ見ていくと、
「構文」というところがあります。
構文
filterHTML(html:string) : string

filterHTML関数の後の「:」に string という戻り値の型が指定されているます。string は文字列ですが、他にも boolean、何も返さない void (実行するのみ)などいろんな型があります。
ここで注意するのは、この型指定が大文字で始まっているものは、また違うオブジェクトを参照しているので、その先のオブジェクトを利用して値の取得などを行う点が勘所です。
その他には、
getLocale は「Locale」
getTimeZone は「TimeZone」
getUrl は「XSPUrl」
getUser は「DirectoryUser」
getUserAgent は「XSPUserAgent」

テーマ設計でみた、以下のコードは context オブジェクトから getUserAgent() メソッドを呼び出しますが、ここでは終わりではなく「.」を付け XSPUserAgent オブジェクトのインスタンス参照をし isIE() メソッドでブラウザが IE の 6 以下かどうかをチェックしています。
context.getUserAgent().isIE(0, 6)


今回はグローバルオブジェクトをとりあげました。次回は、 database オブジェクトです。

2011/03/31

Domino はRAD か?

Notes In 9 で XPages を使って 5 分以内に簡単なアプリケーションの作成/参照/修正/削除 (CRUD) 機能が作成できるかをデモしています。

The Great XPages Race

ことの発端は、codestore.net で ASP.NET が 5 分でできるのに対して、Domino では難しいという意見に対抗して、これまでの"クラシック" Dominoならそうかもと否定はしないものの、XPages ならそれが実現できると証明する内容になっています。
あまりシリアスに考えず、楽しんで観ていただけるのではないでしょうか?

http://traffic.libsyn.com/notesin9/Ni9-23-XPagesRace.mov


2011/02/22

Teamstudio Bootcamp for XPages の開催決定

XPagesの二日間のハンズオン・ワークショップの日程と場所が決定しました。



【開催日時】
■東京会場(定員 20 名)
4 月27 日(火)~ 4 月28 日(全2 日間)
10:00 ~ 17:00
大塚商会セミナールーム
■大阪会場(定員12 名)
4 月19 日(火)~ 4 月20 日(全2 日間)
10:00 ~ 17:00
大塚商会セミナールーム
■名古屋会場(定員12 名)
5 月18 日(火)~ 5 月19 日(全2 日間)
10:00 ~ 17:00
大塚商会セミナールーム

参加費用は二日間で、なんと 95,000 円(税別)
海外などは、このようなワークショップでは 20 万円を超えていますので破格の値段だと思います。

しかも、キャンペーンも同時進行しています。
「Early Baird」キャンペーンで早期申込者は 85,000 円、会社の同僚など企業で 2 名様以上参加の場合の価格特典あり。また、Teamstudio のツール購入割引付きなど様々な特典が用意されます。
(これでも元が取れるのか・・・ほとんどボランティア?と心配)

カリキュラムは以下を予定しています。

詳細は別途 www.teamstudio.com のイベントページか、 contactusjapan@teamstudio.com までご連絡ください。

さぁ、早いもの勝ち!さっそく Mark Your Calendar!

2011/02/16

Ytria EZSuite Version 10 がまもなくリリース

Ytria ツールがまもなくバージョンアップのリリースがされる予定です。リリースの日付は現在のところまだ明かされていませんが、昨年末からの告知と Lotusphere を経てまもなくリリースされるのではないかと予想されます。
Ytria のサイトでは What's New in EZ Suite 10? がオープンしていますので詳細を見て行きたいと思います。


V10 全製品の共通の新機能
Domino Designer on Eclipse (DDE) への統合
Ytria ツールが DDE に対応。下のスクリーンのように、右クリックでコンテキストメニューに Ytria ツールの起動に加え、特定の機能を直接呼び出すことが可能になります。

ログ生成機能の変更

Ytria ツールを使用して Lotus Notes アプリケーションに行った変更をログとして生成します。ログ生成先のデータベースはどの Lotus Notes データベースでも可能です。

データベースを切り替えるための新しいキーボードショートカット

ツールを使用している際に、Ctrl+O で新しいデータベースを開くことができます。


以下はそれぞれのツールにおける v10 での新機能です。





一時的削除の管理

文書の一時的削除と完全削除を区別することができ、一時的削除を復元したり、完全削除したり、削除スタブを削除することができます。

「マイセレクション」バーチャルフォルダーの機能拡張

別の「マイセレクション」に追加、移動、削除、交差を選択するとバーチャルフォルダを選択するダイアログを表示されます。

scanEZ 特有の DDE 統合

設計要素に対し、右クリックで scanEZ が起動でき、新規の「マイセレクション」が開きます。ここで、複製の監査や複製後の監査を直接呼び出すことも可能です。プルダウンメニューから scanEZ の Notes.ini エディターにもアクセスできます。


恒久的な式の履歴の保持

使用した式の履歴を恒久的に保持することが可能になりました(もちろん保存する式の最大数をカスタマイズ可能)。



文書の分析でサマリーデータをスキャン

文書の分析ツールが文書の集合体としてのサマリーデータを扱えるようになりました。とりわけ文書のフィールドの 32k の制約のトラブルシューティングに便利です。

競合の解決と文書比較のインターフェース改善

競合の解決と文書比較で特定のフィールドに対してだけを対象にすることができるようになりました。これを行うには「文書間で異なる値を持つフィールドだけを表示」のオプションをチェックする前に、対象のフィールドの前にチェックボックスを事前にチェックしておきます。これで、特定のフィールドに対しても競合の内容や比較を行うことが可能になります。

Notes.ini (ローカルとサーバー) の出力

Notes.ini エディターツールに出力ボタンがつき、コピーとして保存することが簡単になりました。





ロールの管理における機能拡張

対象の ACL エントリを選択した状態でボタンをクリックするとロール設定の詳細情報を見ることができるようになりました。名前別のロール設定では設定されているロールや設定や設定可能なロールの情報を見ることができます。


「選択 ACL」の新パネル

この新しいパネルでは選択した名前に関連する完全な ACL 設定を見ることができます。デフォルトでは、最大 5 個の ACL まで表示しますが、表示数をカスタマイズすることもできます。


ユーザーインターフェースの改善

一般的なテンプレートは緑、詳細テンプレートは青で区別するようになりました。






必要な情報のみをロード可能

グリッド内に選択したエージェントに対応するデータベースのみをロードしたりリロードするようこができるようになりました。


XML 出力の改善

エージェントを保存あるいはデータベース選択を保存した際、agentEZ ので出力する XML の情報に DBID やレプリカ ID、UNID、NoteID、別名、クラスタイプといった情報が追加されるようになりました。

agentEZ 特有の DDE 統合

Domino Designer 上のエージェントを選択(複数可)して右クリックで直接 agentEZ のエージェント情報を呼び出すことができます。




グリッド内のデータベース情報追加

データベースパネルとメイングリッドでテンプレートか詳細テンプレートか、またはバックグラウンドエージェントして動作の許可があるかどうかを識別できるようになりました。






署名管理の Domino Designer への統合

Domino Designer 内で対象を選択(複数可)し右クリックで signEZ を呼び出したり、別の ID で署名することができるようになりました。






右クリックの操作だけで簡単にビューやフォルダー内の情報を非表示に

列ダイアログで特定の設計要素(選択したもの、タグ付、タグなし)を非表示にするオプションがつきました。これで、さらに作業したい内容にフォーカスすることが可能になります。


ビューやフォルダーに対する特有の Domino Designer 統合

Domino Designer 内のビューやフォルダーを選択し、右クリックすると viewEZ が起動されます。


 8.5.2 以上でサポートされた新しいプロパティへの対応

「Use Column Property as Backup」プロパティを viewEZ の列プロパティダイアログに表示するようになりました。






右クリックで設計を非表示に

アクションウィンドウの「選択した設計要素を非表示」を利用して、作業がよりフォーカスできるになりました。

アクションバー特有の Domino Designer 統合

Domino Designer の設計要素を選択し右クリックで、actionBarEZ のアクションやアクションバーのウィンドウを呼び出すことができるようななりました。





設計ソースプロパティ特有の DDE 統合

Domino Designer 内の設計要素を選択し右クリックで設計ソースプロパティ(再設計/設計の置換の禁止フラグなど)を監査することができるようになりました。


以上です。