Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド 11g リリース1 (11.1.1) B66712-03 |
|
前 |
次 |
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.7項「データ・モデルのプロパティの設定」を参照してください。
タスク・ペインで「イベント・トリガー」をクリックします。
「イベント・トリガー」ペインの「新規イベント・トリガーの作成」をクリックします。
トリガーの、次の項目を入力します。
名前
タイプ - 「データの前」または「データの後」を選択します。
言語 - PL/SQLを選択します。
下部のペインには、手順1でデータ・モデルの「プロパティ」に入力したOracle DBデフォルト・パッケージで使用可能な関数が表示されます。
図5-1は、イベント・トリガーを示しています。
「使用可能な関数」ボックスからパッケージを選択し、矢印をクリックして関数を「イベント・トリガー」ボックスに移動します。名前はPL/SQLの<パッケージ名>.<関数名>で表示されます。
重要: デフォルトのパッケージを定義する場合は、PL/SQLパッケージで、すべてのパラメータをグローバルなPL/SQL変数として定義する必要があります。そうすると、パラメータを明示的にPL/SQL関数トリガーに渡すことも、すべてのパラメータをグローバルなPL/SQL変数として使用することもできます。 |
スケジュール・トリガーは、レポート・ジョブの実行がスケジュールされている場合に起動します。スケジュール・トリガーは、SQL問合せのタイプです。レポート・ジョブの実行がスケジュールされている場合、スケジュール・トリガーはトリガーに定義したSQL文を実行します。データが返される場合は、レポート・ジョブが発行されます。トリガーSQL問合せからデータが返されない場合は、レポート・ジョブがスキップされます。
レポート・ジョブに関連付けるスケジュール・トリガーは、カタログ内のどのデータ・モデルに存在してもかまいません。スケジュール・トリガーを実行するために、そのスケジュール・トリガーをレポートのデータ・モデル内に作成する必要はありません。したがって、複数のレポート・ジョブで、スケジュール・トリガーを再利用できます。
スケジュール・トリガーを追加する手順は、次のとおりです。
データ・モデル・エディタのタスク・ペインで、「イベント・トリガー」をクリックします。
「イベント・トリガー」ペインで「新規作成」アイコンをクリックします。
トリガーの、次の項目を入力します。
名前 - トリガーの名前を入力します。
タイプ - 「スケジュール」を選択します。
言語 - デフォルトは「SQL問合せ」です。
下部のペインで、次の項目を入力します。
オプション - トリガー問合せの結果をキャッシュするには、このボックスを選択します。
データソース - トリガー問合せのデータソースを選択します。
SQL問合せ - 問合せをテキスト領域に入力するか、「クエリー・ビルダー」をクリックし、ユーティリティを使用してSQL問合せを作成します。詳細は、第2.3.2項「SQLクエリー・ビルダーの使用」を参照してください。
トリガー問合せの中にパラメータを入れることができます。パラメータを、トリガーと同じデータ・モデルの中で定義します。レポート・ジョブのスケジュールを設定するときにパラメータ値を入力します。
SQL問合せがなんらかの結果を返す場合は、スケジュールされたレポート・ジョブを実行します。図5-2に示すスケジュール・トリガーは、パラメータ値に基づいて在庫レベルを調べるものであり、このパラメータ値は実行時に入力できます。
レポート・ジョブでのスケジュール・トリガーの実装の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherユーザーズ・ガイド』のジョブのスケジュールの定義に関する項を参照してください。