Domino Voltで作成した"ファイルダウンロードサービス"アプリケーションの紹介


*** この記事は、Introducing "File download services" application with Domino Volt を日本語に翻訳したものです。


皆さん、こんにちは。
先日は、テクてくLotus技術者夜会にご参加いただきありがとうございました。
テクてく Lotus 技術者夜会: 資料
から資料がダウンロードできますので、ご確認ください。

さて、今日はテクてくで紹介したDomino Voltアプリケーションのうち、「ファイルダウンロードサービス」について詳細を説明します。


1.概要

「ファイルダウンロードサービス」は、ファイルを添付した文書のURLを相手に送信して、そこからファイルをダウンロードしてもらうというものです。
サイズ制限があって、ファイルをメールに添付することが出来ない場合や、関係者以外には見られたくない場合に使います。
このアプリケーションは以下の機能を有しています。
  • ファイルを添付できる
  • 送信先のメールアドレスを設定できる
  • ファイルをダウンロードする際のパスワードを設定できる
  • ファイルのダウンロードの有効期限が設定できる
このアプリケーションをDomino Voltで実装してみました。


2.完成したアプリケーション

まず、どのようなアプリケーションになっているのか、画像を見ながら説明します。
(1)アプリケーションを起動すると、このような画面が表示されます。

起動時の画面
起動時の画面
「タイトル」には、どのようなファイルなのかの説明を入力します。
「送信ファイル」は、ダウンロードしてもらうファイルを添付します。
「送信先メールアドレス」は、ファイルを送信したい相手のメールアドレスを入力します。
「パスワード」はファイルをダウンロードする際のパスワードを入力します。入力した内容は見えないので、2回入力するようになっています。

(2)入力したら[保存]ボタンをクリックします。
入力したら[保存]をクリック
入力したら[保存]をクリック

正常に保存されると、以下の画面になります。
そうしたら、この画面を閉じます。

正常に保存された
正常に保存された

(3)送信先メールアドレスのメールファイルをチェックします。
メールが2通届いていれば正常動作です。
1通はURLが書かれたメールです。
もう1通はパスワードが書かれたメールです。
送信先のメールをチェックします
送信先のメールをチェックします
URLが書かれたメール
URLが書かれたメール
パスワードが書かれたメール
パスワードが書かれたメール

(4)リンクをクリックします。
リンクをクリックすると、添付ファイルの画面ではなく、パスワードを入力する画面になります。
こちらの画面もDomino Voltで作成してあります。
Domino Voltは同一のURLで別のページを開く機能があるので、それを利用しています。
メールアドレスとパスワードを入力して、[OK]をクリックします。

メールアドレスとパスワードの入力
メールアドレスとパスワードの入力

(5)ファイルのダウンロードを行います。
メールアドレスとパスワードが正しいと、ファイルのダウンロードページが表示されます。

ダウンロードページ
ダウンロードページ

※ファイル名に日本語文字が含まれていると、ダウンロード時にファイル名が文字化けしてしまいますので注意してください。

(6)メールアドレスやパスワードを間違えた場合
メールアドレスとパスワードの入力に間違えた場合、ダウンロードページは表示されず、エラーページが表示されます。このエラーページもDomino Voltで作成したページです。

エラーページ
エラーページ

(7)有効期限が過ぎた場合
また、有効期限が過ぎた場合は、メールアドレスとパスワードの入力画面が表示される前に、違うエラーページが表示されます。

有効期限が過ぎた場合のエラーページ
有効期限が過ぎた場合のエラーページ

いかがでしょうか?では、次に設計画面を見ながら、どのように実装していったのかを見ていきます。


3.設計の説明

それぞれの設計要素ごとに説明していきます。

(1)フォーム

「フォーム1」に対して、「アップロード用」「パスワード入力ページ」「エラーページ」「期限切れページ」の4つのページを作成しています。
こうすることで、同一のURLで表示させるページを切り替えることが出来るようになります。
フォーム - アップロード用
フォーム - アップロード用
メールアドレスとパスワードはファイルをダウンロードさせるのに必要なので入力必須としています。
「保存用パスワード」と「有効期限」は動作制御用として作成しています。

フォーム - パスワード入力ページ
フォーム - パスワード入力ページ
メールアドレスとパスワードを入力するだけなので、その2つのフィールドを配置しています。

