Cognos BIで、誰が、いつ、どのレポートを実行したかをログしておく、監査機能があります。
この監査情報は、通常はレポート実行時に、レポートの名称はログされますが、レポートの中のプロンプトで、どのような条件選択をしたかを取得する事はできませんが、以下の手順によりプロンプトの選択内容も監査ログに含める事ができます。
監査の要件で、プロンプトの選択内容も含めたいという要件のプロジェクトで、是非ご活用下さい。
手順
※監査DBはDB2での手順です。
ReportServiceの詳細に パラメーター RSVP.PARAMETERS.LOG 値 true を設定します。
Logging Selected Report Parameters in the Audit DB
https://www-01.ibm.com/support/docview.wss?uid=swg21706083
プロンプトを含むレポートを実行すると、
COGIPF_PARAMETER表のCOGIPF_PARAMETER_VALUE_BLOB列に以下のような出力がされます。
※「ゴルフ用品」というプロンプト選択をした場合
<parameterValues xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[1]">
<item xsi:type="bus:parameterValue">
<bus:name xsi:type="xs:string">pPL</bus:name>
<bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[1]">
<item xsi:type="bus:simpleParmValueItem">
<bus:inclusive xsi:type="xs:boolean">true</bus:inclusive>
<bus:display xsi:type="xs:string">ゴルフ用品</bus:display>
<bus:use xsi:type="xs:string">ゴルフ用品</bus:use>
</item>
</bus:value>
</item>
</parameterValues>
Framework ManagerでCOGIPF_PARAMETER表を参照する「クエリー・サブジェクト」をデータ・ソースタイプで作成します。
SQLの記載は以下にします。
select
COGIPF_LOCALTIMESTAMP,
COGIPF_SESSIONID,
COGIPF_REQUESTID,
COGIPF_SUBREQUESTID,
COGIPF_STEPID,
COGIPF_OPERATION,
COGIPF_TARGET_TYPE,
COGIPF_PARAMETER_NAME,
COGIPF_PARAMETER_VALUE,
XMLCAST(XMLQUERY('declare namespace bus="http://developer.cognos.com/schemas/bibus/3/"; $c/parameterValues/item/bus:value/item/bus:display' passing XMLPARSE(document COGIPF_PARAMETER.COGIPF_PARAMETER_VALUE_BLOB) as "c") as varchar(40)) as PARAMETER
from
COGIPF_PARAMETER
結果
プロンプト入りのレポートを何個か実行した時の、このクエリー・サブジェクトの出力結果です。
赤枠は、互換モードのパッケージで、プロンプトページ付きで単数選択の場合
青枠は、互換モードのパッケージで、レポートページ内に自動送信プロンプトを配置し単数選択の場合
緑枠は、互換モードのパッケージで、プロンプトページ付きで複数選択の場合
ピンク枠は、動的モードでプロンプトページ付きで複数選択の場合
となります。
後はFramework Manager内で適宜リレーションを定義しておけば、自由にプロンプト値を取り出す事ができますので、是非ご活用下さい。