Notes DB連携を試そう3

皆さん、こんにちは。


今日も前回の続きでDomino VoltアプリケーションのNotes DB連携の3回目です。

今回は「表示カテゴリーのリスト」を試してみます。
前回までが「表示エントリー」(ビューエントリー:NotesViewEntry)についてでしたが、「表示カテゴリ」(ビューのカテゴリ)とのことなので、使用するビューはカテゴライズされたものになるでしょう。

そこで連携するNotes DBを少し改造しました。
改造したサンプルアプリケーション
改造したサンプルアプリケーション

「商品グループ」というフィールドを追加して、「商品グループ」と「商品カテゴリ」をカテゴライズした「グループ別」というビューを追加しました。
また、それに伴い文書データもいくつか追加/編集しています。


こちらのアプリケーションを使って「表示カテゴリーのリスト」の実装をしていきましょう。
フォームは以下のように作成しました。
サンプルアプリケーション
サンプルアプリケーション

表が2つと「グループ名」の入力フィールドと[グループで絞り込んだ場合のカテゴリ]というボタンです。

まずは、最初の表に対して実装します。
表のプロパティからonShowイベントを開き、「サービスの呼び出し」にチェックをつけて「サービス構成の追加/編集」のリンクをクリックします。

「1.サービスの選択」になるので、下図のように設定します。
サービスの選択(表示カテゴリーのリスト)
サービスの選択(表示カテゴリーのリスト)

Notes DBとビューを選択するだけなので簡単ですが、フラットなビューを選択するとエラーメッセージが表示されるのもポイントです!
カテゴライズされたビューでないとエラーになる
カテゴライズされたビューでないとエラーになる

正しく設定できたら[次へ]を2回クリックして「出力タブ」に移動します。
※入力タブでは何も設定しません。

出力タブではフォーム内の表の項目に関連付けます。
関連付ける内容は下図を参考にしてください。
出力タブの設定(表示カテゴリーのリスト)
出力タブの設定(表示カテゴリーのリスト)

※表示エントリーの場合と違うのは、「表示カテゴリーのリスト」では出力時のソースの選択は常に同じものになります。

関連付けができたら、[OK]をクリックして確定させます。
その後、アプリケーションを保存してデプロイします。
デプロイが成功したらアプリケーションを[起動]します。

起動すると、自動で表に「表示カテゴリーのリスト」が出力されているはずです。
実行結果(表示カテゴリーのリスト)
実行結果(表示カテゴリーのリスト)

ここで「親カテゴリ」に何も出力されていないことに気がつきますね。
「カテゴリ別」ビューは「商品カテゴリ」をトップとしたカテゴライズしたビューになっています。
そのため、「商品カテゴリ」には親となるカテゴリが存在しないということになり、出力がされないのです。


これを踏まえて、「グループ名」の入力フィールドと[グループで絞り込んだ場合のカテゴリ]というボタンと表の部分ついて実装してみます。
[グループで絞り込んだ場合のカテゴリ]ボタンのonClickイベントに「サービスの呼び出し」を設定します。

「サービスの選択」ではビュー名を「グループ別」にします。
サービスの選択
サービスの選択

[次へ]をクリックして、入力タブに移動します。
先ほどはこのタブでは何も設定しませんでしたが今回はフォーム内の「グループ名」とターゲットの選択の「カテゴリー名」を関連付けます。
入力タブの設定
入力タブの設定

これにより、ビューのうち入力したグループ名の子カテゴリだけが対象になります。
[次へ]をクリックして出力タブに移動します。

ここでの設定は先ほどと同じです。
出力タブの設定
出力タブの設定

設定したら[OK]をクリックして確定させます。
その後、アプリケーションを保存してデプロイします。
デプロイが成功したらアプリケーションを[起動]します。

「グループ名」にNotes DBの文書に登録してあるグループ名を入力します。
ここでは「たべもの」を入力して、[グループで絞り込んだ場合のカテゴリ]ボタンをクリックします。

実行結果が下図です。
実行結果(親カテゴリも表示されている)
実行結果(親カテゴリも表示されている)

今回は「親カテゴリ」が「たべもの」になっています。
また「カテゴリパス」が「たべもの\****」のように階層化されていることからもきちんとビューのカテゴリの部分を取得できていますね。



いかがでしょうか?

この機能ですが、
例えば、文書の作成時にカテゴリを設定したいとなった場合にカテゴリの選択肢をこのサービスを使って取得するといったように使うのでしょうか?

他にも色々と使い道がありそうです。
既存のNotes DBを参考にしながらアプリケーションの実装をしてみてください。




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



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

コメント