投稿

2月, 2010の投稿を表示しています

XSLT を使用してフォームを XPages に変換する

イメージ
今回は Paul Calhoun 氏による「Transforming Domino Forms into XPages via XSLT」の紹介です {Original Source}

作者自身は長く XML や XSLT に関わっていますが 既存のノーツフォームを XPages 化する際に気づいた点と自身が作成した XSLT を使ってフォーム設計を XPage に変換する方法を紹介しています。

基本的なコンセプトはフォーム設計も XML (正確には DXL) で表現できるので、もともと XML (JSP/JSF シンタックス) である XPage へは簡単に変換ができるのではないかということです。

この変換のために作者が作成した XSLT はこちらからダウンロードできます。

では作者が示した手順と同じように行って行きましょう。
まずは、ダウンロードした XSLT は <ノーツデータフォルダ>\xsl フォルダ内にコピーしてください。

そして簡単なフォーム設計を作成します。内容はどんなものでも構いませんが、今回私はいろんなフィールド種類のものを定義してみました。
では早速作者が提供している XSLT を使ってフォーム設計を XPages へ変換してみましょう。
先ほどのフォーム設計を選択した状態で Domino Designer のメニューより [ツール] - [DXLユーティリティ] - [トランスフォーマー] を選択します。

次のダイアログで変換するフォームを選択。そして XSL リソース を作者が提供する xsl ファイルを指定します。出力先は「表示」で OK ボタンを押します。
するとブラウザが立ち上がり、変換された設計が表示されます。ここからこのページのソースを表示します。
ソースはだいたい以下のような内容になっていると思います。
ソースコード全体をクリップボードにコピーします。

ここから新しい XPage を新規作成します。そしてソースタブに切り替えてください。

自動的に作成された箇所も含めて、先ほどクリップボードにコピーした内容に置き換えします。
設計タブに切り替えるとフォーム設計から変換された XPage を見ることができます。

変換された結果を見ると、データソース(フォーム設計)が設定されている事。作成された表はフォーム上のフィールドに大してラベ…

Web セミナー「Lotus Notes Domino アップグレードソリューション」がオンデマンド(録画)公開

先日行いました Web セミナーがオンデマンド(録画)で公開されました。こちらのリンクでご覧いただけるようになります。
Web セミナー「Lotus Notes Domino アップグレードソリューション」

ご覧いただくためには、再生ボタンと押し、お名前、Emailアドレスなど必要な情報のご入力をお願いしております。




また、前回公開したスライドはこちらで入手いただけます。

Teamstudio Upgrade Filters でより精度の高い非互換検出結果を出すための工夫

イメージ
昨日、Web セミナーで Teamstudio Upgrade Filters をご紹介させていただきました。そこで今回は Upgrade Filters を使用して非互換検出をご検討されている方にちょっとした Tips です。

非互換検出の精度を高めるためには考慮すべき点がいくつかありますが、今回は典型的な例をご紹介しながらどういう条件を作成すればよいか見ていきます。

たとえば、R5 以前のユーザーで独自に「Replace」というファンクションを作成していた場合、R6 から同名のファンクションが標準で追加されたため衝突が発生してしまいます。これを例にしてご説明しましょう。

この非互換を検出するため Upgrade Filters では下のような条件が記述されています。
赤い四角で囲ってある部分が条件式ですが、お分かりのとおり、そのままでいけば「Replace」ということばを単に探すということになります。

従って、その他の関数、たとえば「ReplaceItemValue」もヒットしたり、英語圏のユーザーの中にはコメントとして良くつかわれることが充分に想定されます。
ではどうしたらいいでしょうか?

Replace 関数は
ret = Replace(array1, array2, array3)のように記述されるため上記の問題をそれを避けるために検証式を
TMSRTContains( Rich Text; 0; "Replace(" )と記述し直すとより ReplaceItemValue 関数がヒットしなくなり、より Replace 関数のみにフォーカスが当たるようになります。

実はこれでもまだノーツ式の @Replace との切り分けができていないのですが、本来であれば
TMSRTContains( Rich Text; 0; "△Replace(" )とReplace の前にスペース(△)を一文字入れたいとこです。しかし、
ret=Replace(array1, array2, array3)のようにスペースがなく保存されているスクリプトも考えられますので、ここでスペースを入れると見落としが発生してしまう可能性が出てきます。

