概要
Cognos BI や Cognos Analyticsでは、ドリルダウン&ドリルアップの動作を実現する時は、Framework Managerでディメンショナルモデル(DMR)を作成する必要があるのが通常です。
DMRとは、Cognosサンプルで言うところの、こんな感じの標準ディメンションを作成する、階層を持ったモデルです。
しかしながら、このDMRモデルの開発スキルが無い、機能が制限される、扱いにくいなど、様々な理由でDMRモデルを使いたくない時もあります。
そんな時に使える、通常のリレーショナルモデルでドリルダウン&アップ動作を再現させる方法を紹介します。
動作イメージ
Cognosサンプルでお馴染みの、「製品ライン」「製品タイプ」「製品」で、ドリルダウン&アップしてみようと思います。
レポート実行時の初期表示では、「製品ライン」のみがクロス集計に配置されています。
「アウトドア保護用品」をクリックしてみます。
すると以下のように、「製品タイプ」列が現れ、「アウトドア用保護用品」に紐づく「製品タイプ」のみが表示されている事がわかります。
いわゆるドリルダウンをした動きですが、Cognos標準のドリルダウンとは違います。
Cognos標準のドリルダウンの場合は、ここで「製品ライン」の列は表示されず、「製品タイプ」列のみの表示になります。
とはいえ、むしろこの「製品ライン」も表示されている動きの方が好まれるユーザーも多いと思います。
「救急用具」をクリックします。
さらにドリルダウンされ「製品」列が表示されました。
当然「救急用具」に紐づく「製品」です。
ではここで「救急用具」をクリックしてみます。
ドリルアップしましたね。
「アウトドア用保護用品」をクリックします。
さらにドリルアップして、最初の「製品ライン」のみの表示に戻りました。
さて、どの様に実装しているかですが、見る人が見れば直ぐにわかりますが、ドリルスルーを使っているだけです。
実装
レポートは実は3つ作成しています。
製品販売レポート:「製品ライン」のみ配置
製品販売レポートL2:「製品ライン」「製品タイプ」を配置
製品販売レポートL3:「製品ライン」「製品タイプ」「製品」を配置
製品販売レポートのイメージ
「製品ライン」に設定したドリルスルーで、「製品販売レポートL2」を呼び出し、「データアイテムの値」を渡しています。
製品販売レポートL2のイメージ
「製品ライン」に設定したドリルスルー、つまりドリルアップ操作相当は、「製品販売レポート」を呼び出し、何も渡しません。
「製品タイプ」に設定したドリルスルー、つまりドリルダウン操作相当は、「製品販売レポートL3」を呼び出し、「製品ライン」のために「パラメーター」を渡し、「製品タイプ」のために「データアイテムの値」を渡します。
クエリーはこんな感じで、「製品ライン」をパラメーターで受けるためのオプショナルフィルターが設定されています。
製品販売レポートL3のイメージ
「製品ライン」に設定したドリルスルー、つまり一挙に最初までドリルアップ操作相当は、「製品販売レポート」を呼び出し、何も渡しません。
「製品タイプ」に設定したドリルスルー、つまりドリルアップ操作相当は、製品販売レポートL2」を呼び出し、「製品ライン」のために「パラメーター」を渡します。
クエリーはこんな感じで、「製品ライン」「製品タイプ」をパラメーターで受けるためのオプショナルフィルターが設定されています。
という感じの実装で、実はわりと単純ですが、結構使える場面も多いと思いますので、覚えておいて頂ければと思います。
また、今回はコンセプトのご紹介のため、レポートを3つに分けて実装しましたが、ドリルスルーのターゲットを自分自身のレポートとして、クリックする列により引き継がれるパラメーターで、列の表示・非表示を条件付スタイルで制御すれば、同様の動きを1つのレポートで実装する事も可能です。
是非ご活用頂ければと思います。