Cognos BIで、刻一刻と更新されるデータをリアルタイムにレポートに表示できないか、というご相談を良く受けます。
基本的にHTML Itemに定期的にレポートを再実行するJavaScriptを仕込むしかないのですが、実装をご紹介します。
自動反映イメージ
という動作で、リアルタイムではないのですが、5秒に一回リフレッシュは可能です。
実装方法
レポート中にHTML Itemを置いて、以下のコードを記載下さい。
<script type="text/javascript">
var intval;
var fW = (typeof getFormWarpRequest == "function" ? getFormWarpRequest() : document.forms["formWarpRequest"]);
if ( !fW || fW == undefined)
{
fW = ( formWarpRequest_THIS_ ? formWarpRequest_THIS_ : formWarpRequest_NS_ );
}
var preFix = "";
if (fW.elements["cv.id"])
{
preFix = fW.elements["cv.id"].value;
}
var nameSpace = "oCV" + preFix;
if(intval!="")
{
self.clearInterval(intval);
intval="";
}
self["RunReportInterval"] = self.setInterval( nameSpace + ".getRV().RunReport()",'5000' );
intval = self["RunReportInterval"];
</script>
参考文書
こちらを参考にしています。IE11やCognos Analytics、Cognos BI 10.2.2でも動作確認済みです。
JavaScript: Setting reports to auto refresh in Cognos Viewer with IE 6 or 7
http://www-01.ibm.com/support/docview.wss?uid=swg21342426
こちらのTechnoteもあるのですが、動作がイマイチ安定しませんでした。ご参考まで。
Prompt API - Auto refresh a report in the Browser / Web with a timed interval
http://www-01.ibm.com/support/docview.wss?uid=swg21646893