【10月10日開催】IBM Notes/Domino Day 2018 Autumn Tokyo - IBM Championセッションで登壇します

「【B-2】開発者が語る 最新Dominoアプリケーション事例」

IBM Notes/Domino 10(日本語版) リリース日の発表があるか?。(IBM Notes/Domino 10英語版は明日10/10リリース!!)

「The World Premiere of Domino V10」と題して世界各国で開催される10/10のV10イベント。

IBMによりNotes/Dominoの新バージョン 「V10」の全貌が紹介されます。タイムゾーンの関係上、日本、東京での開催が世界に先駆けて行われ、V10の新機能をデモを交えて紹介、アップグレードに向けたご案内、最新テクノロジーを活用したDominoアプリケーション開発事例なども紹介されるようです。

そんなイベントにて「【B-2】開発者が語る 最新Dominoアプリケーション事例」と題してパートナー企業に所属している日本IBMチャンピオン達4名のよるセッションが行われ、弊社からも田付 和慶、加藤 満が登壇させて頂きます。

皆さまのご来場をお待ち申し上げております。

そして、イベントの後はDomino V10を歓迎するパーティーがNotes/Dominoを愛する有志の方々の力で開催されます。

当日はビンゴ大会で豪華賞品も用意されるかも?

http://domino.v10party.com/2018.nsf/pages/V10Party

皆さん、乗るしかない、このビッグウェーブ!(笑)  是非一緒に楽しみましょう♪

【弊社関連セッション】

【B-2】開発者が語る 最新Dominoアプリケーション事例

2018/10/10 17:00–17:45
スピーカー:IBM Champion
場所:野村コンファレンスプラザ日本橋 6F

IBMチャンピオン4名がそれぞれ協力し合い最新テクノロジーとデモをご紹介します。

 

【 開催概要について 】

【東京 2018年10月10日(水)】

開催場所:

COREDO室町1 5F 日本橋三井ホール
(東京都中央区日本橋室町2-2-1) [ 基調講演、Aトラックセッションはこちらで開催 ]

野村コンファレンスプラザ日本橋 6F

(東京都中央区日本橋室町2-4-3) [ IBMチャンピオンセッションを含むBトラックセッションはこちらで開催 ]

時間: 13:00-17:45 (受付開始12:30)

くわしくはこちら


panagendaとISW との パートナー契約締結のお知らせ

この度、MarvelClient や ApplicationInsights など IBM Notes/Domino 環境をさらに強化するソリューションを提供する panagenda 社と IBM Connections (オンプレ/Cloud)の機能を補完する Kudos Suite を提供する ISW 社と日本市場における戦略的パートナー契約を締結しました。

このパートナー契約を機にプロダクトセールス事業部を新たに設立し、パートナー製品の日本語化ローカライズに加え日本市場におけるライセンス販売と製品の1次技術サポート、及びケートリック社の自社製品販売の活動を本格的に開始します。

panagenda 社の概要と製品

panagenda 社はオーストリアに本社、アメリカ、ドイツ、オランダに拠点をもち、全世界のビジネスパートナーと協業体制をもちながら70ヶ国にソリューションを提供する IBM Collaboration Solutions の製品ビジネスパートナーでは最大規模の会社です。panagenda 社は以下の製品を中心に IBM とビジネス展開しています。

panagenda ApplicationInsights
panagenda MarvelClient

panagenda ApplicationInsights は IBM と S&S サブスクリプション契約を結ばれているお客様は無料でご使用いただけます(機能制限あり)。

更に皆さんにはビッグニュースです!!
70ヶ国に約1,100万のユーザーが使用する panagenda MarvelClient はこの度「MarvelClient Essentials」(MCE)として、IBM Notes/Domino 10 にバンダルされます。v10 以前のお客様もMCEをご自身でダウンロード、セットアップしていただくことでご使用いただけます。しかも、MarvelClient Essentials はすべて無料です。

ISW 社の概要と製品

ISW 社はオーストラリアの IBM のプレミアビジネスパートナーで IBM Connections 上で稼働するアドオンソリューション Kudos Suite を提供しています。Kudos Suite

