概要
Cognos BIでレポートを作った後に、レポートを公開してよいかどうか承認者に(承認 or 却下)の判断をしてもらう、ワークフロー的な機能をCognos BIで実装できないか、という要件がたまにあります。
Event Studioの機能を利用して、下図のようなワークフローをCognos BIで実装した例をご紹介します。
実装概要
実装方法の概要です。
Report01の承認依頼を行いたい時に、「承認ジョブ」というジョブを実行してワークフローを回すイメージです。
「承認ジョブ」の中身は、単純に「承認EV01」「承認EV02」を順次実行します。
「承認EV01」「承認EV02」の実体は、Event Studioで以下のようなタスクを並べて作成しています。
実装詳細
「承認EV01」「承認EV02」の詳細な説明となりますが、その前に下ごしらえがあります。
事前準備
ワークフローで「承認・却下」の結果を、フラッグとして保持しておくためのテーブルを作成します。
※DB2での例です。
作成したテーブルに「承認(1)・却下(0)」を書き込むための、ストアード・プロシージャーを作成します。
Framework Managerのメタデータ・ウィザードでストアード・プロシージャーを取り込みます。
取り込んだストアード・プロシージャーの定義を修正します。
タイプ、パラメーター名、値、を以下のように修正し、パッケージを発行します。
承認EV01の説明
A).左端のイベントです、これは何でも結果が正になればよく、適当なデータアイテム >=0 を記載しています。
B).データ更新タスクで、先のストアード・プロシージャーを指定し、値を0に指定します。
これでテーブル上のフラッグが 0 に初期化されます。
C).メール送信タスクで、レポート承認依頼のメールを送付します。
D).承認要求タスクで、以下のようにレポートのリンクを付与して、依頼文を記載します。
ジョブはここで一旦停止したままとなり、承認者が「個人用受信トレイ」に通知された承認要求通知に「承認」か「却下」をする事により、先に進みます。
「却下」をされた場合、この「承認EV01」自体から抜けてしまいます。「承認ジョブ」に定義された、次の「承認EV02」に入ります。
「承認」された場合、「承認EV01」の後続のタスクが実行されます。
E).ここで再度テーブルのフラッグ更新が発生し、値の1 (承認)がテーブルに入ります。
F).メール通知タスクで、レポートが承認された事が申請者に通知されます。
次に「承認EV02」が呼ばれます。
この時点で、承認を受けている場合はテーブルのフラッグの値は 1、却下を受けている場合は 0 が入っているはずです。
G).フラッグ「FLG」の値が、0 であれば後続のタスクを実行し、0以外であれば「承認EV02」を抜けます。
H).メール通知タスクで、レポートが却下された事を通知します。
如何だったでしょうか?
普段あまり使われない Event Studioにストアード・プロシージャーを合わせて、こんな感じになんちゃってワークフローを実現したりできる、ちょっと面白い事例です。
是非ご活用頂ければと思います。