プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド
12c (12.2.1.3.0)
E90113-02
目次へ移動
目次

前
前へ
次
次へ

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

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

トリガーについて

イベント・トリガーはイベントをチェックし、イベントが発生するときに、トリガーに関連付けられたコードを実行します。

Oracle BI Publisherでは、データ・セットの実行前、データ・セットの実行後、およびデータ・セットの実行間近のイベントがサポートされます。次の3つのタイプのイベント・トリガーがあります。

  • データの前 - データ・セットが実行される直前に起動します。

  • データの後 - データ・エンジンがすべてのデータ・セットを実行し、XMLを生成した直後に起動します。

  • スケジュール・トリガー - スケジュールされたジョブがトリガーされ、実行する前に起動します。

データの前トリガーとデータの後トリガーは、Oracle DatabaseのPL/SQLパッケージに格納されているPL/SQLファンクションを実行します。パッケージ内にあるPL/SQLファンクションの返すデータ型は必ずブール型になり、そのファンクションは明示的にTRUEまたはFALSEを返す必要があります。

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

イベント・トリガーは、バースティング定義で使用されるデータの移入では使用されません。「バースティング定義の追加」を参照してください。

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

データの前後で起動するイベント・トリガーを追加できます。

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

  1. データ・モデルの「プロパティ」ペインで、トリガーの起動時に実行するPL/SQLファンクションのシグネチャを含むOracle DBデフォルト・パッケージを入力します。
  2. タスク・ペインで「イベント・トリガー」をクリックします。
  3. 「イベント・トリガー」ペインの「新規イベント・トリガーの作成」をクリックします。
  4. トリガーの、次の項目を入力します。
  5. 「使用可能な関数」ボックスからパッケージを選択し、矢印をクリックして関数を「イベント・トリガー」ボックスに移動します。

    名前はPL/SQLの<パッケージ名>.<関数名>として表示されます。

実行順序

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

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

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

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

スケジュール・トリガーは、レポート・ジョブの実行がスケジュールされている場合に起動します。スケジュール・トリガーは、SQL問合せのタイプです。

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

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

  1. データ・モデル・エディタのタスク・ペインで、「イベント・トリガー」をクリックします。
  2. 「イベント・トリガー」ペインで「新規作成」アイコンをクリックします。
  3. トリガーの、次の項目を入力します。
    • 名前 - トリガーの名前を入力します。

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

    • 言語 - デフォルト値の「SQL問合せ」をそのまま使用します。

  4. 下部のペインで、次の項目を入力します。
    • オプション - トリガー問合せの結果をキャッシュするには、このチェック・ボックスを選択します。

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

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

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

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

    『Oracle Business Intelligence Publisherユーザーズ・ガイド』のジョブのスケジュールの定義に関する項を参照してください。