投稿

8月, 2016の投稿を表示しています

XPages研究会のハンズオンをまとめましたよ(2)

イメージ
はい、こんにちは。

前回(XPages研究会のハンズオンをまとめましたよ(1))の続きです。

前回は、Node-REDアプリ経由でTwitterのつぶやきデータをIBM Bluemix上のXPages NoSQL Databaseに格納するところまで実装しました。


次は、XPages NoSQL Databaseの内容をXPagesアプリで表示してみましょう。ということでXPagesアプリを作成します。

5.xspアプリを作成するBluemixのダッシュボードに戻り、「Cloud Foundryアプリ」にある[アプリの作成]をクリックする 「どのような種類のアプリを作成しますか?」を聞かれるので、[Web]をクリックする 「どのように開始しますか?」を聞かれるので、[XPages]をクリックする 画面下にXPagesの説明が表示されるので読んだら、[続行]をクリックする 「新規アプリはどのような名前にしますか?」と聞かれるので、[アプリ名]にアプリケーションの名前を入力する(*1)[完了]をクリックする アプリケーションのステージングが完了するのを待つ「アプリは実行中です。http://~」の表示になったら、ダッシュボードに戻る実行中になっているxspアプリをクリックする アプリケーションの画面になるので、[サービスまたはAPIのバインド]をクリックする 「アプリケーションへのサービスの追加」画面が表示されるので、作成したXPages NoSQL Databaseを選択して[追加]をクリックする 再ステージが必要という画面が表示されるので[再ステージ]をクリックする 再ステージが完了すると、アプリケーションの画面にXPages NoSQL Databaseが追加されているのが確認できる
*1 任意で良いが、Bluemix全体でユニークである必要があるので、自分のものと分かり易いような名前をつけること


これでXPages on Bluemixとしての準備はできましたが、まだXPagesアプリをきちんと作成していません。
ここでようやくIBM Domino Designerを使ってXPagesアプリを作成します。

6.XPagesアプリを作成する前回の記事の「2.XPages NoSQL Databaseサービスを作成」でダウンロードしたBluemix用のNotes User IDを使っ…

XPages研究会のハンズオンをまとめましたよ(1)

イメージ
みなさん、こんにちは。
8月も終わりに差し掛かっているというのに暑い日が続いています。

さて、私はノーツコンソーシアムという団体に参加しています。
さらに、その中のXPages研究会(月一開催、コンソーシアム会員のみ参加可能)に参加しています。
今年のテーマは、「Bluemixとの連携(twillio, node-red関連)をやってみたい」(あわよくば、業務で使えるアプリを開発したい)です。

4-6月はIBM BluemixやNode-REDについての学習や、IBM BluemixにXPageアプリをデプロイする方法について学習しました。
7-8月は、実際にアプリケーションを作ってみようということで、ソルクシーズ 吉田さんの記事(こちら)をもとにして、全部をIBM Bluemix上で実現してみよう!ということをやってみました。

吉田さんの記事ではNode-REDもDominoもオンプレミス環境にあるのですが、それを全部IBM Bluemix上に移植してみようということです。


実は、私の説明が悪かったため、参加者の皆さん、「何をどうすればいいのよ???」という状態だったようで、反省を兼ねて、実装方法をまとめることにしました。


今回やろうとしていることを図に示すとこんな感じかな?
TwitterのつぶやきデータをNode-REDを経由して、XPages NoSQL Databaseに格納します。
そのXPages NoSQL Databaseに格納された文書をXPages on BluemixのアプリでWebブラウザから参照する。
といった感じです。


では、実際の方法を見ていきましょう。
※実際のXPages研究会での実装手順に基づいているため、順番は最適化されていませんのでご了承ください。

0.前提条件IBM Bluemixアカウントを所持しているIBM Domino Designer 9.0.1 FP6をインストール済みXPages Extension Library Release 15以上がインストール済みIBM Domino DesignerのプリファレンスでIBM Bluemixの設定が完了している
IBM Bluemix上にアプリを作成するので、アカウントは作っておくことが必要になります。
また、XPagesアプリケーションを作成するので、IBM D…

XPagesでISO8601形式の日時表記をする際は気を付けましょう

イメージ
皆さん、こんにちは。暑い日が続きますが、XPages開発はしてますか?

私は・・・しばらくしてませんでした。
そのせいなのか?開発の勘を取り戻すのにちょっと苦労しました(え?そんなにできやしない癖に何を偉そうにって?スミマセン・・・)


さて、閑話休題。
今日もXPagesでの日付の話題です。
XPagesはWebアプリケーションなので、日付の扱いがNotesクライアントと異なるために、色々と難しい問題を抱えています。
っていうか、Webの世界での日付の扱いが雑すぎるんじゃないか?って思ってますw

今回はISO8601形式についてです。
色々と検索してみると、
基本形式と拡張形式の2種類があって、
それぞれ
基本形式: yyyymmddThhMMss
拡張形式: yyyy-mm-ddThh:MM:ssZ
という表示の仕方(UTC形式の場合)をするという認識でした。

そして、日時をこの形式に変換するのには、
DateクラスのtoISOString()メソッドを使うものだと思ってました。えぇ、今朝までは・・・

なので、XPagesでもそうだろうと思い、プログラムを実装して動かしてみたら、
動かない!っていうか、正しく変換されない!
どういうことよ!!!

と思って、SSJSとCSJSで同じ関数を実行して違いを確認してみました。

XPageの画面に、ボタンコントロールを配置して、それぞれSSJSとCSJSを記述しました。
また、「ssjsDate1」「csjsDate1」という計算結果コントロールを埋め込んでます。


SSJSのソース
var sdate = "2016/08/10"; var stime = "10:00:00"; var sdt1  = new Date( sdate + " " + stime ).toISOString(); getComponent( "ssjsDate1" ).setValue( sdt1 );

CSJSのソース
var sdate = "2016/08/10"; var stime = "10:00:00"; var sdt1  = new Date( sdate + " " + stime ).…