このようにどこまで精度を高くしたいか、コーディングのクセなども考慮して適切と思われる条件にすることが重要にな…

Web セミナー「Lotus Notes Domino アップグレードソリューション」のスライド公開

前々回のポストでご紹介しました Web セミナー『Lotus Notes/Dominoアップグレードソリューション』のスライドをアップします。
今回この Web セミナーをレコーディングしましたので、Webcast では後日 Teamstudio のサイトでご覧いただけるようになると思いますが、とりあえず先行してスライドだけアップします。

今回は合計で30名弱の方にご参加いただいたそうです。今後も継続してこのような Webinar も増やしていければと思っています。

Teamstudio Notes/Domino アップグレードソリューション

View more presentations from Mitsuru Katoh.

Lotusphere 2010 のセッションより Part 2

今回は Lotusphere 2010 で行われた AD107 Enhance your existing applications with XPages の内容からエッセンスだけをご紹介します。残念ながら実際見聞きしたわけではなくセッション資料のみからの内容になります、その点はご容赦ください。

このセッションのテーマは、「既存のアプリケーションを XPages を使用して拡張する」というタイトルから分かるように、クライアントベースのアプリケーション、従来の Domino Web アプリケーションをどうやって XPages アプリケーションにするのか、それぞれのテクノロジーにの比較から始まり、各設計要素単位の考慮点をまとめています。

この作業に取り掛かる前に、まず現在のアプリケーションの設計分析が重要で、どのような動きをするのか、どのようなコードが書かれているかを事前に検証しなければなりません。

UI で使用されるコードの量フィールドの Enter/Exit イベントUI のクラス非表示式暗号がどれくらい使用されているかSub や Function の複雑さリッチテキストフィールドの使い方
次の課題はそれぞれのアーキテクチャーの違いを理解することで、それぞれの比較は以下の通りです。
IBM Lotus®

Notes®Client

ApplicationClassic Lotus

Domino® web

ApplicationXPages

applicationセッション恒久時間ベース時間ベースステートフルステートステートレス部分的に可プログラミングLotusScript

JavaScriptLotusScript

JavaScript

Java™JavaScript

Java™UIリッチテキストリッチテキスト
から

変換されたHTMLHTML /
Dojoリッチテキストサポートフル弱い部分的ページ更新

フルと部分更新
そして分散可フル更新のみフルと部分更新
(ひとつの領域のみ)暗号化/署名可不可検討中レイアウト



自由、

スクリーン内にビューのための2つフレームで表示するのが典型的自由自由

OneUI 推奨セクション



標準とアクセス
制御可標準のみ標準のみ(アク
セス制御は検討中)非表示式

段落単位段落単位

+ HTML DOM要素単位



そして、アプリケーションを XPages…

Teamstudio Webセミナー 「Notes/Dominoアップグレードソリューション」開催

大阪、名古屋、東京で先月行ったセミナーをWebinarで行います。既にお客様には Email ニュースでご連絡しておりますが、その他どなたでもご参加いただけます。
詳細は以下の通りです。

Webセミナー『Lotus Notes/Dominoアップグレードソリューション』

1月に大阪、名古屋、東京の三都市で開催された内容を、 Webセミナーにてお届けいたします。

アプリケーションのアップグレード作業でリソースの確保と予算取りの難しさから、ほとんどの企業ではアップグレードへの新しいアプローチを模索し始めています。
「アップグレード作業=突貫工事的なプロジェクト」という方程式はもう終焉を迎えているのです。
チームスタジオが提唱するアップグレードへの新しいアプローチは、今の開発サイクルに少しの追加で実現できる効率的で有効な方法です。アップグレードのためだけに余分なリソースやコストを追加する必要はまったくありません。
アップグレードの情報を集めておきたい、という方はもちろん、 Teamstudioのセミナーに出たことが無い、 Teamstudioの製品がどんなものなのか情報が欲しい、といったお客様もお気軽にご参加ください。

また、時間内でご質問にもお答えいたしますので、事前に質問があれば内容もお知らせください。

●開催日時
2010年2月17日(水)14:00~15:00

●お申込
下記より必要情報をご登録ください。別途受講のご案内メールをご登録先に送付いたします。