Kudos Boards (Connections Cloud で日本語化対応済 Apps Catalogにてトライアル、購入可)
Kudos Badges
Kudos Buzzy
Kudos Ideas
Kudos Analytics
Kudos Awards
で、IBM Connections の利用率が上がらないとお悩みのお客様に、ユーザーが積極的に参画を自然にできるようなソリューションを提供しています。

このパートナー契約および製品に関するお問い合わせはこちらからお願いします。


2018/9/6,7 Notes/Domino Solution 2018 弊社セッションのご紹介

「XPagesからさらにその先へ、最新Dominoアプリケーション開発で企業のノーツアプリはこう生まれ変わる」

Notes/Domino 10 リリースを目前に控え、本年もNotes/Domino Solution イベントを開催されます。

TDK株式会社様の事例講演をジェネラルセッションに据え、ソリューションサイドとしてグループカレンダー、ポータル、安価で構築できる会議室ドアサイン、デベロッパーサイドとしてDBのHTML化ツール、REST ServiceによるDomino活用、最新開発手法によるDominoアプリケーションの再生、そしてNotes/Domino 10 最新情報。

これからのNotes/Dominoの活用方法を、そして仕事のあり方を考えて行く全企業様にとって、エンドユーザ様にも、情報システムご担当者様にも、そして経営者様にも実りある内容となっております。

皆さまのご来場をお待ち申し上げております。

イベント参加はこちらのリンクよりヘッダー付近の「9月6日 東京 お申込み」「9月7日 大阪 お申込み」から行ってください。

【弊社セッション】

XPagesからさらにその先へ、最新Dominoアプリケーション開発で企業のノーツアプリはこう生まれ変わる

9/6, 9/7 15:40 - 16:10

通年Notes/Dominoユーザーである企業様へのXPAGES開発を行っている弊社がXPAGES開発のノウハウをまとめた「XPagesマスターテンプレート」をご紹介します。またXPAGES開発だけではないNode.JSやNode-Red、Watson Workspaceを用いたNotes/Domino連携を可能にするDomino OAuth2 Providerをデモを交えてご紹介いたします。

ケートリック株式会社
代表取締役
田付 和慶 氏

【 開催概要について 】

【東京 2018年9月6日(木)】

場所 IBMイノベーション・センター(IIC)
東京都中央区日本橋箱崎町19-21 日本IBM本社 6階
時間 13:00-17:30 (12:30受付開始)
お申込みはこちら

【大阪 2018年9月7日(金)】

場所 D-SPOT-ZERO
大阪市中央区備後町2丁目4-10 第一住建備後町ビル8階
時間 13:00-17:30 (12:30受付開始)
お申込みはこちら

両日の詳細アジェンダ・タイムテーブルはこちら


IBM THINK 2018 レビュー:Dominoアプリケーション on iPad

IBM THINK 2018イベントが3月19~22日ラスベガスで開催されたので参加してきました。
去年まではC&TSブランド(コラボレーション&タレントソリューションズ事業部)はLotusphere, IBM Connectと名前を変え単独でイベントを行ってきましたが今年からIBMの全てのブランドのイベントであるIBM THINKにマージされる形で開催されました。

そんな中、Notes/Domino関連の新しい発表でひと際インパクトの大きかった「Dominoアプリケーション on iPad」に関して得た情報を記事にしてみたいと思います。

実際に現地でiPadで動くNotesアプリを体験することが出来ました。(こちらの動画をご覧ください)

自分が参加したセッションでは実に4つのセッションでDominoアプリケーション on iPadが紹介され、その中でも「Domino Top-Secret and Domino Full-Stack Development」ラボでは実際にIBM, HCLの開発者たちとiPadのDominoアプリケーションに対する疑問をその場で検証し、なにが出来て何が出来ないかを一緒に確認するという実験的なアプローチがおこなわれました。

