Cognos プロンプト操作用サンプルJavaScript

##概要
Cognos BIのサンプルとして提供されている、Prompt APIサンプルはご存知でしょうか。

Cognosのプロンプトは、デフォルトで多彩な機能が実装されていますが、実際のプロジェクトではお客様要件によりカスタマイズされた動作が必要になる時があります。
例えば、以下の図のような要件ですね。
![003.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/87a953a9-1d29-3586-ee1b-2efad9254a9e.png)

そんな時は、プロンプトページにHTMLアイテムを配置し、JavaScriptを埋め込みカスタムの動作を実装する事になります。
カスタムJavaScriptを開発するに当たり、強力な参照サンプルとなるのが、Prompt APIサンプルです。
\<CognosInstall>\webcontent\samples\content の下に、IBM_Cognos_Prompt_API.zip という、コンテンツアーカイブがあり、これをCognos Administrationからインポートします。
![001.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/a1216038-a906-8c0e-98c4-f9b2ff29fcec.png)

すると、以下のパッケージの下に、16個のサンプルのレポートが提供されます。
次章では、各レポートのプロンプトのカスタム動作イメージをご紹介しますので、参考になりそうなものがあれば、実機に導入してご活用下さい。
![002.PNG](https://qiita-image-store.s3.amazonaws.com/0/147246/f60918da-7606-1e75-c35b-be6a7df8a805.png)



##各サンプルの説明
###Clear Prompt Selections

選んだプロンプトをクリアーする

・プロンプトで適当に選択
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/85081e23-3fe5-3bf7-ada5-82ebf1a55a3d.png)

・「Clear」ボタンを押すと、選択が解除される。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/5618f1c0-fe21-de84-07d8-70d86696d1ce.png)


###Date Prompt Presets

選んだボタンで、日付のプロンプトの日時がセットされる。

・「Yesterday」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/0caff5de-8e66-0d0e-d0bd-791c50af2827.png)

・「Current YTD」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/42fd3475-8f88-133d-ad1f-3e6b3f0bd88b.png)

・「Previous Month」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/50d565d2-ed4d-527b-db51-1f7c2d5f819a.png)

・「Previous Quarter」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/984a5540-4437-f014-accb-71cb1f691e34.png)

・「Previous Year」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/129153f1-922d-328f-a894-2c4b22a1effa.png)

###Display All Prompt Values Ignoring User Selections

「Display Valuesボタンを押すと、ユーザーが選択しているプロンプトの値に関係なく、プロンプトに表示される全部の値の表示データと使用データが出力される。

![image](https://qiita-image-store.s3.amazonaws.com/0/147246/b925f58f-b359-519f-785d-380199b9d02d.png)

###Display User Selected Prompt Values

「Display Prompt Detail」をクリックすると、ユーザーが選択したプロンプト値の、使用データと表示データが出力される。

![image](https://qiita-image-store.s3.amazonaws.com/0/147246/be05c640-af72-bc8b-6f50-d8ecd9efc0b5.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/147246/bf3ad1bc-2029-5e04-f007-d3817837072b.png)

###Filter Country By Letter

アルファベットの文字をクリックすると、先頭がその文字で始まる国でフィルターされる。

・何も選択していない状態
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/131e82dc-442f-247e-911f-ee5bae33fcf6.png)

・「C」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/6782b363-c19a-0396-246c-c4d97d10fd0a.png)

・「J」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/11c80432-1ee3-d075-bb3b-97764c2351c6.png)


###Limit Date Prompt Selection by Database Value

・2013/2/24 を選択。DB内に～2013年内のデータはあるので、問題なく「Finish」を押せる。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/407ab405-235f-3aec-e468-adac8700d63d.png)

・2014/11/24を選択。DB内に存在する期間のデータを超えるので、アラートが赤字で表示され、「Finish」が選択できなくなる。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/dcead2a0-7fc8-7138-71f8-56bf24b3a6ec.png)

###Limit Numeric Prompt Selection by Database Value
・プロンプトに数字を入れると「Finish」はできそう。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/6d0d7944-c0fc-88b9-36fb-8946d0c981ae.png)

・アルファべットを入れると、「Finish」不可となる。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/063b1a2e-1f7d-0fc8-36e8-8b865864bee0.png)

###Limit Time Between Two Dates

・Fromの日付が一週間前。Finish可能。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/dc01b750-422f-0695-7264-f9b59d402106.png)

・Fromの日付が二週間前。10日を超えると、アラートが表示され、Finish不可。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/6123d084-8fd6-0307-9417-a5baedc1003f.png)

###Limit User Selection to Two Items

・3個以上選択して「Finish」すると、エラーメッセージがポップアップ表示される。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/dcaae94f-0cb6-4ef3-f3c0-5efa899e80b7.png)

###Pass Parameter Via Hidden Prompt

隠しプロンプト経由で、自動的にプロンプト選択され、レポートが実行される。

・レポートを実行すると、警告メッセージが表示される。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/34705989-240d-583e-a491-914f4c918cbd.png)

・1秒くらい、プロンプト画面が表示される。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/7cdae0bc-f38f-a740-5b5a-b73f8f24c42c.png)

・自動的に、実行結果画面に遷移。Golf Equipment で絞り込まれている。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/f011c381-6b88-e14f-5faa-a238afee0131.png)


###Personal Default Prompt Selections - Set Selections

プロンプト選択内容のクッキーへの保存

・レポート実行すると下記メッセージが出る。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/7dc4ad0a-9c94-2184-f2a7-bac02ba64564.png)

・プロンプトを選択して「Save Prompt Values」
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/c750297d-2d3f-11d7-69d7-4a40796c47f3.png)

・こんなメッセージが出て、終了。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/ca65ceb1-3899-5ba5-f2da-8e23dc058d91.png)

###Personal Default Prompt Selections - Use Selections
・前述のSet Selectionsでクッキーにセットされたプロンプトが、レポート実行時に呼び出される。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/72192043-4be2-72ba-e50d-0f810c14130e.png)

###Validate Prompt Values When Button Pushed

選んではいけない組み合わせをチェックし、警告を出す。

・Camping Equipment と Fax の組み合わせでFinish
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/a4fe7dc8-a5b2-29ed-eb15-66910e931e2f.png)

・警告メッセージが出てプロンプトに戻る。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/40d5f5d1-efbf-e65c-f43d-b265c5885b81.png)

###Validate Type-In Postal Code Value

プロンプトに入力しているそばから入力値のチェックを行う。

・入力中。まだ完全でないので、Finishができない。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/bfdbf3bf-94d8-0714-46b9-f1d4c3ac1772.png)

・完全に入力終わり、ValidなものだとFinishができる。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/15c21ee4-c269-d315-faee-2e3711aab918.png)

・同じ桁数入ればよいというものではない。何桁目は、数値 or 文字、というルールをチェックしている。
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/6535923e-aa9a-b9d6-55cb-4ce69abf6a10.png)

###Validate Type-In Product Line Code

プロンプト入力のチェック系。
文字・数値ではなく、数値の範囲でチェックする。

・991を入力。OK
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/2d0b9435-6f23-4635-ff3c-1bf35c1a7668.png)

・996を入力。NG
![image](https://qiita-image-store.s3.amazonaws.com/0/147246/955fe349-d74d-1444-05b8-19a8d9a2da1a.png)