Oracle® Fusion Middleware Oracle Business Intelligence Discoverer管理者ガイド 11gリリース1 (11.1.1) E51906-01 |
|
前 |
次 |
ここでは、Oracle Business Intelligence DiscovererのEULトリガーに関する情報を記載します。項目は次のとおりです。
Oracle Business Intelligence DiscovererのEULトリガーは、Discovererで特定のアクション(ユーザーによるワークブックの保存など)が発生すると特定のPL/SQLファンクションを実行するデータベースのコールです。
注意:
Discovererでは、EnableTriggersレジストリ設定がレジストリに存在し、その値が0 (ゼロ)に設定されていないかぎり、デフォルトでEULトリガーが実行可能になります。Discovererのレジストリ設定の詳細は、第21章「Discovererのレジストリ設定」を参照してください。
EULトリガーは、PL/SQLファンクションが特定の表示名(eul_trigger$post_save_documentなど)でDiscoverer Administratorに適切に登録されている場合のみ実行されます。詳細は、「DiscovererのEULトリガーで実行可能なPL/SQLファンクションの登録方法」を参照してください。
EULトリガーは、各EULトリガーに対してPL/SQLファンクションの引数が定義されている場合のみ実行されます(詳細は、「Oracle Business Intelligence DiscovererのEULトリガー・リスト」を参照)。
次の表に、Discovererで使用できるEULトリガー、トリガーが実行される時期、トリガーの引数、引数が必須かオプションか、および推奨する使用目的を示します。
トリガー名 | 実行される時期 | 引数(データ型) | 引数(必須/オプション) | 推奨する使用目的 |
---|---|---|---|---|
eul_trigger$post_login | 正常なログイン後 | ファンクションの戻りデータ型(NUMBER)
引数なし。 注意: このファンクションから返される数値は使用されません。 |
なし | ユーザー環境コンテキストを設定します。たとえば、データベースまたはSSOユーザー名に基づいた行レベルのセキュリティを強制します。 |
eul_trigger$post_save_document | ワークブックの保存時 | ファンクションの戻りデータ型(NUMBER)
WorkbookOwner (VARCHAR) WorkbookName (VARCHAR) WorksheetName (VARCHAR) Sequence (VARCHAR) SQLSegment (VARCHAR) |
必須 必須 必須 必須 必須 |
DiscovererワークシートからSQLを自動的に抽出し、データベースの事前定義されたテーブルに保存します。 |
eul_trigger$pre_delete_document | ワークブックがデータベースから削除される前 | ファンクションの戻りデータ型(NUMBER)
WorkbookOwner (VARCHAR) WorkbookName (VARCHAR) |
必須 必須 |
削除されるワークブックの名前と所有者を保持します。 |
eul_trigger$refresh_new_column | リフレッシュ操作による新規列の検出時 | ファンクションの戻りデータ型(VARCHAR)
DBLink (VARCHAR) Schema (VARCHAR) Table (VARCHAR) Column Name (VARCHAR) EUL Language (VARCHAR) |
必須 必須 必須 必須 必須 |
Oracle Applicationsフィールドの適切な表示名を返します。 |
eul_trigger$get_developer_key | ゲートウェイまたはオンライン・ディクショナリからのビジネスエリアのロード時、データベース内にオブジェクトが作成される前 | ファンクションの戻りデータ型(VARCHAR)
Default Developer Key (VARCHAR) Element Type (VARCHAR) DB Link (VARCHAR) Schema (VARCHAR) Table (VARCHAR) Constraint / Column (VARCHAR) |
必須 必須 必須 必須 必須 必須 デフォルト識別子に製品の短縮名を付加します。たとえば、EMPLOYEEテーブル(デフォルト識別子: EMPLOYEE)に基づくフォルダをHRI製品でメンテナンスする場合、識別子はHRI_EMPLOYEEとなります。 |
デフォルト識別子に製品の短縮名を付加します。たとえば、EMPLOYEEテーブル(デフォルト識別子: EMPLOYEE)に基づくフォルダをHRI製品でメンテナンスする場合、識別子はHRI_EMPLOYEEとなります。 |
特定のファンクションを実行するPL/SQLファンクション(例: ワークシートの保存時にSQLをワークシートから抽出するファンクション)を登録できます。Oracle Business Intelligence DiscovererのEULトリガーによってPL/SQLファンクションが実行されるのは、PL/SQLファンクションがデータベースに存在し、Discoverer Administratorに適切に登録されている場合のみです。
注意: PL/SQLファンクションは、DiscovererのEULトリガーと同一の名前で登録する必要があります。名前が異なる場合、DiscovererのEULトリガーによるファンクションの検出または実行が行われません。したがって、PL/SQLファンクションの「表示名」フィールドの名前をPL/SQLファンクション名(eul_trigger$post_save_documentなど)に設定する必要があります。
Oracle Business Intelligence DiscovererのEULトリガーで実行可能なPL/SQLファンクションを登録する手順は、次のとおりです。
PL/SQLファンクションをデータベースに作成し、ファンクション名を指定します。
詳細は、「ワークシートの保存時にPL/SQLトリガーを使用してSQLをワークシートから抽出する方法の例」を参照してください。
Discoverer Administratorを起動し、「ツール」→「PL/SQL関数の登録」を選択すると、「PL/SQL関数」ダイアログの「関数」タブが表示されます。
このダイアログを使用してPL/SQLファンクションをインポートし、Discovererに登録します。
詳細は、「カスタムPL/SQLファンクションの登録」を参照してください。
SQLを自動抽出できるように、Discovererでは、ワークブックの保存時に必ず実行されるトリガーが有効になっています。このトリガーによってPL/SQLファンクション(eul_trigger$post_save_document)が検索されます。このファンクションが検出されない場合は、何も実行されません。PL/SQLファンクションが検出された場合は、そのファンクションに従ってSQLが保存されます。次に、使用可能なファンクションの例を示します。ただし、この機能は、顧客が各自の特定ニーズにあわせて使用できるようにオープンのままになっています。
ワークシートの保存時にPL/SQLトリガーを使用してSQLをワークシートから抽出する手順は、次のとおりです。
SQL*Plusを起動します。
次のSQL文を入力して、SQLを格納するテーブルを作成します。
注意: この例では、PL/SQLファンクションによって移入されるmy_sqlテーブルを作成します。
SQL> create table my_sql ( workbookowner varchar2 (100), workbook varchar2 (100), worksheet varchar2 (100), seg_sequence number (10), sql_segment varchar2 (2000) );
次のSQL文を入力して、POST_SAVE_DOCUMENTという名前のPL/SQLファンクションを作成します。
SQL> create or replace function POST_SAVE_DOCUMENT (P_WORKBOOKOWNER in varchar, P_WORKBOOK in varchar, P_WORKSHEET in varchar, P_SEQUENCE in number, P_SQL_SEGMENT in varchar, ) return number as begin delete from my_sql; insert into my_sql ( WORKBOOKOWNER, WORKBOOK WORKSHEET SEG_SEQUENCE SQL_SEGMENT VALUES ( P_WORKBOOKOWNER, P_WORKBOOK, P_WORKSHEET, P_SEQUENCE, P_SQL_SEGMENT ); return 1; end;
次の権限をPUBLICユーザーに付与し、my_sqlテーブルおよびPL/SQLファンクションPOST_SAVE_DOCUMENTへのアクセスを許可します。SQL*Plusで次のSQL文を入力します。
SQL> grant execute on POST_SAVE_DOCUMENT to PUBLIC;
このSQL文によって、PUBLICユーザーによるPL/SQLファンクションPOST_SAVE_DOCUMENTの実行が可能になります。
SQL> grant select, insert, update on my_sql to PUBLIC;
このSQL文によって、PUBLICユーザーによるデータベース・テーブルmy_sqlに対する選択、挿入および更新が可能になります。
Discoverer Administratorを起動し、「ツール」→「PL/SQL関数の登録」を選択すると、「PL/SQL関数」ダイアログの「関数」タブが表示されます。
このダイアログを使用して、新規PL/SQLファンクションをDiscovererに登録します。
注意: 新規PL/SQLファンクションの「表示名」フィールドの名前がeul_trigger$post_save_document
に設定されていることを確認してください。
新規PL/SQLファンクションを登録します。
PL/SQLファンクションのインポート方法の詳細は、「カスタムPL/SQLファンクションを自動的に登録する方法」を参照してください。