実際にラボのスピーカーであるAndrew Davis(IBM→HCL)が「このアプリをクラッシュさせる次の質問は?」と参加者に質問を投げかけていたのは面白かったです。本当に開発者、参加者が共にこの新しい発表をエキサイティングに捉えていて、みんなで楽しんでいることが分かる時間でした。


そんなDomino Apps on iPadに関して発表された情報を箇条書きにします。

  • App Storeを通じてiPadにネイティブアプリケーションとしてインストールして使用
  • 1つのIDと1つのDomino Serverへの接続のみが可能
  • ID Vaultの設定が必須
  • オフラインでの利用が可能(オンラインになって複製をするということが可能)
  • iPadのアプリはノーツポート(NRPC、1352)で通信を行う
  • LotusScriptがそのまま動く
  • 複雑なフォームやロジックもそのまま動作可能
  • Notes/Dominoが持つ暗号化、セキュリティをそのままiPadで利用可能

やはり、一番の驚きはLotusscriptがそのまま動くというところだと思います。ノーツポートで動作するアプリということからも今回IBMはNotesクライアントのアプリケーションが動作するプラットフォームをiPad上へごっそり移植することに成功した、というイメージにとらえています。ただAndrewは別のセッションでiPadで動作させるために表示をそのままではなくスペースを設けるなど手を加える必要があった、と説明をしていましたし、実際iPhoneでのアプリの開発はiPadよりも難易度が上がるようです。

さらにラボなど個人的に得た情報では

  • フォームに記述されたJavaScriptは動作しない(Appleはアプリ上でJSを動作させることを許可していないことにも起因)
  • XPiNC(XPages in Notes Client)は動作しない
  • iOSのネイティブコントロールである日付ピッカーなどへの対応はまだ開発中
  • タッチジェスチャーにも対応したい
  • カメラやファイル連携などデバイスへのアクセスに対応したい
  • GPSやコンパス、ライトセンサーなどにアクセス可能になるようLotusScriptを拡張したい
  • Designer V10ではiOSであることを判断できる関数(?)をサポートしたい
  • iPadの次はiPhone, 次のチャレンジはAndroid
  • Android版の開発も進んでいるがWebGL(WEBASSEMBLY)というテクノロジー等を導入しなければならないかも
  • WebGL(WEBASSEMBLY)での実装の先にはブラウザで動作させるという展望もあり得る
  • フォーム上で右クリックでコンテキスト表示などにも対応(長押し)、(ただ現段階では操作性が良いとは言えなかった)
  • リッチテキストフィールドにテーブル新規作成はまだ出来ないけど、コピペはできた
  • リッチテキストの文字の装飾などは出来た
  • リッチテキストに絵文字も追加出来た
  • ダイアログ表示等、多言語へのサポートはまだ出来ていない点が散見された
  • ハイパーリンクの追加も出来た
  • 右クリック - コンテキストメニューからスペルチェックは動作しない
  • 全文検索も動く
  • ECLダイアログ表示や相互認証の警告なども再現

Domino Apps on iPadに触れてみた感想

ラボで開発者と使い倒しをしてみたり、実際に触れてみて感じた感想は、現時点でそれなりに良い出来に仕上がっていると感じました。動作が不安定になり再起動させることはありましたがクラッシュするような場面には今回遭遇しませんでした。

今回の発表が幾多ものノーツアプリを抱える企業にとって朗報になることは間違いないでしょう。これによってノーツアプリのWEB化が急速に萎んでしまうとは考えていませんし、ノーツのWEB化を推進してきた弊社としても今回の発表を歓迎しています。それはなによりエンドユーザーがノーツアプリの塩漬け状態から脱する機会となる、そんな選択肢が増えることはいいことですし、それによりNotes/Dominoを使い続けるユーザーが増えてくれることを期待するばかりです。

ただ、懸念を上げるとすれば、「ノーツの見た目は古い」と言う勢力がまた現れないか、ということです。弊社は新しいWEBテクノロジーを駆使してノーツアプリを刷新することを得意としてきました。そうすることで微力ながら「ノーツの見た目は古い」という誤解をもつ人たちが少しずつ減るよう努力してきました。

