投稿

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

XPagesのアクセスログを作ってみよう(応用編)

イメージ
累積アクセス数が28万を超えました。たくさんの方に見ていただいていて、感謝しています。

でも・・・コメントが少ないんですよね。あまりにも一方通行のような気がしてなりません。
コメントするのが恥ずかしいとかいうのであれば、メールでも構いませんので、意見をください。

閑話休題。

さて、そう言いつつも今日も話題を提供します。その前に恒例のクリックをお願いします。



今回は、前回の続きというか応用です。
前回は、1つのXPageにアクセスログを記録するためのコードを埋め込むだけでした。
アクセスログを記録するためのノーツDBは、別に作ってあって共有できるような作りなのに、これでは寂しいです。


ということで、アクセスログを記録するコードを部品化することにチャレンジしてみましょう。

まずは、スクリプトライブラリにJavaScriptライブラリを作成します。
データベースナビゲータビューで、「コード」「スクリプトライブラリ」を開いて、[新規スクリプトライブラリ]ボタンをクリックします(下図参照)。

新規スクリプトライブラリのダイアログが表示されるので、名前とタイプに適切な値を入力して、[OK]をクリックします。
ここでは「名前」は、 "LibAccessLog"とします。タイプは、"サーバー JavaScript"にします。

すると、JavaScriptのエディタ画面になります。
あまりにも貧相なので、どう記述して良いのか悩んでしまいますが・・・
次のように記述します。
function openDocumentLog( document1:NotesXSPDocument ) { var logdb:NotesDatabase = session.getDatabase( @Subset(@DbName(),1), "XPages/acsLog.nsf", false ); if ( logdb == null ) { } else { var accessDateTime = session.createDateTime( @Now() ); var accessDoc = database.getDocumentByID( document1.getNo…

XPagesのアクセスログを作ってみよう

イメージ
こんにちは。
皆さん、今日もヘルプを読んでますか!分からないことがあったら、ヘルプをまず読みましょう!
隅から隅まで読むときっと次へのステップの手がかりが見つかります!



それでも、ヘルプなんか読みたくないんだよ!という方は、このボタンを押してから、記事を読みましょう。より理解が深まることでしょう。




さて、今日はXPagesでのアクセスログを作ってみましょう。
通常のノーツアプリケーションの場合であれば、フォームのQureyopenイベントにアクセスログを記録するコードを書けばよいでしょう。Webアプリケーションの場合であれば、フォームのWebQueryOpenで実行するエージェントにコードを追記すればよいでしょう。
では、XPages の場合はどうすれば良いのか?というところを検証します。

今回は、そんなに深くまで検証していないので、フォームが設定されたXPageをターゲットとします。
他のパターン(カスタムコントロールや1つのXPage内に複数のフォームが設定されている場合等)については、別の機会に検証しましょう。

まず、アクセスログは、別のDBに記録するものとします。同一DB内でも良いのですが、DBの文書が増えてしまうのと、他のDBからも利用できるようにするためということが理由です。汎用性を持たせると言うことですね。

データベースパス名は、「XPages/acsLog.nsf」とします。(XPagesというフォルダの下に作成します)。
フォーム名は何でも良いですが、ここでは「AccessLog」としておきます。
フィールドは以下の6つを作成します。
No.項目名フィールド名1アクセスDBパスAccessDatabase2アクセスDBタイトルAccessDatabaseTitle3アクセス日時AccessDateTime4アクセスユーザーAccessUser5アクセス文書UNIDAccessDocUNID6アクセス文書IDAccessDocID

次に、このアクセスログに記録するXPageですが、XPagesで添付ファイルの処理をする(アップロード) で作成したDBを使います。

このDBの文書を開いたときに、ログを記録するようにします。ということで使用するXPageは、「MainTopic」です。

このXPageの設計画面の何もないところをクリックして、イベントビュ…

繰り返しコントロールを装飾してみよう

イメージ
こんにちは。予告通り、3日間更新をお休みさせて頂きました。
ということで、今日は更新します(でないと、3日間の休みではなくなってしまいますしね)。

その前に、恒例のボタンクリックをお願いします。どうも、記事を更新したときだけクリックして頂いているようなのですが、読むたびにクリックして頂いて構いませんので、ご協力をお願いします!




さて、では今日の話題へと・・・
前回は、繰り返しコントロールを使ってビューを表現してみました。
ですが、最後に書いたように、スタイルの設定をしていないので、とてもみすぼらしい形になってしまいました。
皆さん、各自で色々試されたのではないかと思いますが、筆者も筆者流にカスタマイズしてみようかと思います。

今回の記事を読めば、ノーツプログラマーな方もXPagesアプリケーションを「それなりに」(笑)、デザインできるようになるはずです。


主にやることは次の4つでしょう。
ビューのページャを作成するビューの列タイトルを追加するビューの書式を整えるその他細かい調整を行う  では、順に見ていきましょう。
1.ビューのページャとは、1画面に文書が表示しきれないとき(デフォルトは1画面30文書)に、次のページに移動するようにするというものです。

コントロールビューの「コアコントロール」の中に「ページャ」があるので、それを繰り返しコントロールの上にドラッグ&ドロップします。

貼り付けた「ページャ」を繰り返しコントロールと連携する必要があるので、プロパティビューの「添付先」という項目をクリックして、繰り返しコントロールを選択します。

同じ画面内にある「ページャスタイル」はページャの見せ方をどのようにしますか?というものなので、後で自由に設定してください。ここでは、「サンプル1」のままとしておきます。

ページャの設定はこれだけです。簡単ですね。

次は、2.ビューの列タイトルを追加しましょう。
繰り返しコントロールは表を使って列項目を表現するようにしました。
ですので、列も同じように表を使って表現します。
「表」コントロールを「ページャ」と「繰り返しコントロール」の間にドラッグ&ドロップします。
表の大きさは「行:1、列:3」とします。

表の幅は100%にしておきましょう(上の画面で設定できるのですが、いつも忘れてしまいます・・・)

列タイトルを表示させるので、「…

繰り返しコントロールを使ってみよう

イメージ
こんにちは。8月ももう下旬です。早いですね。なぜか今年は8月があっという間に過ぎていっています。
まぁ、原因は分かっているのですが・・・え?何かって?内緒です。

ちなみに、「内緒」とは元々は、「内証」だったらしいですね。音が似ていることにより変化したのでしょう。
そう考えると、今風の言葉も、数十~数百年後には違和感なく使われることになるかもしれませんね。


閑話休題。

今週も乗り切るために、ボタンをクリックしてから、心して読むようにしましょう。




さて、今日はXPagesでのビューの表現方法について、別の方法を学びます。

方法は・・・「繰り返し」コントロールというものを使います。
いずれにしても、ノーツアプリケーションの場合に、フォームとビューは必要なので、まずはそれらを準備します。
と言っても、毎回毎回作るのは面倒なので、前回の記事で 作成したものをそのまま流用します。

XPage は、「adv」という名前で作成します。
まずは、XPage にデータソースを設定するので、プロパティビューの「データ」タブを開きます。
[追加]というボタンがあるので、そこをクリックします。すると、文書かビューの選択肢が表示されるので、「Domino ビュー」を選択します。

すると、画面の右側にDomino ビューの設定項目が表示されるので、ビューに「($All)」を設定します。

次に、コントロールビューにある「コンテナコントロール」から「繰り返し」コントロールをドラッグ&ドロップします。

プロパティビューを開いて、繰り返しコントロールの設定を行います。
「使用するバインドデータ」の項目で、「JavaScript」を選択して、値にview1と入力します。
また、オプションのコレクション名に「rowData」と入力します。この名称は任意のもので結構です。

次に、列の値を表示するための表を設定します。
表コントロールを繰り返しコントロールの中にドラッグ&ドロップします。その際、 行数:1、列数:3とします。

また、表の幅は100パーセントにしておいてください。

今度は、ビューの列の値をセットします。
計算結果フィールドコントロールを表の一番左のセルの中にドラッグ&ドロップします。
プロパティビューの値は、JavaScriptにして、次のように入力してください。
rowData.getColum…

XPagesで添付ファイルの処理をする(ダウンロード)

イメージ
おはようございます。今日は金曜日です。お盆休みもこの土日まで。という方も多いのではないでしょうか?来週からまた通常勤務と考えると、ちょっとだけへこみますね。

そんなときは、このボタンをクリックして気を紛らわせましょう。





さて、昨日はXPagesで添付ファイルのアップロードについて検証を行いました。
ということで、今日はダウンロードについてです。

昨日のブログで、複数の添付ファイルをファイルアップロードするには、同時にファイルのダウンロードコントロールも配置する必要があることは書きました。
また、そのオプションについても簡単ですが触れました。

この状態で、すでに既存の文書に添付されているファイルのダウンロードはできる状態なんですね。
でも、これだけじゃつまらないですね。

従来のWebアプリケーションであったように、ビュー上から直接添付ファイルを開く(もしくはダウンロードする)ようにはどうしたら良いのかを検証してみましょう。


XPagesでビューを表現するには、
1.ビューを作成する 2.ビューを表示するためのXPageを作成する
もう、この手順は皆さん覚えていただけたことでしょう。
では、詳しく見ていきましょう。
1.ビューを作成する
ビューの名称は何でも良いです。筆者はこういうときは、「($All)」とします。
ビューの列は「作成日」「Subject」「添付ファイル名(@AttachmentNames)」としておきます。

次に、
2.ビューを表示するためのXPageを作成する
名称は、「home」とします。
このXPageに($All)ビューをバインドしたビューコントロールを配置します。

下図は、そのXPageをWebブラウザでプリビューした画面です。

文書は、前回作成したXPageを使って作成したものです。
ファイルを3つ添付しています。そのため、添付ファイル名が3つ表示されています。
が・・・リンクになっていませんね。

確かに、リンクの設定をしていませんから。
では、XPageのビューコントロールのプロパティで、「列の値をリンクとして表示する」にチェックをつければ良いのでしょうか?


答えは、ノーです。
それでは、文書を開いてしまいます。今、ここでやりたいのは、直接添付ファイルにアクセスするということですので、それではダメですね。

筆者が今のところ、解決策(回避策?…

XPagesで添付ファイルの処理をする(アップロード)

イメージ
こんにちは。今日も暑いですね。
筆者は今日もお仕事です。夏休みはいつにしようかな。なんて考えていますが、そもそも取れるのかどうかが分かりません。

そんな筆者に応援のクリックをお願いします。




さて、今日はXPagesでの添付ファイルの取り扱い方について検証しましょう。
一度、サンプルのアプリケーションを作っていたのですが、今になって、「ん?どうやって制御しているんだっけ?」となってしまったので、筆者的には復習です。


まずは、普通に?フォームを作成します。今回は検証なので、必要最低限のフィールドということで、
フィールド名種類SubjectテキストBodyリッチテキスト とします。

フォーム名は、MainTopic としておきましょう。

次に、MainTopicという名前でXPageを作成します。
プロパティビューの「データ」タブで、Domino文書のデータソースを作成します。フォームはもちろん、作ほど作成したMainTopicを選択します。


今度は、コントロールビューの「コアコントロール」タブから、編集ボックスを選択して編集領域にドラッグ&ドロップします。
画面に表示したときに分かりやすいように、表やラベルも一緒に作成しておきましょう。

次に添付ファイルをアップロードするためのコントロールを追加します。
編集ボックスと同じ「コアコントロール」タブの中に、『ファイルのアップロード』があるので、それをドラッグ&ドロップします。

追加されたら、プロパティビューの「データ」タブを表示します。
このアップロードコントロールをMainTopicフォームのBodyフィールドにバインドするための設定を行います。

このままでも良いのですが、それだと文書を保存したときにファイルが添付されることになり、複数のファイルを添付するのが面倒です(保存 -> 開く -> 編集 -> 添付 -> 保存・・・の繰り返し)。

だからといって、ファイルのアップロードコントロールを追加するのは格好良くありません。
では、どうすれば良いのでしょうか?


・・・

まずは、添付されたファイルを表示するためのコントロールを追加します。
『ファイルのダウンロード』コントロールをドラッグ&ドロップします。

オプションがあるので、変更しておきます。好きなようにして良いのですが、筆者のお薦めは
・添付…