ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド
11g リリース1 (11.1.1)
B66712-04
  目次へ移動
目次
索引へ移動
索引

前
前へ
 
次
 

5 イベント・トリガーの追加

BI Publisherデータ・モデルでは、データの前またはデータの後イベント・トリガーおよびスケジュール・トリガーがサポートされます。この章では、データ・モデルにトリガーを定義する方法について説明します。

この章の内容は次のとおりです。

5.1トリガーについて

BI Publisherデータ・モデルでは、次のトリガー・タイプがサポートされます。

イベント・トリガーはイベントをチェックし、イベントが発生するときに、トリガーに関連付けられたコードを実行します。BI Publisherデータ・モデルは、Oracle DatabaseのPL/SQLパッケージに格納されているPL/SQLファンクションを実行する、データの前トリガーとデータの後トリガーをサポートします。パッケージ内にあるPL/SQLファンクションの返すデータ型は必ずブール型になり、そのファンクションは明示的にTRUEまたはFALSEを返す必要があります。

スケジュール・トリガーはスケジュール・ジョブに関連付けられます。これはSQL問合せであり、レポート・ジョブを実行するようスケジュールされた日時になると実行されます。SQLがなんらかのデータを返す場合は、レポート・ジョブが実行されます。SQL問合せがデータを返さない場合、ジョブ・インスタンスはスキップされます。

5.2 データの前およびデータの後トリガーの追加

データの前またはデータの後イベント・トリガーを追加する手順は、次のとおりです。

  1. データ・モデルの「プロパティ」ペインで、トリガーの起動時に実行するPL/SQLファンクションのシグネチャを含むOracle DBデフォルト・パッケージを入力します。第1.7項「データ・モデルのプロパティの設定」を参照してください。

  2. タスク・ペインで「イベント・トリガー」をクリックします。

  3. 「イベント・トリガー」ペインの「新規イベント・トリガーの作成」をクリックします。

  4. トリガーの、次の項目を入力します。

    • 名前

    • タイプ - 「データの前」または「データの後」を選択します。

    • 言語 - PL/SQLを選択します。

      下部のペインには、手順1でデータ・モデルの「プロパティ」に入力したOracle DBデフォルト・パッケージで使用可能な関数が表示されます。

      図5-1は、イベント・トリガーを示しています。

      図5-1 イベント・トリガー

      イベント・トリガー
  5. 「使用可能な関数」ボックスからパッケージを選択し、矢印をクリックして関数を「イベント・トリガー」ボックスに移動します。名前はPL/SQLの<パッケージ名>.<関数名>で表示されます。


    重要:

    デフォルトのパッケージを定義する場合は、PL/SQLパッケージで、すべてのパラメータをグローバルなPL/SQL変数として定義する必要があります。そうすると、パラメータを明示的にPL/SQL関数トリガーに渡すことも、すべてのパラメータをグローバルなPL/SQL変数として使用することもできます。


5.2.1 実行の順序

同じタイプのトリガーを複数定義する場合、トリガーは表に表示される順(上から下へ)で起動します。

実行順序を変更するには:

  1. 「順序変更」の矢印を使用して、トリガーを正しい順序に配置します。

5.3 スケジュール・トリガーの作成

スケジュール・トリガーは、レポート・ジョブの実行がスケジュールされている場合に起動します。スケジュール・トリガーは、SQL問合せのタイプです。レポート・ジョブの実行がスケジュールされている場合、スケジュール・トリガーはトリガーに定義したSQL文を実行します。データが返される場合は、レポート・ジョブが発行されます。トリガーSQL問合せからデータが返されない場合は、レポート・ジョブがスキップされます。

レポート・ジョブに関連付けるスケジュール・トリガーは、カタログ内のどのデータ・モデルに存在してもかまいません。スケジュール・トリガーを実行するために、そのスケジュール・トリガーをレポートのデータ・モデル内に作成する必要はありません。したがって、複数のレポート・ジョブで、スケジュール・トリガーを再利用できます。

スケジュール・トリガーを追加する手順は、次のとおりです。

  1. データ・モデル・エディタのタスク・ペインで、「イベント・トリガー」をクリックします。

  2. 「イベント・トリガー」ペインで「新規作成」アイコンをクリックします。

  3. トリガーの、次の項目を入力します。

    • 名前 - トリガーの名前を入力します。

    • タイプ - 「スケジュール」を選択します。

    • 言語 - デフォルトは「SQL問合せ」です。

  4. 下部のペインで、次の項目を入力します。

    • オプション - トリガー問合せの結果をキャッシュするには、このボックスを選択します。

    • データソース - トリガー問合せのデータソースを選択します。

    • SQL問合せ - 問合せをテキスト領域に入力するか、「クエリー・ビルダー」をクリックし、ユーティリティを使用してSQL問合せを作成します。詳細は、第2.3.3項「SQLクエリー・ビルダーの使用」を参照してください。

      トリガー問合せの中にパラメータを入れることができます。パラメータを、トリガーと同じデータ・モデルの中で定義します。レポート・ジョブのスケジュールを設定するときにパラメータ値を入力します。

    SQL問合せがなんらかの結果を返す場合は、スケジュールされたレポート・ジョブを実行します。図5-2に示すスケジュール・トリガーは、パラメータ値に基づいて在庫レベルを調べるものであり、このパラメータ値は実行時に入力できます。

    図5-2 スケジュール・トリガー

    図5-2については周囲のテキストで説明しています。

    レポート・ジョブでのスケジュール・トリガーの実装の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Publisherユーザーズ・ガイド』のジョブのスケジュールの定義に関する項を参照してください。