自分はアプリケーションのモダナイゼーションは必ずしもアプリケーションをWEB化することだとは考えていません。これからの時代、アプリケーションのExtensibility(拡張性)がよりビジネスを加速させるために必要不可欠になってきます。そのためにMicroserviceであったり、Dockerなどの仮想化技術がどんどんアプリケーションの疎結合を後押ししています。

Domino Apps on iPadを検討する場合にも、10年まえのアプリをただそのまま動かすのではなく、是非「見た目をよくする」、「アプリを拡張、成長させる」ということへの投資を惜しまないで頂きたいと思います。

IBM THINKフィードバックセッション 行います

「Domino Top-Secret and Domino Full-Stack Development」ラボへの参加者は日本人からは自分ひとりだったので恐らく現時点でここまで細かな内容を知っている日本人はあまりいないのではないかと思います(笑)、さらに夜に開発者と酒を飲み交わしながらDomino Apps on iPadの誕生秘話なんかも聞けたりして面白かったです。

よりDomino apps on iPadに関して興味がある場合は、2018年4月20日にIBM箱崎本社で開催されるテクてく Lotus 技術者夜会へ参加してみてください。私も含めてIBM THINKのフィードバックセッションをゆる~く行う予定となっています。 さらにDomino Full-Stack DevelopmentとしてDomino Node.jsに関する最新情報もお伝えする予定です。

申し込みはこちらから → https://www.ibm.com/developerworks/jp/offers/events/techtech/#com


Domino 10とアプリケーション開発

2月28日にIBMとHCLがホストするDomino 10に関する初のWebCast “Let’s Get Real: What’s in Domino v10.”が開催され、多くのIBM Notes/Domino Version 10 についての発表がありました。

以下のURLからリプレイが参照可能になりました。

http://bit.ly/2ti63ba

その中でも今回はアプリケーション開発にフォーカスしてみたいと思います。

JavaScript Node.js

大きなアナウンスの1つとしてnode.jsLoopBack(Node.JS API framework)のサポートの話がありました。Domino 10ではフルスタック開発環境としてnode.jsでの開発が可能となります。これはnode.jsの機能の一部分だけがDominoに取り込まれるというような限定的な話ではなくnode.jsがDominoバイナリーディレクトリに追加されるということらしく、NodeJsエンジニアがnpmから好きなオープンソースライブラリを使って開発するような通常と変わらない開発がDominoでも出来るようになります。

これにより多くのNodeJSエンジニアがDominoをプラットフォームにした開発へ乗り出す機会になることを期待できます。

またセッション中にはnode.jsとLoopBackのデモがありました。デモでは重たいと不評であるEclipseベースのDomino Designerではなく、自分も愛用するMS VSCodeがエディターとして使われていました。そして実際の中身はnode.jsからNSFへLoopBackを使いアクセスし一覧参照や新規で文書作成するというようなことをデモしていました。

ちなみにデモをしたのはIBMからHCLへ転籍したJason Gary氏でした。彼は1年前のIBM Connect 2017ハッカソン会場で我々にIBM Connections PINKがオープンソースを使い開発していることを熱く語ってくれた人で、彼がHCLでDomino、Connectionsの開発に引き続き携わっているということを知れたのは朗報でした。

自分がNode.JSでノーツ開発が出来ると聞いたときに真っ先に思い浮かんだ疑問は、「ACLはどのように扱うのか?」「非表示式にロールやグループで判断している箇所はどのように実装するのか?」というものでした。
こういった疑問を払拭する説明は残念ながら今回ありませんでしたが、デモで表示していたNode.JSファイルの中で興味深い設計を見つけました!


acls, validations という名のプロパティがある!!
うーん、しかし想像を膨らませてみてもこのプロパティの存在意義がなんなのかよく分かりません(笑) やはり理想はJavaのnotes.jarのように全てオブジェクト(json)でnode.jsが参照出来ることなのかなと思っていたのですがLoopBackのデモを見るともしかすると全然違うアプローチでの実装になるのかもしれません。

XPages、Java開発は?

