LoginSignup
0
0

More than 5 years have passed since last update.

Cognos BI ドリルスルーを含むレポートをコピーする際の注意点

Last updated at Posted at 2016-12-28

Cognos BIでレポートを別フォルダにコピーして、編集して、元の場所に戻してリリース、という運用をする事は多いと思います。
Cognos経験者の方でも意外と認識されていない、レポート間のドリルスルーの設定の扱いと、コピー機能の関係について、簡単な検証をしてまとめてみました。
動きを認識しておくと、レポートの改修時のミスを減らす事ができる、地味だけど大事な知識なので、ちらっと読んで記憶の片隅に留めておいて頂ければと思います。

ちなみに、ドリルスルーとは、Cognosのレポートの中で、グラフとかセルとかボタンをクリックすると、別のレポートに遷移する機能です。ドリルダウン(詳細化)とは違いますのでご注意下さい。

ソース・レポート(ドリルスルー)ターゲット・レポート

環境

共有フォルダ ‎> Qiita ‎> DrillThrough ‎> Dir1‬ の下に、SourceReport(ドリルスルー元)、TargetReport(ドリルスルー先)を作成し、ドリルスルーを定義しました。
image

ケース1:フォルダ単位(Dir1)でコピーした場合

コピー方法
フォルダのメニューの「その他」から
001.PNG
「コピー」機能でDir1フォルダごとコピーした場合
002.PNG
「FolderCopy」という名前のフォルダにコピーしました。

結果
※レポート中にReportPath()関数を仕込み、レポートのパスを表示しています。

SourceReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='FolderCopy']/report[@name='SourceReport']

ドリルスルーした先のTargetReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='FolderCopy']/report[@name='TargetReport']

フォルダコピーした先のTargetReportにドリルスルー遷移できました。
望ましい動きですね。

ケース2:その他メニューの「コピー」から、レポートを1個1個コピーした場合

コピー方法
レポート単位で「その他」メニューから、
003.PNG
「コピー」した場合、
004.PNG
コピー先は、「ReportCopy」というフォルダにしています。
Targetレポートも同じ方法でコピーしています。

結果
SourceReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='ReportCopy']/report[@name='SourceReport']

ドリルスルーした先のTargetReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='Dir1']/report[@name='TargetReport']

ドリルスルーした先のTargetReportは、コピー前のDir1上のものに遷移してしまっているのがわかります。
これは困ったパターンですね。

ケース3:コピーアイコンで、レポートを1個1個コピーした場合

コピー方法
レポートのチェックボックスにチェックを入れ、コピーアイコンでコピーした場合
009.PNG

コピー先は、「IconCopyDiff」というフォルダにしています。
Targetレポートも同じ方法でコピーしています。

結果
SourceReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='IconCopyDiff']/report[@name='SourceReport']

ドリルスルーした先のTargetReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='Dir1']/report[@name='TargetReport']

ドリルスルーした先のTargetReportは、コピー前のDir1上のものに遷移してしまっているのがわかります。
これは困ったパターンですね。

ケース4:コピーアイコンで、レポートを同時コピーした場合

コピー方法
最後に、レポートのチェックボックスを両方チェックして、コピーアイコンでコピーした場合
010.PNG

コピー先は、「IconCopy」というフォルダにしています。

結果
SourceReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='IconCopy']/report[@name='SourceReport']

ドリルスルーした先のTargetReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='IconCopy']/report[@name='TargetReport']

フォルダコピーした先のTargetReportにドリルスルー遷移できました。
望ましい動きですね。

まとめ

まとめるとこんな感じです

ケース ドリルスルーのペアが考慮される
1:フォルダ単位(Dir1)でコピー
2:その他メニューの「コピー」から、レポートを1個1個コピー ×
3:コピーアイコンで、レポートを1個1個コピー ×
4:コピーアイコンで、レポートを同時コピー

ドリルスルーのペアが崩れてしまった場合の修正

ソースレポートのレポートXML定義を書き換えるのが一番早いと思います。
「クリップボードにレポートをコピー」すると、
007.PNG

こんな感じにメモ帳に貼り付けるとレポートXML定義が取り出せます。
image

XML定義の中から、以下の箇所を検索して、

<drillTarget><reportPath path="/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='Dir1']/report[@name='TargetReport']">

以下のように正しいパスに置換します。
<drillTarget><reportPath path="/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='ReportCopy']/report[@name='TargetReport']">

メモ帳の内容をCtrl+Cでコピーして、「クリップボードからレポートを開く」して、レポートを上書き保存します。
008.PNG

SourceReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='ReportCopy']/report[@name='SourceReport']

ドリルスルーした先のTargetReportのパス表示:
/content/folder[@name='Qiita']/folder[@name='DrillThrough']/folder[@name='ReportCopy']/report[@name='TargetReport']

地味な知識ですが、知らないと思わぬ失敗を招きますので、是非覚えておいてもらえればと。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0