フォーム - エラーページ
フォーム - エラーページ
フォーム - 有効期限切れのエラーページ
フォーム - 有効期限切れのエラーページ
エラーページと期限切れページは、表示されるメッセージが違うだけですが、制御を簡単にするために、あえて違うページにしています。

(2)アクセス

初期値である「管理者」「イニシエーター」「レコード所有者」を定義しています。
初期値から変更したのは「レコード所有者」も「すべての認証済みユーザー」にしているところです。これは誰にメールが送られるか分からないのと、現時点では、匿名アクセスができないために、このようにしてあります。

アクセス
アクセス

(3)ステージ

初期値では「開始」「発行済み」「終了」というステージが定義されていますが、「発行済み」ステージは削除しています。これは、一度ファイルを添付した文書は変更する必要がないためです。
「保存」アクションでは「メールの送信」アクティビティを2つ設定しています。これは、URLを送信するためのものとパスワードを送信するためのものと分けているためです。
保存アクションのプロパティ
保存アクションのプロパティ

「メール送信」アクティビティはこのように設定しています。
画面上で入力した「送信先メールアドレス」に対して、設定した本文でメールを送信します。
メール送信アクティビティ
メール送信アクティビティ
もう一つの方もほぼ同じです。「件名」と「メールのコンテンツ」が異なっているだけです。


(4)スタイル

綺麗なデザインにしたい場合は、ここでCSSファイルを追加すれば良いです。今回はそういった装飾は不要と判断したため、初期値から何の変更もしていません。


(5)イベント

フォームやページに対してイベントが発生したときの動作を設定します。
まず、「onShow」イベント(フォーム・・・URLを開いたとき)です。
ステージが「開始」(ST_Start)の場合は、「アップロード用のページ」を開くようにしています。
これは新規作成時のことを意味しています。新規作成なので、ファイルをアップロードしましょうということですね。
そうでない場合、有効期限の比較をしています。3日以上経過している場合は、有効期限切れのエラーページを表示します。3日以内であれば、パスワード入力ページを表示します。

イベント - onShow
イベント - onShow

次は「validateButtonPressed」イベントの設定です。これはステージアクション(「保存」ボタンのこと)がクリックされたときのイベントです。
今回は「保存」アクションしかないので、そのまま行いたいことを書けば良いのですが、念のためにボタンの種類を判定するようにしています。
行っている内容は、
  • 「保存用パスワード」に「パスワード」をセットする。
  • 「有効期限」に今日から3日後の日付をセットする。
です。
特殊パレットである「パスワード」は値が文書に保存されません。そこで、「保存用パスワード」として単一行エントリーを設定して、文書の保存時にそこに格納するようにしています。
「有効期限」は、文書保存時から3日後の日付を格納するようにしています。今回は3日後としていますが、設計次第では7日後とか1年後等にすることも可能でしょう。

イベント - validateButtonPressed
イベント - validateButtonPressed

最後に「パスワード入力ページ」に配置した[OK]ボタンがクリックされたときのイベントです。
メールアドレスとパスワードがそれぞれ文書に格納されているものと一致していたら、ファイルアップロードページを表示する。どちらかでも間違っている場合は、エラーページを表示するというようにしてあります。

イベント - OKボタンのonClick
イベント - OKボタンのonClick

※フォーム画面でもイベントの定義は行えますが、どこにどんなイベントを設定したのかがわかりにくくなります。そんなときは、この画面で設定を確認するとわかりやすいです。


(6)設定

ここではアプリケーションの言語や利用地域等の設定が行えます。それぞれの地域の設定をすれば良いでしょう。今回は利用しません。



4.備考

ページ遷移のためと文書保存時にパスワードと有効期限をセットするのにJavaScriptを記述していますが、それほど難しいものではないはずです。
Notes アプリケーションではこういったアプリケーションを作成するのは難しいでしょう。
また、XPagesの場合でも、ページ遷移の実現にはコードを何行も書く必要があります。それに比べたら遙かに簡単に実装できるのが分かってもらえれば嬉しいです。





このように、Domino Voltを使うと、プログラミングが苦手だという人でも時間をかけずに実装できます。
まだまだリリースされたばかりで制限事項もありますが、バージョンアップを重ねていくことでもっともっと便利に簡単にアプリケーションが作成できるようになると思います。
今から、Domino Voltアプリケーションを作成していって、腕を磨いておきましょう。


それでは今日はこの辺で・・・







Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
HCL Ambassadorの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ


コメント