今回のWebCastではXPages、Java開発に関しては多くを触れられませんでした。しかし自分はDominoでのXPages開発やJava開発が古いものとして取り残されるという話ではないと考えています。
XPagesの部分更新(Partial Update)機能だけを取り上げてもXPagesが他の開発プラットフォームと比較してRAD環境であることを証明するに足りると感じますし、なによりNotesフォームの表示、非表示式などとの親和性が高いのが魅力的です。

また、たまにXPagesで重たいアプリケーションになってしまっているケースを見ることがありますが、これはJSFのライフサイクルを理解せずに開発を行ってしまっていることが主な原因であることが多く、SSJSよりJava(w/ Managed Bean)での開発を積極的に取り入れることで必然的に無駄のない開発を行えるようになったりします。

OAuthベースの連携

これはスライドでサラッと振れられていただけでその中身までは説明はなかったですが、DominoログインがOAuthによって出来るようになるというような話であれば今後Dominoでのモバイルアプリ開発やクラウドアプリ開発で大いに活躍しそうです。この点は自分の完全な希望的観測です。

E-Search

Elastic Searchの説明が少しだけありました。今回、全文検索に関して「Full text auto-update on search and resilience」という機能強化が盛り込まれるという話がありましたが、Elastic Searchというものはおそらく現在のDomino全文検索とは別物で複数のDBにまたがった横断検索が出来る可能性を秘めているようです。興味がある方はElastic Searchで検索をしてみてください。

IBM THINK 2018

その他、様々な機能の説明がありましたが、自分が気になる機能の一部をブログにしてみました。興味がある方は是非ブログ最上部のリンクから動画をみてみてください。さらに深堀できるように3月20日から行われるIBM THINKでさらに情報収集をしてこようと思います。


2018 IBM Championに任命されました

ibm champion

2018年1月12日にIBMよりメールが届き、自分が2018 IBM Championに任命されたことを知りました。
今年でIBM Championとなるのはこれで4年連続となりました。IBMさん、皆様ありがとうございます。

なお、日本から選出されたIBM Champions for ICSは以下の6名となっております。

チームスタジオジャパン 株式会社 加藤 満 氏
https://notesdominoliaison.blogspot.jp/

株式会社 エフ 御代 政彦 氏
http://guylocke.blogspot.jp/

株式会社 ソルクシーズ 吉田 武司 氏
https://www.ibm.com/developerworks/community/blogs/YoshidaTakeshi

株式会社 ライブネス 小野 誠 氏
http://ameblo.jp/mak1005/

廣瀬化学薬品 株式会社 萩原 健補 氏
http://www.tanuchi.com/

株式会社 ケートリック 田付 和慶

おめでとうございます! (所属会社は任命時のものとなっています)

自分は2017年、IBM Championとして3年目の年を過ごしましたが、自分がIBMチャンピオンとして自分に課している使命、というと大げさですが力を入れているところに「日本発の情報を世界に発信すること」という思いがあります。
振り返ると、やはりサンフランシスコで行われたIBM Connect 2017ハッカソンにおいて日本チームが他の強豪チームを抑えて堂々の2位になれたことが一番うれしい出来事でした。

2017年はDomino 10の発表やDAC(Domino Applications on Cloud)の発表などがあり、2018年はまさにNotes/Dominoの節目の年になるのだと思っています。つい先日9.0.1 FP10がリリースされましたが「Docker support for IBM Domino」という機能が早速盛り込まれています。そしてDomino WEBアプリケーション開発の新たな開発言語としてnode.jsを扱えるようになるというウワサもちらほら。

Domino 2015 JAMで世界各国から寄せられたDominoへの新しいアイデアが製品に組み込まれるようになっていくのも、想像するだけでも本当に楽しみです。

4年目、引き続き”てくてくLotus”や”ノーツコンソーシアム”などをはじめコミュニティーへ貢献していきたいです。 自分はやはりいちNotes/Domino開発者としてコミュニティへ貢献することが一番しっくりくるので今後もICSでの開発者の後押しを出来るような活動を出来たらと思っています。

