Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド 11gリリース1(11.1.1) B66712-02 |
|
前へ |
次 |
BI Publisherデータ・モデルでは、データの前またはデータの後イベント・トリガーおよびスケジュール・トリガーがサポートされます。この章では、データ・モデルにトリガーを定義する方法について説明します。
この章の内容は次のとおりです。
BI Publisherデータ・モデルでは、次のトリガー・タイプがサポートされます。
データの前: データ・セットが実行される前に起動します。
データの後: データ・エンジンがすべてのデータ・セットを実行し、XMLを生成した後に起動します。
スケジュール・トリガー: レポート・ジョブの実行がスケジュールされている場合に起動します。
イベント・トリガーはイベントをチェックし、イベントが発生するときに、トリガーに関連付けられたコードを実行します。BI Publisherデータ・モデルは、Oracle DatabaseのPL/SQLパッケージに格納されているPL/SQLファンクションを実行する、データの前トリガーとデータの後トリガーをサポートします。パッケージ内にあるPL/SQLファンクションの返すデータ型は必ずブール型になり、そのファンクションは明示的にTRUEまたはFALSEを返す必要があります。
スケジュール・トリガーはスケジュール・ジョブに関連付けられます。レポート・ジョブの実行がスケジュールされた時点でSQL問合せが実行されます。SQLがなんらかのデータを返す場合は、レポート・ジョブが実行されます。SQL問合せがデータを返さない場合、ジョブ・インスタンスはスキップされます。
データの前またはデータの後イベント・トリガーを追加する手順は、次のとおりです。
データ・モデルの「プロパティ」ペインで、トリガーの起動時に実行するPL/SQLファンクションのシグネチャを含むOracle DBデフォルト・パッケージを入力します。第1.8項「データ・モデルのプロパティの設定」を参照してください。
タスク・ペインで「イベント・トリガー」をクリックします。
「イベント・トリガー」ペインで「新規作成」アイコンをクリックします。
トリガーの、次の項目を入力します。
名前
タイプ: 「データの前」または「データの後」を選択します。
言語: PL/SQLを選択します。
下部のペインには、手順1でデータ・モデルの「プロパティ」に入力したOracle DBデフォルト・パッケージで使用可能な関数が表示されます。
図5-1は、イベント・トリガーを示しています。
「使用可能な関数」ボックスからパッケージを選択し、矢印をクリックして関数を「イベント・トリガー」ボックスに移動します。名前はPL/SQLの<パッケージ名>.<関数名>で表示されます。
重要: デフォルトのパッケージを定義する場合は、PL/SQLパッケージで、すべてのパラメータをグローバルなPL/SQL変数として定義する必要があります。そうすると、パラメータを明示的にPL/SQL関数トリガーに渡すことも、すべてのパラメータをグローバルなPL/SQL変数として使用することもできます。 |
スケジュール・トリガーは、レポート・ジョブの実行がスケジュールされている場合に起動します。スケジュール・トリガーは、SQL問合せのタイプです。レポート・ジョブの実行がスケジュールされている場合、スケジュール・トリガーはトリガーに定義したSQL文を実行します。データが返される場合は、レポート・ジョブが発行されます。トリガーSQL問合せからデータが返されない場合は、レポート・ジョブがスキップされます。
レポート・ジョブに関連付けるスケジュール・トリガーは、カタログ内のどのデータ・モデルに存在してもかまいません。スケジュール・トリガーを実行するために、そのスケジュール・トリガーをレポートのデータ・モデル内に作成する必要はありません。したがって、複数のレポート・ジョブで、スケジュール・トリガーを再利用できます。
スケジュール・トリガーを追加する手順は、次のとおりです。
データ・モデル・エディタのタスク・ペインで、「イベント・トリガー」をクリックします。
「イベント・トリガー」ペインで「新規作成」アイコンをクリックします。
トリガーの、次の項目を入力します。
名前: トリガーの名前を入力します。
タイプ: 「スケジュール」を選択します。
言語: デフォルトは「SQL問合せ」です。
下部のペインで、次の項目を入力します。
オプション: トリガー問合せの結果をキャッシュするには、このボックスを選択します。
データソース: トリガー問合せのデータソースを選択します。
SQL問合せ: テキスト領域に問合せを入力するか、「クエリー・ビルダー」をクリックして、SQL問合せを構成するユーティリティを使用します。詳細は、第2.4項「クエリー・ビルダーの使用」を参照してください。
SQL問合せがなんらかの結果を返す場合は、スケジュールされたレポート・ジョブを実行します。図5-2は、インベントリ・レベルをテストするスケジュール・トリガーを示しています。
レポート・ジョブでのスケジュール・トリガーの実装の詳細は、Oracle Fusion Middleware Oracle Business Intelligence Publisherユーザーズ・ガイドの、ジョブのスケジュールの定義に関する項を参照してください。