【お申し込み登録はこちら】
https://teamstudio.webex.com/teamstudio-jp/onstage/g.php?t=a&d=485606410

受講に必要なシステム環境
――――――――――――――――――――――――
・Windows 2000, XP, 2003 and Vista
・ブラウザ:Internet Explorer 6/7/8. Firefox 2/3, Chrome 1
・JavaScriptおよびCookieの有効化
・Internet Explorerの場合ActiveXを有効
・メモリ:512 MB以上 (Vistaの場合は2 GB以上)
・56Kbps以上のインターネット接続
――――――――――――――――――――――――
注)音声はストリーミン…

XPages でのカレンダーコントロール (Part 1)

Classic Notes アプリケーションやこれまでの Domino Web アプリでカレンダーを表示させ、日付を入力したり、選択したりすることは少なくなかったと思います。
ところが XPages の開発においてこのカレンダーのコントロールがないことがしばしば話題に上ったりしています。当然コアコントロールとして装備されていてもおかしくはないのですが・・・・

今回ご紹介するのは、カレンダーをカスタムコントロールとして作成する方法を Keith Strickland 氏の keithstric.comSnTT: XPages Blank Calendar Control (Part 1) からご紹介します。

オリジナルのタイトルにもある通り、今回はまずブランクのカレンダー、つまりカレンダーの表示だけについて見ていくことになります。

最初は、表を使ってカレンダーの外観を作成するわけですが、まずはカレンダーの曜日が表示される部分にあたるヘッダーのコードです。
<xp:table styleClass="calTable" id="calTable"> <thead styleClass="calTableHead"> <th>Sun</th> <th>Mon</th> <th>Tue</th> <th>Wed</th> <th>Thu</th> <th>Fri</th> <th>Sat</th> </thead> <xp:text escape="false" id="startRows"> <xp:this.value><![CDATA[#{javascript:"<tr>"}]]></xp:this.value> </xp:text>
カレンダーの始まりは日曜日になっていますが、その月の始まりの日が日曜日ではない場合ブランクのセルを表示させるといった処理をするため、まず何年何月…

Discussion Next Gen を試してみる

イメージ
OpenNTF プロジェクトの中には普段の開発で参考になるコードをたくさん見つけることができます。その中から今回は「Discussion Next Gen」を紹介したいと思います。

このプロジェクトの趣旨はプロジェクトの名前からも想像できるように IBM の提供するディスカッションテンプレートの先を行くといったところとでしょうか。プロジェクトでは標準にはない機能を追加しフィードバックを得てテストしていくことで、いづれ IBM の標準テンプレートへ追加されることになるでしょう。ある意味、機能の予行演習的なプロジェクトでもあります。

今回注目する機能はクライアントサイドと XPages での「今開いている文書はどこか」を見つけるための工夫をご紹介します。

現在のディスカッション標準テンプレートでは主文書と返答文書の結びつきが分からないといったことが発生しているのでこのプロジェクトでは下のスクリーンのように今現在自分がどのスレッドにいるかを一目でわかるように工夫されています。
もちろん主テーマに関していくつ返答があるのか数を事前に把握できるようなビューの作りにもなっています。

クライアントでの動作では文書を開くと Topic Navigator のフレームが左に表れ、自分が今開いている文書と親文書が色分けされて表示されます。主文書の他の返答文書のタイトルも同時に階層表示されますのでエンドユーザーにとっても非常に分かりやすいものとなっています。


今度は XPages 側の Web ブラウザからのアクセスです。文書を選択すると、文書の内容の下にスレッドが階層表示されます。
このようにクライアント側で実現できていることを XPages でも実現しています。
ここで見るようなスレッドの階層表示の方法「繰り返しコントロール」を使用していることは想像がつきますが返答文書の場合さらに段を下げるなどの工夫もされており、一度ソースをくまなく見てみる価値のある内容だと思います。
Web 2.0 のサイトでは良く見かけるこの典型的な表示方法を参考にするだけでも価値があるアプリケーションだと思います。

ちなみにこのアプリケーションも OneUI を使用していますが、標準テンプレートとは違い、「blue」のテーマしか使えません。ブラウザ対応は IE6、IE7 と 8、その他のブラウザと CSS が…