以上、4年目もどうぞよろしくお願い致します!


2017/11/15ノーツコンソーシアム オープンセミナー2017 弊社セッションのご紹介

「S21 XPages開発でここまで出来る!モダンアプリの開発事例一挙見せ」

ノーツコンソーシアム様主催による「ノーツコンソーシアムオープンセミナー2017」が、2017年11月15日(水)に東京 IBM箱崎本社にて開催されます。

弊社からは「S21 XPages開発でここまで出来る!モダンアプリの開発事例一挙見せ」と題して弊社がこれまで培ってきたXPAGES開発のノウハウを事例を交えてご紹介してまいります。

また当日は弊社セッション以外にXAPGESDAYから【H13 『XPages DAY』XPages のさらなる効果的な活用方法について】 というセッションを開催しています。

こちらではアイディアを出し合いながら議論をする Ideathon (アイディアソン)を行います。目からうろこな IBM Notes/Domino の活用方法に出会えるかもしれません。こちらも是非ご参加ください。

ご興味があるかたは是非ご参加ください。

イベント参加はこちらのリンク下の「お申込みリンク」から行ってください。

【弊社セッション】

S21 XPages開発でここまで出来る!モダンアプリの開発事例一挙見せ

11/15 10:00 - 10:45

本当は見せたくないかも、XPages開発に特化したケートリックが高度な開発ノウハウを
一挙に公開します。スライド公開無しで挑む当日限りの一本勝負

ケートリック株式会社
代表取締役
田付 和慶 氏

【 開催概要について 】

日時2017年11月15日(水)10:00 – 17:00

場所日本アイ・ビー・エム株式会社 本社事業所

【詳細・お申込みについて】

イベントページ https://www.notescons.gr.jp/home.nsf/event.xsp?action=openDocument&documentId=6BE341E1475DE2594925816E002FF2FC


Notes/Domino Day 2017 最新情報

2017年9月19日(火)、御茶ノ水ソラシティカンファレンスセンターでIBMによるイベント「Notes/Domino Day 2017」が開催されましたので参加してきました。

IBM主催のイベントでNotes/Dominoの名前が入るのは何時ぶりなんでしょう? かの米国開催のイベント「Lotusphere」の名前を聞くような、そのタイトルだけでも心にぐっと来てしまう、今回はIBMの心意気を感じて仕方ありませんでした。日本IBMさん、グッジョブです!

そして、その基調講演ではプロダクト&デザイン, IBM Collaboration SolutionsのバイスプレジデントであるEd Brill氏が日本まで講演にやってきてくれました。


今回はこのイベントにふさわしい新たな新サービスの発表がIBMからありましたので最新情報と題してブログにしてみたいと思います。

IBM Domino Application on Cloud(DAC)

個人的には今回のイベントでの大きな発表の1つは「IBM Domino Application on Cloud」だと考えています。

IBM Domino Applications on Cloud
金色のDominoアイコン?!

「IBM Domino Application on Cloud(以下、DAC)」と言う名の通り、この新たなサービスではユーザーのNotesカスタムアプリ(NSF)をIBMが用意するクラウド環境Dominoで稼働させることができるようになります。

2017年10月にサービス開始なのでもうすぐですね!

実はIBMは3年ほど前からIBM Domino Applicationをクラウドで稼働できる環境を用意するという発表をしており、それに対して「XPages on Bluemix」こそがIBMが用意した回答であると自分は勝手に考えていたのですが嬉しい意味で裏切られました。

今回の発表で、ユーザーはより簡単に既存ノーツアプリをクラウドで稼働させることが出来るようになるはずです。そして煩わしいオンプレミスDominoの保守・運用、それにかかる経費の削減に寄与する強力な選択肢の一つになるはずだと期待できます。(XPages on Bluemixは運用都合上オンプレミスDominoからの脱却にはならないですからね)

「IBM Domino Application on Cloud」に関して発表された内容で覚えているものを箇条書きにしてみました。

  • 自社のCertIDを使って環境を構築
  • 既存のノーツアプリやカスタムテンプレートを用いたノーツアプリを作成することが可能
  • ノーツクライアント、ICAA,WEBからの利用が可能
  • 保存データの暗号化
  • メール配信やエージェント実行が可能
  • オンプレミス⇔クラウド間でDominoアプリを複製が可能
  • サーバーはユーザー側で触れるようにはならない(アプリはユーザー側で管理者権限を持たせて運用)
  • DominoサーバーアップグレードはIBMにより実施
  • データベースサイズは25GBまで
  • Dominoクラスタリグはオプション
  • DAOS有効化はオプション
  • Domino Access Serviceはオプション

技術的な話をすると、このDACですがDockerの技術を使って構築されているとのことです。(コンテナーにデプロイされたDominoサーバーがアプリケーションをホスト) このDominoのDocker機能はDomino as a Service(DaaS) として今後もしかするとユーザー側で構築が可能になるかもしれないですね。
Domino As A Service

またデータセンターは2017年10月の初期段階からIBMの東京データセンターで稼働するというのも見逃せません。
Tier 1 ロケーションとしてまず、US(アメリカ)、AP(日本)、EU(ドイツ・オランダ)が提供され、Tier 2ロケーションとしてオーストラリア、インド、中国と順次拡大していくようです。

DACのライセンスについて

DACのライセンス形態について発表があった内容ですが正直これらの内容は今後も色々と変更や追加が起きそうな予感。

  • DB毎月額課金
  • 1年以上の契約
  • BYOL(Bring Your Own License)モデル (Enterprise ServerやUtility ServerなどSS&S ライセンスが別途必要)
  • 最低10DBより利用が可能

まとめ

今回突如発表されたIBM Domino Application on Cloud」ですが、既にクラウドで利用可能なメール、カレンダーソリューションのVerseに加わりDominoのクラウドを加速させるための環境が整いつつあると感じさせます。 またXPages on Bluemixという選択肢もDACと組み合わせることで外部システム連携などアプリケーションの進化への可能性を広げることになるのではないかと期待してしまいます。

Notes/Dominoの競合製品で完全クラウドソリューションを売りにし、「まだオンプレミスでしか動かないNotes/Dominoアプリ」と言わせる機会を与えてしまっているとしたら、今後対等以上に渡り合っていけるようになったのではないかと思います。結果、XPages開発に対しても今よりスポットライトが当たることになると自分としてはさらにうれしいです(笑)


カスタムコントロール プロパティ定義にNotesDocumentを渡す方法

XPages開発でカスタムコントロールによる設計の分離を行う際、StringやBoolean意外にもNotesDocumentなどのデータソースをプロパティ定義する方法をご紹介します。

カスタムコント,ロールにデータソースを渡したい場面

そもそも、XPage本体でデータソースを定義していればNotesXSPDocument(デフォルトでは"document1"としてアクセス可)はカスタムコントロール側でも同様の方法でアクセスが可能になっています。
document1.getDocument() としてやればNotesDocumentへもアクセスが可能です。

ではNotesDocumentをカスタムコントロールに渡す必要があるシチュエーションというのはどのような場面でしょうか?

一番想定されるケースとして、ビューやRepeatコントロール内で各文書データを出力(もしくは編集)させるカスタムコントロールの作成です。

こちらにデモ用のサンプルを作ってみました。

サンプルURL: http://minato.ktrick.com/demo.nsf/ccWithNdocProperty.xsp

サンプルではテーブル内で文書がある分だけRepeatコントロールで行出力します。各文書の詳細情報として各行の下の緑のエリアがカスタムコントロールで実装している箇所です。

カスタムコントロールでデータソースをプロパティ定義

以下のようにしてカスタムコントロールでデータソースをプロパティ定義してやります。

  1. カスタムコントロールを作成
  2. 「Property Definition(プロパティ定義)」から「New Property(新しいプロパティ)」をクリック
  3. 「Name(名前)」に任意の名前をつけます
  4. 「Type(タイプ)」から右のアイコンをクリック
  5. 「Data Source(データソース)」から「Domino Document(Domino文書)」を選択
  6. 「Editor(エディター)」から右のアイコンをクリックし「Deta」⇒「Data Source Picker」を選択します。

以上でカスタムコントロールでデータソース定義は完了です。 ここで重要になるのは「Editor(エディター)」の部分で「Data Source Picker」を選択してやることです。

サンプルXPAGEの解説

サンプルXPageのコードからカスタムコントロールで定義したデータソースの呼び出し方、使い方をみていきます。

まずは呼び出し元になるXPageのソースコードです。

29行目でカスタムコントロールを呼び出しています。先ほど作ったndocのプロパティにRepeatコントロールでループさせている各行の文書を設定しています。

以下はカスタムコントロールのソースコードです。

4行目、6行目のようにcompositeData.ndoc.city と記述してデータソースバインディングしてやることもできますし、9行目のようにcompositeData.ndoc.getItemValueString("email") とSSJSで記述する方法も可能です。 処理速度としてはcompositeData.ndoc.xxx のデータバインディングの方が早いはずです。

サンプルXPAGEの解説

特に高度なテクニックを使っているわけではなくXPagesが持つ標準の機能の説明になりますが、意外とこのような利用方法ができることを書かれていたブログがなかったため書いてみました。 サンプルのようなシチュエーションで今回の方法を知らなければ、文書UNIDなどを渡してカスタムコントロール側で再度NotesDocumentを取得しなおす、といった回りくどい実装をしている場合もあるかもしれません。サーバー負荷、処理速度を考えてもこのように実装したほうがスマートなケースになりますので覚えておいてもらえればと思います。


カスタムコントロール内でDocumentデータソースのフィールドを動的に定義する方法

カスタムコントロールをより汎用的なパーツ化したい

共通パーツ化の目的でカスタムコントロールを作成することが多いと思います。

今回のブログは、カスタムコントロール内で文書フィールドをハードコードせず、カスタムコントロールを呼び出し側のXPAGEがプロパティ定義でフィールド指定してやる方法です。

この方法を使うと、カスタムコントロール内で複雑なロジックを持ったフィールド、例えば

  • 社内Emailアドレスのみを許可する入力チェックを行うフィールドの汎用化
  • リピートコントロール内で動的にフィールドを定義してスコープ変数に格納する

といった方法が可能になります。

自分の場合はリッチテキストフィールドに対して常に素のJSONデータのみを格納するように振る舞うフィールド定義をしたいケースがあり実装した経緯がありました。その際、作成したカスタムコントロールは呼び出し側が指定したフィールド名に対して動的にデータバインドを行うようになるのが今回の主旨です、その名もダイナミック データバインディング!(勝手に呼んでますw)

毎度のごとく、トピックがニッチなので(笑)百聞は一見に如かず、カスタムコントロールのコードを見てみます。

まず、カスタムコントロールの前準備として今回の例では「fieldName (String値)」というプロパティ定義をしています。
dynamic_data_binding01

以下がサンプルコードです。

重要な点はハイライトされている5行目に尽きます。
valueの値に対して、"${javascript:'#{document1.' + compositeData.fieldName + '}';}" と複雑な記述になっています。
まず着目してほしいのが、'#{document1.' + compositeData.fieldName + '}'の部分は文字列生成をしているということです。
もし直接データバインドをした場合、value="#{document1.Email}" となるところをあえてSSJS経由で渡してやることでこのように動的に記述することを可能にしています。

最後にこちらが呼び出し元のXPageです。

鋭い人は「document1」がハードコードでは?と気づいたと思います。
前述のとおり'#{document1.' + compositeData.fieldName + '}'の部分は文字列を生成しているだけなのでfieldNameプロパティに「document1.Email」を指定し、'#{' + compositeData.fieldName + '}' としても動作します。

種明かしをするとなんだ~、と以外と簡単なのですが場合によってとても重宝する記述方法なので覚えておいてもらえればと思います。

参考

http://stackoverflow.com/questions/9913331/dynamic-data-binding