管理プラグインを介してEnterprise Managerに新しいターゲット・タイプを定義すると、新しいレポート定義の追加も可能になります。プラグインにより、Information Publisher PL/SQL APIを使用して永続(SYSTEM)ターゲット・タイプ固有のレポート定義をEnterprise Managerに追加できます。
この章の内容は次のとおりです。
注意: このAPIを使用するには、SQLおよびPL/SQLに関する知識が必要です。詳細は、『Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。 |
管理プラグインを介してレポート定義を追加すると、ターゲット・タイプ固有のSYSTEMレポートが作成されます。SYSTEMレポート定義は、Information Publisherユーザー・インタフェースを通じて作成される定義とは異なる方法で処理されます。SYSTEMレポートは永続的であり、Enterprise Manager管理者が削除または編集することはできません。管理プラグインには複数のレポート定義を追加できるため、複数のレポートを特定のターゲット・タイプに関連付けることができます。
管理プラグインおよびInformation Publisher APIを使用してSYSTEMレポート定義を追加すると、ユーザーはEnterprise Managerコンソールの次の2つの領域からレポートにアクセスできます。
ターゲット・ホームページの「レポート」ページ(オプション)
Information Publisherの「レポート定義」ページ
レポート定義ファイルでは、ターゲット・ホームページの「レポート」ページでレポートを使用可能かどうかを指定できます。「レポート」ページに追加するレポート定義は、「レポートの表示」ドロップダウン・メニュー・リストから使用できます。次の図に、Microsoft SQL Serverターゲットの「レポート」ページを示します。
レポートが「レポート」ページに表示されるように指定するかどうかにかかわらず、管理プラグインを介して追加されたすべてのレポート定義はInformation Publisherの「レポート定義」ページから使用できます。即時利用可能なSYSTEMレポート定義と同様に、管理プラグインを介して追加されたレポート定義は、レポート・カテゴリおよびサブカテゴリに従って整理されます。SYSTEMレポート定義は、Enterprise Managerコンソールから削除できません。図6-2「「レポート定義」ページ」に、Microsoft SQL Serverターゲット・タイプに対して使用可能なレポート定義を示します。
レポート定義ファイルは、従来型PL/SQLブロックとして構成され、管理リポジトリから関連情報を抽出するコードおよびそのデータの書式設定と表示に使用されるレポート要素を含みます。Information Publisher PL/SQL APIにより、通常はEnterprise Mangerコンソールからレポート定義を作成する際に対話的に指定するレポート要素およびパラメータを指定できます。
次の例では、管理プラグインとして追加されたoracle_orgchartターゲット・タイプの「レポート」ページを示します。肩書き別に分類した組織(oracle_orgchart)というタイトルの単一のレポートを図6-3に示します。このレポートは、肩書き別の人口分布の割合を示す円グラフ、最も多くの人からレポートされている上位5人の管理職を示す棒グラフ、組織内のすべての管理職の直接レポートの合計数をリストする表の3つの主要領域から構成されています。
この例で使用されるレポート定義では、「SQLからのグラフ」(円グラフと棒グラフ)および「SQLからの表」という2つのレポート要素タイプを利用します。一般に、この2つのレポート要素はほとんどのレポート・ニーズを満たします。
管理プラグインにより、特定のターゲット・タイプに必要なレポート定義ファイルをいくつでも定義できます。レポート定義ファイルの内容は、Information Publisher PL/SQL API(MGMT_IPパッケージの一部)を使用してレポートを構成するPL/SQLブロックから構成されます。
有効なレポート定義ファイルの開発プロセスには、次の3つの手順が含まれます。
管理リポジトリから情報を抽出するために使用されるSQLまたはPL/SQL問合せの定義
レポート定義の作成の最初の手順は、管理リポジトリから必要なレポート情報を抽出するために使用されるSQLまたはPL/SQL問合せの作成です。Enterprise Managerには、ベース表から読み取らずに管理リポジトリからデータを安全に抽出するために使用できる管理ビューが用意されています。リポジトリ・ビューを使用すると、将来のリリースで行われる可能性のあるリポジトリ・スキーマの変更から問合せが保護され、SYSTEMレポート定義が引き続き機能することが保証されます。リポジトリ・ビューの完全なリストは、第9章「管理リポジトリ・ビュー」に記載されています。
次の問合せは、Oracle組織内の従業員分類の分布に関するリポジトリ情報の抽出に使用されました。問合せでは、MGMT$METRIC_CURRENTリポジトリ・ビューを使用します。
select 'senior mts', count(value) from mgmt$metric_current where metric_column = 'Title' and LOWER(value) like '%senior member%' and target_guid = ??EMIP_BIND_TARGET_GUID?? union select 'principal mts', count(value) from mgmt$metric_current where metric_column = 'Title' and LOWER(value) like '%principal member%'and target_guid = ??EMIP_BIND_TARGET_GUID?? union select 'consulting mts', count(value) from mgmt$metric_current where metric_column = 'Title' and LOWER(value) like '%consulting%' and target_guid = ??EMIP_BIND_TARGET_GUID?? ;
管理者が、このSQL問合せ文字列を含むレポートをEnterprise Managerコンソールから表示すると、Information Publisherにより、選択したターゲットの一意識別子がSQL問合せ文字列の??EMIP_BIND_TARGET_GUID??プレースホルダに自動的にバインドされます。「SQLからのグラフ」および「SQLからの表」パラメータのドキュメントには、このバインド変数プレースホルダに関する情報およびSQL問合せ文字列に含めることのできるその他の情報が記載されています。
SQL問合せから返されたデータは、「SQLからのグラフ」レポート要素により、図6-3に示したoracle_orgchartターゲット・ホームページの「レポート」ページに示されている円グラフをレンダリングするために使用されます。
Enterprise Managerコンソールからのテスト・レポートの対話的な作成
SQLまたはPL/SQL問合せを記述し、テストした後で、Enterprise Managerコンソールを使用し、「SQLからのグラフ」および「SQLからの表」レポート要素を使用してレポートのバージョンを対話的に生成できます。Information Publisherユーザー・インタフェースを使用すると、レポート定義ファイルを作成して管理プラグイン・アーカイブをインポートしなくても、レポートのプロトタイプを簡単に作成できます。この対話的プロトタイプの手法を使用して、再問合せを行い、管理リポジトリから抽出されるデータ、およびその情報をレポートにレンダリングする方法がレポート要件を満たすようにすることができます。問合せの書式設定方法に関する情報と例は、Enterprise Managerオンライン・ヘルプで、「SQLからのグラフ」および「SQLからの表」の「パラメータを設定」機能に関する説明を参照してください。
Information Publisherによってレポートがレンダリングされる方法に満足したら、レポート定義ファイルを作成する準備ができます。前述のように、レポート定義ファイルはレポート要素を定義するPL/SQLブロックと、リポジトリ情報を抽出し、レポートをレンダリングするために要素により使用されるSQLまたはPL/SQL問合せから構成されます。例6-1に、oracle_orgchartターゲット・タイプに関連付けられているレポート定義ファイルの内容を示します。
例6-1 Oracle組織レポート定義ファイル
BEGIN DECLARE l_target_types MGMT_IP_TARGET_TYPES; l_param_values MGMT_IP_PARAM_VALUE_LIST; l_target_type MGMT_IP_TARGET_TYPES; l_report_guid RAW(16); l_element_guid RAW(16); l_report_title_nlsid VARCHAR2(128); l_report_owner VARCHAR(100); l_curr_order NUMBER; l_curr_row NUMBER; BEGIN -- specify the target type associated with this report -- in this case the target type is 'oracle_orgchart' l_target_type := MGMT_IP_TARGET_TYPES(); l_target_type.extend(1); l_target_type(1) := 'oracle_orgchart'; l_report_title_nlsid := 'Org breakdown by title (oracle_orgchart)<>'; l_report_owner := mgmt_user.get_repository_owner; -- create a report definition for the report l_report_guid := mgmt_ip.create_report_definition ( p_title_nlsid => l_report_title_nlsid, p_description_nlsid => 'Charts showing the breakdown by title', p_owner => l_report_owner, p_category_nlsid => 'Test Org Chart Reports', p_sub_category_nlsid => 'Interesting Org Data', p_late_binding_target_types => l_target_type, p_show_table_of_contents => 0, p_system_report => 1, p_component_name => l_target_type(1) ); -- Add report so that it shows up under "reports" tab in default home page mgmt_mp_homepage.add_report ( p_target_type => l_target_type(1), p_report_title => l_report_title_nlsid, p_report_owner => l_report_owner, p_report_order => 1 ); -- create the first element in the report -- it will be a text element with a description of the report contents -- set the parameters for the styled text element -- we?ll provide a message and a display style l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(2); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textMessage', 'Test Org Chart Monitoring'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textStyle', 'OraInstructionText'); -- initialize the sequencing variables -- l_curr_order should sequentially increase from 1 to the number of elements in -- the report -- l_curr_row indicates the row on which to display an element l_curr_order := 1; l_curr_row := 1; l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_STYLED_TEXT', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_header_nlslid => null, p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values, p_targets => null ); -- the second element in the report is a pie chart showing -- the count of employees by title l_param_values := mgmt_ip_param_value_list(); l_param_values.extend(3); l_param_values(1) := mgmt_ip_param_value_record( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'select ''senior mts'', count(value) from mgmt$metric_current where metric_column = ''Title'' and LOWER(value) like ''%senior member%'' and target_guid = ??EMIP_BIND_TARGET_GUID?? union select ''principal mts'', count(value) from mgmt$metric_current where metric_column = ''Title'' and LOWER(value) like ''%principal member%'' and target_guid = ??EMIP_BIND_TARGET_GUID?? union select ''consulting mts'', count(value) from mgmt$metric_current where metric_column = ''Title'' and LOWER(value) like ''%consulting%'' and target_guid = ??EMIP_BIND_TARGET_GUID?? ' ); l_param_values(2) := mgmt_ip_param_value_record( 'oracle.sysman.eml.ip.render.elem.ChartParamController.chartType', 'pieChart'); l_param_values(3) := mgmt_ip_param_value_record( 'oracle.sysman.eml.ip.render.elem.ChartParamController.pieShowSlicePercentLabels', 'true'); l_curr_order := l_curr_order + 1; l_curr_row := l_curr_row + 1; -- add pie chart to report definiton -- l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_USER_CHART_FROM_SQL', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_header_nlslid => 'people by title', p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values , p_targets => null ); --add a bar chart showing number of reports by manager -- l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(3); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'select * from (select key_value, to_number(value) "Number of Reports" from mgmt$metric_current where target_type = ''oracle_orgchart'' and metric_column = ''Reports'' and value is not null and target_guid = ??EMIP_BIND_TARGET_GUID?? order by to_number(value) DESC ) where rownum < 6' ); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.chartType', 'barChart'); l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.width', '800'); l_curr_order := l_curr_order + 1; l_curr_row := l_curr_row + 1; l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_USER_CHART_FROM_SQL', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_header_nlslid => 'Top 5 Number of Reports By Manager', p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values, p_targets => null ); -- the next element is a table the manager name and number of reports per manager l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(1); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'select key_value "Person", to_number(value) "Number of Reports" from mgmt$metric_current where target_type = ''oracle_orgchart'' and metric_column = ''Reports'' and value is not null and target_guid = ??EMIP_BIND_TARGET_GUID?? order by to_number(value) DESC ' ); l_curr_order := l_curr_order + 1; l_curr_row := l_curr_row + 1; l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_USER_TABLE_FROM_SQL', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_header_nlslid => 'Number of Reports By Manager', p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values , p_targets => null ); END; END;
Enterprise Managerへのレポート定義の追加機能を使用する場合には、そのレポート定義をメンテナンスおよび更新する責任が発生します。Enterprise Managerでレポート定義が処理される方法に精通していれば、システムの動作を予想し、下位互換性について計画を立てることができます。
レポート定義が管理プラグインを介してデプロイされると、Enterprise Managerでは、より新しいバージョンのレポート定義のインストールのみ許可されます。古いレポート定義は削除されて登録解除され、ターゲット・ホームページの「レポート」サブタブに表示されなくなります。これらのアクションにより、更新されたレポート定義がクリーンなシステムにデプロイされるようにすることで、潜在的なバージョン競合が排除されます。Enterprise Managerでは、古いバージョンのレポート定義はインストールされません。
レポート定義は、一般に管理プラグインと同様に、下位互換性を考慮して設計する必要があります。将来のバージョンのレポート定義では、以前のバージョンのターゲット・タイプ・メタデータをサポートする必要があります。レポート定義メタデータ・バージョンの非互換性は、次の状況で最も明らかになります。
管理プラグイン・バージョン1に含まれ、管理プラグイン・バージョン2に含まれないレポート定義は、バージョン2がデプロイされると、バージョン1のデプロイが一部の管理エージェントにまだ残っている場合でも消えます。
バージョン1とバージョン2の管理プラグインが、どちらもシステムにデプロイされている場合、管理エージェントは、そのエージェントにインストールされているバージョンのメタデータに基づいてデータを収集します。一部のエージェントはバージョン1のメタデータについて収集し、一部のエージェントはバージョン2のメタデータについて収集します。インストールされる(Enterprise Managerコンソールに表示される)のはバージョン2のレポート定義のみです。このため、バージョン2のレポート定義では両方のバージョンのメタデータをサポートする必要があります。
Information Publisher PL/SQL APIを使用して、レポート定義ファイルを作成できます。
次のPL/SQLメソッドを使用して、レポート定義ファイルの作成時にレポート定義の作成や操作を行うことができます。
このメソッドをコールして、新規レポート定義を作成します。レポート定義が作成された後で、要素を追加できます。create_report_definitionメソッドは、MGMT_IP PL/SQLパッケージの一部です。
注意: すべての管理プラグイン・レポートでは、p_system_reportを1に設定する必要があります。このパラメータは、レポート定義をSYSTEMレポートとして定義します。SYSTEMレポートは、Enterprise Manager管理者が削除または編集できません。p_ownerは、すべての管理プラグイン・レポートについてmgmt_user.get_repository_owner に設定する必要があります。
p_component_nameは、管理プラグインのターゲット・タイプに設定する必要があります。 |
入力
パラメータ | 説明 |
---|---|
p_title_nlsid |
レポート・タイトル。 |
p_description_nlsid |
説明。 |
p_owner |
所有者名(プラグイン・レポートのmgmt_user.get_repository_ownerから返される値にする必要があります)。 |
p_category_nlsid |
カテゴリ名。 |
p_sub_category_nlsid |
サブカテゴリ名。 |
p_late_binding_target_types |
遅延バインディングのターゲット・タイプ、または遅延バインディングを行わない場合はnull。 |
p_show_table_of_contents |
1=表示、0=非表示。 |
p_system_report |
1=システム・レポート、0=エンド・ユーザー・レポート。管理プラグイン・レポートに対しては1に設定する必要があります。 |
p_show_navigation |
レポート内のナビゲーション・ヘッダーを表示します(タブなど)。1=表示、0=非表示。 |
p_product_name |
製品名、EM(デフォルト)。 |
p_component_name |
製品コンポーネント。管理プラグイン・ターゲット・タイプに設定する必要があります。 |
p_version |
バージョン、10.2(デフォルト)。 |
p_parameters |
このレポート定義のパラメータ。 |
出力
このレポート定義のGUIDを返します。
コード
FUNCTION create_report_definition ( p_title_nlsid IN VARCHAR2, p_description_nlsid IN VARCHAR2, p_owner IN VARCHAR2, p_category_nlsid IN VARCHAR2, p_sub_category_nlsid IN VARCHAR2, p_late_binding_target_types IN MGMT_IP_TARGET_TYPES DEFAULT NULL, p_show_table_of_contents IN NUMBER DEFAULT 0, p_system_report IN NUMBER DEFAULT 1, p_show_navigation IN NUMBER DEFAULT 1, p_product_name IN VARCHAR2 DEFAULT 'EM', p_component_name IN VARCHAR2 DEFAULT '', p_version IN VARCHAR2 DEFAULT '10.2.0.1.0', p_parameters IN MGMT_IP_PARAM_VALUE_LIST DEFAULT NULL ) RETURN RAW;
このメソッドをコールして、既存のレポート定義に新規レポート要素を追加します。add_element_to_report_defメソッドは、MGMT_IP PL/SQLパッケージの一部です。
入力
パラメータ | 説明 |
---|---|
p_report_guid |
レポート定義を識別するためのGUID |
p_element_name_nlsid |
要素名 |
p_element_type_nlsid |
要素タイプ名 |
p_header_nlslid |
要素ヘッダーまたはnull |
p_element_order |
1を基準としたこの要素の順序 |
p_element_row |
1を基準としたこの要素の行 |
p_parameters |
この要素のパラメータ |
出力
この要素インスタンスのGUIDを返します。
コード
FUNCTION add_element_to_report_def( p_report_guid IN RAW, p_element_name_nlsid IN VARCHAR2, p_element_type_nlsid IN VARCHAR2, p_header_nlsid IN VARCHAR2 DEFAULT NULL, p_element_order IN NUMBER, p_element_row IN NUMBER, p_parameters IN MGMT_IP_PARAM_VALUE_LIST, p_targets IN MGMT_IP_TARGET_LIST ) RETURN RAW;
このメソッドをコールして、レポートのターゲット・ホームページの「レポート」サブタブに表示されるレポートを登録します。add_reportメソッドは、MGMT_MP_HOMEPAGE PL/SQLパッケージの一部です。
入力パラメータp_target_type、p_report_titleおよびp_report_ownerは、登録されるレポート定義と同一である必要があります。
重要: レポートがターゲット・ホームページの「レポート」サブタブに表示されるためには、mgmt_user.get_repository_owner から返される値がレポート所有者として指定されている必要があります。 |
入力
パラメータ | 説明 |
---|---|
p_target_type |
ターゲット・タイプ |
p_report_title |
レポート・タイトル |
p_report_owner |
レポート所有者 |
p_order |
レポートがホームページに表示される順序 |
出力
なし。
コード
PROCEDURE add_report(p_target_type IN VARCHAR2, p_report_title IN VARCHAR2, p_report_owner IN VARCHAR2, p_report_order IN NUMBER);
「レポート定義を作成するためのPL/SQLメソッド」に記載されているPL/SQLメソッドを使用するには、3つのPL/SQLタイプが必要です。3つのタイプの定義を次に示します。
MGMT_IP_TARGET_TYPESタイプを使用して、レポート定義でサポートされるターゲット・タイプをcreate_report_definition APIにp_late_binding_target_typesパラメータとして渡します。
CREATE OR REPLACE TYPE MGMT_IP_TARGET_TYPES AS TABLE OF VARCHAR(64);
例 6-2 MGMT_IP_TARGET_TYPES
DECLARE l_target_type MGMT_IP_TARGET_TYPES; BEGIN -- specify the target type associated with this report -- in this case the target type is 'oracle_orgchart' l_target_type := MGMT_IP_TARGET_TYPES(); l_target_type.extend(1); l_target_type(1) := 'oracle_orgchart'; END;
MGMT_IP_PARAM_VALUE_LISTおよびMGMT_IP_PARAM_VALUE_RECORD
MGMT_IP_PARAM_VALUE_LISTタイプを使用して、パラメータ値をcreate_report_definition APIにp_parametersパラメータとして渡し、add_element_to_report_def APIにp_paremetersパラメータとして渡します。
CREATE OR REPLACE TYPE MGMT_IP_PARAM_VALUE_LIST AS TABLE OF MGMT_IP_PARAM_VALUE_RECORD;
MGMT_IP_PARAM_VALUE_RECORDタイプを使用して、名前付きパラメータ値のペアを作成して、タイプMGMT_IP_PARAM_VALUE_LISTのオブジェクトに追加します。
CREATE OR REPLACE TYPE MGMT_IP_PARAM_VALUE_RECORD AS OBJECT (PARAM VARCHAR2(100), VALUE CLOB);
例6-3 MGMT_IP_PARAM_VALUE_RECORDおよびMGMT_IP_PARAM_VALUE_LIST
DECLARE l_param_values MGMT_IP_PARAM_VALUE_LIST; BEGIN l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(2); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textMessage', 'Test Org Chart Monitoring'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textStyle', 'OraInstructionText'); END;
一部のレポート要素で使用されるパラメータは、それらの要素の動作を示します。この項では、特定のレポート要素に関連するパラメータをリストします。
表要素は、問合せ結果の表形式ビューを表示するために使用されます。問合せは、管理ビューに対して行う必要があります。
要素名: IPMSG_USER_TABLE_FROM_SQL
要素タイプ: IPMSG_ANY_TARGET_TYPE
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TimePeriodParam |
必須 |
いいえ |
デフォルト値 |
null |
有効値 |
最後の24時間の場合は0:0 最後の7日間の場合は0:1 最後の31日間の場合は0:2 |
サマリー |
エンコードされた時間間隔 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.initialSortColumn。 |
必須 |
いいえ。 |
デフォルト値 |
結果セット内の最初の列。 |
有効値 |
任意の有効な列名。 |
サマリー |
このパラメータが設定されている場合、ソート列インジケータはこの列名の列について表示されます。設定されていない場合、ソート列インジケータは最初の列に表示されます。SQL問合せには、この列でソートするorder by句が含まれている必要があります。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.initialSortOrder。 |
必須 |
いいえ。 |
デフォルト値 |
ascending。 |
有効値 |
ascendingまたはdescending。 |
サマリー |
このパラメータが設定されている場合、ソート列インジケータは値に応じて昇順または降順で表示されます。設定されていない場合、ソート列インジケータは昇順に表示されます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.nameValueDisplay。 |
必須 |
いいえ。 |
デフォルト値 |
|
有効値 |
正の整数。 |
サマリー |
このパラメータが設定され、問合せから1行のみ返される場合、結果は名前/値ペアの縦方向のリストに表示されます。この値は、表示する必要のある名前/値列の数に設定する必要があります。通常は1です。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.numRowsToShow。 |
必須 |
いいえ。 |
デフォルト値 |
10 |
有効値 |
正の整数。 |
サマリー |
生成された表に一度に表示する行数。ユーザーは、UIコントロールを使用して他の行にスクロールできます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.sqlStatementIsPlSql |
必須 |
いいえ |
デフォルト値 |
false |
有効値 |
trueまたはfalse |
サマリー |
SQL文がPL/SQLかどうか |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.sqlStatement。 |
必須 |
いいえ。 |
デフォルト値 |
<なし>。 |
有効値 |
任意の有効なSQL SELECT文。 |
サマリー |
SQL文は、ターゲット、ロケール情報、および開始/終了日の値をオプションでバインドできます。SQL文の書式には、バインドするオプションのバインド変数プレースホルダが含まれている必要があります。 バインド・プレースホルダ
PL/SQL文でないかぎり、SQL文の最後にセミコロン(;)を追加しないでください。 |
例6-4 要素定義へのパラメータとしての無名PL/SQLブロックの指定
l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatementIsPlSql', 'true'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'BEGIN DECLARE rep_tz VARCHAR2(200); user_tz_in VARCHAR2(200); TYPE CURSOR_TYPE IS REF CURSOR; result_cursor_out CURSOR_TYPE; start_date_in DATE DEFAULT NULL; end_date_in DATE DEFAULT NULL; query_string VARCHAR(6000); BEGIN result_cursor_out := ??EMIP_BIND_RESULTS_CURSOR??; start_date_in := ??EMIP_BIND_START_DATE??; end_date_in := ??EMIP_BIND_END_DATE??; user_tz_in := ??EMIP_BIND_TIMEZONE_REGION??; select TIMEZONE_REGION into rep_tz from mgmt$target where TARGET_TYPE = ''oracle_emrep''; query_string := ''WITH dates AS (SELECT mgmt_view_util.adjust_tz(:1,:2,:3) as start_date, mgmt_view_util.adjust_tz(:4,:5,:6) as end_date from dual) SELECT label, time, sum(violations) --) as violations FROM( ( SELECT ''''''||''NEW_LBL''||'''''' as label, mgmt_view_util.adjust_tz(rollup_timestamp, :7, :8) as time, average as violations --new violations FROM MGMT$METRIC_HOURLY WHERE key_value in (''''18'''',''''20'''',''''25'''') AND ROLLUP_TIMESTAMP > (SELECT start_date FROM dates) AND ROLLUP_TIMESTAMP < (SELECT end_date FROM dates) AND target_type = ''''oracle_emrep'''' AND metric_name = ''''TARGET_SECURITY_NEW_VIOLATIONS'''' AND metric_column = ''''NEW_VIOLATIONS'''' ) UNION ( SELECT ''''''||''FIXED_LBL''||'''''' as label, mgmt_view_util.adjust_tz(rollup_timestamp,:9,:10) as time, average as violations --cleared violations FROM MGMT$METRIC_HOURLY WHERE key_value in (''''18'''',''''20'''',''''25'''') AND ROLLUP_TIMESTAMP > (SELECT start_date FROM dates) AND ROLLUP_TIMESTAMP < (SELECT end_date FROM dates) AND target_type = ''''oracle_emrep'''' AND metric_name = ''''TARGET_SECURITY_CLEARED_VIOLATIONS'''' AND metric_column = ''''CLEARED_VIOLATIONS'''' ) ) GROUP BY time, label ORDER BY time ASC''; OPEN result_cursor_out for query_string using start_date_in, user_tz_in, rep _tz, end_date_in, user_tz_in, rep_tz, user_tz_in, rep_tz, user_tz_in, rep_tz; END; END;');
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.maxNumberOfRowsAllowed。 |
必須 |
いいえ。 |
デフォルト値 |
2000 |
有効値 |
任意のスカラー数値。 |
サマリー |
表に表示するために取得する最大行数を設定します。たとえば、上位10個のxyzの要素を表示するには、値を10に設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.nullDataStringSubstitue |
必須 |
いいえ |
デフォルト値 |
|
有効値 |
文字列 |
サマリー |
返されたnull値を置換する文字列 |
属性 | 説明 |
---|---|
パラメータ名 |
TableRenderBean.TABLE_SPLIT_COLUMN。 |
パラメータ文字列 |
oracle.sysman.eml.ip.render.elem.TableRender.tableSplitColumn。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
任意の有効な列名。 |
サマリー |
このパラメータが設定されている場合、この列の値が変更されると、表はサブヘッダーのある別の表に分割されます。データはこの列で並べ替える必要があります。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.columnGroupHeadern。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
列グループに使用するヘッダー文字列。 |
サマリー |
このパラメータでは、列ヘッダー文字列が提供されます。この列グループ・ヘッダーは、列をoracle.sysman.eml.ip.render.elem.TableRender.columnGroupStart Colnおよびoracle.sysman.eml.ip.render.elem.TableRender.columnGroupEndColnで指定された列間に分散します。n接尾辞は数値であり、最初の列グループを示す1から開始し、後続の列グループについては昇順に設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.columnGroupStartColn。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
任意の有効な列名。 |
サマリー |
特定の列グループの最初の列を指定します。n接尾辞は数値であり、最初の列グループを示す1から開始し、後続の列グループについては昇順に設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.columnGroupEndColn。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
任意の有効な列名。 |
サマリー |
特定の列グループの最後の列を指定します。n接尾辞は数値であり、最初の列グループを示す1から開始し、後続の列グループについては昇順に設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.useSeparateRowsColumns。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
有効な列名のカンマ区切りリスト。 |
サマリー |
このパラメータが設定されている場合、指定された特定の名前を持つ列の区切り値は、その値を含む行セル内の別の行に表示されます。カンマ区切り列名を追加することにより、この処理に複数の列を指定できます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.useSeparateRowsDelimiter |
必須 |
いいえ |
デフォルト値 |
,(カンマ) |
有効値 |
任意の文字列 |
サマリー |
文字列内のトークンを区切るために使用される文字 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.severityColumn。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
任意の有効な列名。 |
サマリー |
返された有効な重大度値を表す重大度アイコンが置換されます。アイコンを省略するには、結果セットでこの列にnull値を含めます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.availabilityStatusColumn。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
任意の有効な列名。 |
サマリー |
返された有効な値を表す可用性ステータス・アイコンが置換されます。アイコンを省略するには、結果セットでこの列にnull値を含めます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.imageFilenameColumns。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
列名のカンマ区切りリスト。 |
サマリー |
指定された列に特定のイメージ・ファイル名を表示するためのオプションのパラメータ。特定のイメージをレンダリングする列を示します。列名のカンマ区切りリストを指定します。返されるイメージ・ファイル名には、/images/xyz.gifのように/imagesから始まる相対パスが含まれている必要があります。通常は、SQLデコード・ファンクションを使用して、数値を適切なイメージ・ファイル名に変換します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.targetTypeColumns。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
列名のカンマ区切りリスト。 |
サマリー |
返される値が、同じタイプの表示文字列に変換される内部ターゲット・タイプとして使用される列を示すオプションのパラメータ。列名のカンマ区切りリストを指定します。 |
次の表要素は検索フィルタの作成に使用されます。この検索フィルタにより、ユーザーは複数の表の列に対して行をフィルタ処理することができます。3種類のフィルタ・タイプを利用できます。
テキスト値
SQL問合せから取得された値リスト
要素定義のカンマ区切りリストから取得された値リスト
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterNames。 |
必須 |
はい。 |
デフォルト値 |
null。 |
有効値 |
フィルタ名のカンマ区切りリスト。 |
サマリー |
カンマ区切りリストでフィルタ名を定義します。このパラメータはフィルタ要素の順序も定義します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterPrompt<name>。 |
必須 |
はい。 |
デフォルト値 |
null。 |
有効値 |
CF。 |
サマリー |
「レポート」ページでフィルタの<名前>に使用されるプロンプトを定義します。フィルタ値は、レポート要素のSQL文から |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterSql<name>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
任意の有効なSQL SELECT文。 |
サマリー |
テキスト入力フィールドのかわりにドリルダウン・メニューとしてUIで表示される、フィルタの<名前>の値リストの移入に使用されるSQL問合せを定義します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterList<name>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
値のカンマ区切りリスト。 |
サマリー |
ドリルダウン・メニューとしてUIで表示される、フィルタの<名前>の値リストを定義します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterTranslateValues<name>。 |
必須 |
いいえ。 |
デフォルト値 |
no。 |
有効値 |
yesまたはno。 |
サマリー |
|
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterTip<name>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
英数字のテキスト。 |
サマリー |
ユーザーがマウスをフィルタUI要素の上に移動すると表示される、ツールのヒントのテキストを定義します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterDefault<name>。 |
必須 |
いいえ。 |
デフォルト値 |
% |
有効値 |
英数字のテキスト文字列。 |
サマリー |
フィルタの<名前>のデフォルト値を定義します。デフォルト値が指定されていない場合は、%が使用されます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterDefaultsToNull<name>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
yesまたはno。 |
サマリー |
これを定義すると、デフォルト値は%ではなくnullになります。 |
グローバルなフィルタ要素
次のパラメータはフィルタ・システムでグローバルに動作します。
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterStartEmpty。 |
必須 |
いいえ。 |
デフォルト値 |
|
有効値 |
yesまたはno。 |
サマリー |
このパラメータの値がyesの場合、レポートは最初に空の表を表示します。ユーザーがUIでフィルタ・ボタンをクリックすると、表が移入されます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterEmptyTableHeaders。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
表ヘッダーのカンマ区切りリスト。 |
サマリー |
空の表で開始する際に使用される、表ヘッダーを定義します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterEmptyTableHeaderTypes。 |
必須 |
いいえ。 |
デフォルト値 |
VARCHAR。 |
有効値 |
列型のカンマ区切りリスト。 |
サマリー |
空の表で開始する際に使用される、表ヘッダー型(列型)を定義します。これはカンマ区切りリストです。表ヘッダー型が指定されていない場合、表ヘッダー型はデフォルトのVARCHARになります。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterHeaderText。 |
必須 |
いいえ。 |
デフォルト値 |
検索フィルタ |
有効値 |
列名のカンマ区切りリスト。 |
サマリー |
デフォルトのフィルタ・セクションのヘッダー・テキストを上書きします。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterDescriptionText。 |
必須 |
いいえ。 |
デフォルト値 |
表の内容をフィルタ処理するには、値を入力してください。 |
有効値 |
英数字のテキスト文字列。 |
サマリー |
デフォルトのフィルタ・セクションの説明テキストを上書きします。 . |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterTipText。 |
必須 |
いいえ。 |
デフォルト値 |
検索フィルタは大/小文字が区別されます。ワイルドカードとして「%」を使用してください。 |
有効値 |
英数字のテキスト文字列。 |
サマリー |
デフォルトのフィルタ・セクションのヒント・テキストを上書きします。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterButtonText。 |
必須 |
いいえ。 |
デフォルト値 |
OK |
有効値 |
英数字のテキスト文字列。 |
サマリー |
デフォルトのフィルタのボタン・テキストを上書きします。 . |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.filterEmptyTableText。 |
必須 |
いいえ。 |
デフォルト値 |
(戻された行はありません) |
有効値 |
英数字のテキスト文字列。 |
サマリー |
フィルタ処理が実行される前に、空の表に表示されるテキストを指定します。 |
次のパラメータは、ハイパーリンクを表内に設定し、より優れたマスター/詳細ビュー間のリンク・ナビゲーションを組み込むために使用されます。このハイパーリンクは、(「ターゲット・セレクタ」ページを飛ばして)ターゲット・ホームページの「レポート」タブに直接リンクします。このメソッドは、最初に「ターゲット・セレクタ」ページをユーザーに表示する、oracle.sysman.eml.ip.render.elem.TableRender.columnDestReportTitle<num>
を使用する場合の代替手段となります。
レポートへのリンク
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.columnDestHomepageReportTitle<num>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
レポート定義リンク。 |
サマリー |
ターゲット・ホームページ上のレポート定義へのリンクが作成されること以外は、oracle.sysman.eml.ip.render.elem.TableRender.columnDestReportTitle<num>と同様です。 |
列の数の表示
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.numberOfColumnsShowed。 |
必須 |
いいえ。 |
デフォルト値 |
SQL内の列の数。 |
有効値 |
数値。 |
サマリー |
要素SQLからUIに表示される列の数を定義します。SQL問合せからその他の列は表示されませんが、詳細レポートにデータを公開するためのハイパーリンクの作成には使用できます。 |
ターゲット名の表示
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.columnDestTargetIndex<num>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
|
サマリー |
ターゲット名が含まれる列(表示されていない場合があります)を指定します。ターゲット名は、遅延バインディング・レポートでターゲット選択を移入するためのリンクで使用されます。 |
ターゲット・タイプの表示
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.columnDestTypeIndex<num>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
|
サマリー |
ターゲット・タイプが含まれる列(表示されていない場合があります)を指定します。ターゲット・タイプは、遅延バインディング・レポートでターゲット選択を移入するためのリンクで使用されます。 |
URLの表示
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TableRender.columnDestURLIndex<num>。 |
必須 |
いいえ。 |
デフォルト値 |
null。 |
有効値 |
|
サマリー |
指定された表要素に対する任意のURLが含まれる列(表示されていない場合があります)を指定します。 |
例6-5 リンクによる詳細レポートへのドリルダウンが可能なマスター・レポートを定義する、レポート定義
begin declare l_target_types MGMT_IP_TARGET_TYPES; l_param_classes MGMT_IP_PARAM_CLASSES; l_param_values MGMT_IP_PARAM_VALUE_LIST; l_report_guid RAW(16); l_element_guid RAW(16); begin l_report_guid := mgmt_ip.create_report_definition ( p_title_nlsid => 'My Master Report', p_description_nlsid => 'A master report to show master/detail', p_owner => 'SYSMAN', p_category_nlsid => 'Test Reports', p_sub_category_nlsid => 'Master and Detail', p_late_binding_target_types => null, p_late_binding_multi_targets => 0, p_system_report => 0, p_component_name => 'oracle_database', p_show_table_of_contents => 1); l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(17); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'SELECT TARGET_NAME "Target Name", TARGET_TYPE "Target Type", ''/em/console/targets'' FROM MGMT$TARGET WHERE TARGET_NAME LIKE ??EMIP_BIND_ PARAMNAME?? AND TARGET_TYPE LIKE ??EMIP_BIND_PARAMTYPE??'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterNames', 'NAME,TYPE'); l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.columnDestReportId1', 'My Detail Report'); l_param_values(4) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.columnDestParamColumnIndexes1', '0,1'); l_param_values(5) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterPromptNAME', 'Name'); l_param_values(6) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterTipNAME', 'Filter on the target names'); l_param_values(7) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterPromptTYPE', 'Target Type'); l_param_values(8) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterTipTYPE', 'Filter on the target types'); l_param_values(9) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterStartEmpty', 'yes'); l_param_values(10) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterEmptyTableHeaders', 'Target Name, Target Type'); l_param_values(11) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterSqlTYPE', 'select distinct target_type from mgmt$target'); l_param_values(12) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.numberOfColumnsShowed', '2'); l_param_values(13) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterHeaderText', 'My Filter Header'); l_param_values(14) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterTipText', 'My Tip Text'); l_param_values(15) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterDescriptionText', 'My Filter description'); l_param_values(16) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.filterButtonText', 'My button text'); l_param_values(17) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.TableRender.columnDestURLIndex2', '2'); l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'user_table_from_sql', p_element_type_nlsid => 'any_target_type', p_header_nlsid => 'My Master Report Table', p_element_order => 1, p_element_row => 1, p_parameters => l_param_values, p_targets => null); l_report_guid := mgmt_ip.create_report_definition ( p_title_nlsid => 'My Detail Report', p_description_nlsid => 'A detail report to show master/detail reports.', p_owner => 'SYSMAN', p_category_nlsid => 'Test Reports', p_sub_category_nlsid => 'Master and Detail', p_late_binding_target_types => null, p_late_binding_multi_targets => 0, p_system_report => 0, p_component_name => 'oracle_database', p_show_table_of_contents => 1); l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(1); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD ( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'SELECT TARGET_NAME "Target Name", TYPE_VERSION "Version" FROM MGMT$TARGET WHERE TARGET_TYPE LIKE ??EMIP_BIND_PARAM2?? AND TARGET_NAME LIKE ??EMIP_BIND_ PARAM1??'); l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'user_table_from_sql', p_element_type_nlsid => 'any_target_type', p_header_nlsid => 'My Detail Report Table', p_element_order => 1, p_element_row => 1, p_parameters => l_param_values, p_targets => null); commit; end; end;/
グラフ要素は、問合せ結果のグラフィカル・ビューを表示するために使用されます。問合せは、管理リポジトリ・ビューに対して行う必要があります。
要素名: IPMSG_USER_CHART_FROM_SQL
要素タイプ: IPMSG_ANY_TARGET_TYPE
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.chartType |
必須 |
いいえ |
デフォルト値 |
pieChart |
有効値 |
barChart lineChart pieChart timeSeriesChart timeSeriesBarChart |
サマリー |
表示するグラフ・タイプ |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TimePeriodParam |
必須 |
いいえ |
デフォルト値 |
null |
有効値 |
最後の24時間の場合は0:0 最後の7日間の場合は0:1 最後の31日間の場合は0:2 |
サマリー |
エンコードされた時間間隔 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.fill。 |
必須 |
いいえ。 |
デフォルト値 |
none。 |
有効値 |
none、absoluteまたはcumulative。 |
サマリー |
線グラフで線の下の領域を塗りつぶすかどうかを示します。 none: 線の下を塗りつぶしません。 absolute: 線はnone設定と同一ですが、線の下の領域が塗りつぶされます。 cumulative: 線の値が追加または重ねられ、線の下の領域が塗りつぶされます。 塗りつぶし属性を使用する場合は注意し、グラフ内のデータが累積と絶対のどちらかであるかについてレポート・ユーザーが混乱しないようにしてください。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.height。 |
必須 |
いいえ。 |
デフォルト値 |
200 |
有効値 |
n。nは正の整数に正しく解析される任意の文字列です。 |
サマリー |
グラフの表示高さをピクセル単位で設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.visualOrientation。 |
必須 |
いいえ。 |
デフォルト値 |
horizontal。 |
有効値 |
horizontalまたはvertical。 |
サマリー |
グラフの表示方向。この属性は、chartType属性がbarChartまたはtimeSeriesChartに設定されている場合にのみ有効です。この属性はpieChartには影響しません。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.legendPosition。 |
必須 |
いいえ。 |
デフォルト値 |
east。 |
有効値 |
default、east、south。 |
サマリー |
凡例を配置する場所をグラフへの相対で指定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.sqlStatementIsPlSql。 |
必須 |
いいえ。 |
デフォルト値 |
false。 |
有効値 |
trueまたはfalse。 |
サマリー |
SQL文がPL/SQL文であることを示すにはtrueに設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.sqlStatement。 |
必須 |
いいえ。 |
デフォルト値 |
<なし>。 |
有効値 |
任意の有効なSQL SELECT文またはPL/SQLブロック。 |
サマリー |
SQLまたはPL/SQL文は、ターゲット、ロケール情報、および開始/終了日の値をオプションでバインドできます。文の書式には、バインドするオプションのバインド変数プレースホルダが含まれている必要があります。 バインド・プレースホルダ
PL/SQL文でないかぎり、SQL文の最後にセミコロン(;)を追加しないでください。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.stacked。 |
必須 |
いいえ。 |
デフォルト値 |
false。 |
有効値 |
trueまたはfalse。 |
サマリー |
棒グラフが積上げかどうかを示します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.title |
必須 |
いいえ |
デフォルト値 |
<なし> |
有効値 |
|
サマリー |
全米障害者法(Americans with Disabilities Act)に準拠するためにグラフを識別するグラフ・タイトル |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.width。 |
必須 |
いいえ。 |
デフォルト値 |
400 |
有効値 |
n。nは正の整数に正しく解析される任意の文字列です。 |
サマリー |
要素の表示幅をピクセル単位で設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.yAxisLabel。 |
必須 |
いいえ。 |
デフォルト値 |
<なし>。 |
有効値 |
文字列。 |
サマリー |
このパラメータが指定されている場合は、Y軸を持つグラフのY軸ラベルとして使用されます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.pieShowSlicePercentLabels。 |
必須 |
いいえ。 |
デフォルト値 |
<なし>。 |
有効値 |
trueまたはfalse。 |
サマリー |
このパラメータが指定されている場合は、各スライスに割合値でラベルが付けられるかどうかを制御します。この属性は、pieChart以外のchartTypesに対しては無視されます。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.ChartParamController.pieValuesInLegend。 |
必須 |
いいえ。 |
デフォルト値 |
value。 |
有効値 |
percent、valueまたはnone。 |
サマリー |
円グラフでは、このパラメータは円スライスの値が円スライスのラベルとともに凡例に含まれるかどうかを指定します。この属性のデフォルト値はvalueです。percentまたはvalueを指定した場合は、数値が円スライス・ラベルとともに「スライス・ラベル(数値)」いう形式で表示されます。percentが指定されている場合は、すべてのスライス値の合計に対する割合が計算されて表示されます。それ以外の場合は、スライスのRAW値が表示されます。凡例で値を省略するには、このパラメータの値としてnoneを指定します。この属性は、pieChart以外のchartTypesに対しては無視されます。 |
メトリック詳細レポート要素に直接関係するクラスおよびそのパラメータは、oracle.sysman.eml.ip.render.elem
パッケージにあります。この要素は、oracle.sysman.emSDK.eml.EmlConstants
クラスに定義されているパラメータ関連定数にもアクセスします。
要素名: IPMSG_METRIC_DETAILS
要素タイプ: IPMSG_ANY_TARGET_TYPE
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.MetDetInternalTargetType |
必須 |
いいえ |
デフォルト値 |
oracle_database |
有効値 |
任意の有効な内部ターゲット・タイプ名 |
サマリー |
グラフに表示するターゲットのタイプ |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.MetDetSelectedMetric |
必須 |
はい |
デフォルト値 |
|
有効値 |
選択したターゲット・タイプに応じた有効なメトリック名 |
サマリー |
グラフ化するメトリック |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.MetDetSelectedMetricColumn |
必須 |
はい |
デフォルト値 |
|
有効値 |
選択したメトリックおよびターゲット・タイプに応じた有効な列名 |
サマリー |
グラフ化するメトリックの列 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TimePeriodParam |
必須 |
いいえ |
デフォルト値 |
null |
有効値 |
最後の24時間の場合は0:0 最後の7日間の場合は0:1 最後の31日間の場合は0:2 |
サマリー |
エンコードされた時間間隔 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.MetDetWidth。 |
必須 |
いいえ。 |
デフォルト値 |
300 |
有効値 |
n。nは正の整数に正しく解析される任意の文字列です。 |
サマリー |
ピクセル単位でのイメージの幅。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.MetDetHeight。 |
必須 |
いいえ。 |
デフォルト値 |
300 |
有効値 |
n。nは正の整数に正しく解析される任意の文字列です。 |
サマリー |
ピクセル単位でのイメージの高さ。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.MetDetLegendPosition |
必須 |
いいえ |
デフォルト値 |
|
有効値 |
south(デフォルト)、east |
サマリー |
グラフとの相対での凡例の位置 |
テキスト要素は、レポートに対して提供するメッセージ・テキストを表示するために使用します。
要素名: IPMSG_STYLED_TEXT
要素タイプ: IPMSG_ANY_TARGET_TYPE
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TextParamBean.textMessage。 |
必須 |
いいえ。 |
デフォルト値 |
""(空の文字列)。 |
有効値 |
任意のメッセージ。 |
サマリー |
レポートに表示するメッセージを設定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysman.eml.ip.render.elem.TextParamBean.textStyleClass。 |
必須 |
いいえ。 |
デフォルト値 |
OraInstructionText。 |
有効値 |
OraInstructionText。 OraTipText。 |
サマリー |
表示時に採用するメッセージ・テキストのスタイル・クラスを指定します。 |
属性 | 説明 |
---|---|
パラメータ名 |
oracle.sysmn.eml.ip.render.elem.TextParamBean.textDestination。 |
必須 |
いいえ。 |
デフォルト値 |
なし。 |
有効値 |
任意のURI。 |
サマリー |
このテキスト要素のオプションのリンク先を指定します。 |
次のパラメータは、レポート定義内のすべてのレポート要素に適用されます。
レポート・ユーザーがレポートを表示する特定の時間間隔を選択できるようにする動的時間間隔セレクタをレポート定義に提供します。動的時間間隔オプションは、「レポート」タブからレポートを表示したときのみ使用可能であり、ターゲット・ホームページ・レポートでは使用できません。ターゲット・ホームページ・レポートで使用される時間間隔は、レポート定義に対して設定されるデフォルトの時間間隔です。レポート定義ファイルの作成時にPL/SQL APIを使用してこれを指定するには、レポート定義に対して次のパラメータを設定します。
例6-6 動的時間セレクタ・レポート定義パラメータ
l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(3); -- this report has a time period associated with it l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodOption', 'true'); -- the user can customize the time period while viewing the report l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodUserCust', 'true'); -- set the default value to last 24 hours l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodParam', '0:0');
l_param values
をmgmt_ip.create_report_definition
にp_parameters
引数として渡します。
「SQLからの表」または「SQLからのグラフ」レポート要素を使用している場合は、Information Publisherによって開始日と終了日が自動的にバインドされるようなSQLレポート文を構成できます。これは、例6-7に示すように開始日および終了日値のプレースホルダ(??EMIP_BIND_START_DATE??
など)を挿入することによって行います。
例6-7 開始日および終了日の自動バインディング
'SELECT COLUMN_LABEL, ROLLUP_TIMESTAMP, AVERAGE FROM MGMT$METRIC_HOURLY WHERE TARGET_GUID = ??EMIP_BIND_TARGET_GUID?? AND METRIC_LABEL = ''Load'' AND KEY_VALUE = '' '' AND ROLLUP_TIMESTAMP > ??EMIP_BIND_START_DATE?? AND ROLLUP_TIMESTAMP < ??EMIP_BIND_END_DATE?? ORDER BY ROLLUP_TIMESTAMP'
詳細は、「SQLからの表」および「SQLからのグラフ」に関するオンライン・ヘルプ・マニュアルを参照してください。
レポート定義ファイルのPL/SQLを定義する場合は、次のガイドラインに従うことをお薦めします。
PL/SQL APIを使用してレポート定義を作成します。
レポート定義は、標準以外のコーディング構成ではなくPL/SQL APIを使用して作成する必要があります。PL/SQL APIを使用すると、コードが管理リポジトリ・スキーマの変更から隔絶されます。
管理プラグインに追加するすべてのレポート定義はSYSTEMレポートとして定義する必要があります。
create_report_definition
メソッドをコールするたびに、p_system_report => 1
を渡す必要があります。SYSTEMレポート定義は、Enterprise Managerコンソール内では異なる方法で扱われます。たとえば、SYSTEMレポート定義を管理者が削除または編集することはできません。
レポート所有者を指定します。
mgmt_user.get_repository_owner
から返された値を各レポート定義の所有者として指定する必要があります。mgmt_user.get_repository_owner
以外の所有者を指定するレポート定義は、ターゲット・ホームページの「レポート」サブタブに表示されません。ただし、これらのレポート定義はInformation Publisherの「レポート定義」ページに表示されます。
コンポーネント名はターゲット・タイプに設定する必要があります。
Enterprise Managerが特定のレポート定義を特定の管理プラグインと関連付けるためには、コンポーネント名をターゲット・タイプに設定する必要があります。次に例を示します。
BEGIN -- specify the target type associated with this report -- in this case the target type is 'oracle_orgchart' l_target_type := MGMT_IP_TARGET_TYPES(); l_target_type.extend(1); l_target_type(1) := 'oracle_orgchart'; l_report_title_nlsid := 'Org breakdown by title (oracle_orgchart)<>'; l_report_owner := mgmt_user.get_repository_owner; -- create a report definition for the report l_report_guid := mgmt_ip.create_report_definition ( p_title_nlsid => l_report_title_nlsid, p_description_nlsid => 'Charts showing the breakdown by title', p_owner => l_report_owner, p_category_nlsid => 'Test Org Chart Reports', p_sub_category_nlsid => 'Interesting Org Data', p_late_binding_target_types => l_target_type, p_show_table_of_contents => 0, p_system_report => 1, p_component_name => l_target_type(1) );
「SQLからのグラフ」および「SQLからの表」要素を使用している場合
要素が単一の非集計ターゲット(のみ)を受け入れる場合(ほとんどの管理プラグイン・ターゲット・タイプのケース)は、要素のoracle.sysman.eml.ip.render.elem.adjustTimes
パラメータをtrue
に設定することで、「SQLからのグラフ」および「SQLからの表」要素に組み込まれた自動タイムゾーン日付調整を利用できます。このパラメータが設定されている場合、SQL問合せにバインドされている開始日と終了日は、レポート・タイムゾーンからターゲット・タイムゾーンに調整されます。反対に、問合せから返された日付は、ターゲット・タイムゾーンからレポート・タイムゾーンに調整されます。
要素が複数のターゲットまたは集計ターゲットを受け入れる場合は、ユーザーが日付値のタイムゾーン調整の処理に責任を持ちます。??EMIP_BIND_TIMEZONE_REGION??
バインド変数からレポート・タイムゾーンを取得できます。レポートの表示者が表示されている日付を理解するためには、レポートに表示される日付がレポート・タイムゾーンに従っているか、各日付に関連付けられているタイムゾーンを明示的に表示する必要があります。次の例に、一般的な使用例を示します。
例6-8 特定のターゲットのタイムゾーンからレポート・タイムゾーンへの、SELECT文で返される日付の調整
select mgmt_view_util.adjust_tz(tbl.date, tgt.timezone_region, ??EMIP_BIND_TIMEZONE_REGION??)
from mgmt$target tgt, sometable tbl
where <your where clause here>
例6-9 レポート・タイムゾーンからターゲット・タイムゾーンへの、SELECT文のWHERE句で使用されるレポート時間間隔の開始日と終了日の調整
select <your selected columns here>
from mgmt$target tgt, sometable tbl
where
tgt.target_guid = ??EMIP_BIND_TARGET_GUID?? and
tbl.Mydate > MGMT_VIEW_UTIL.ADJUST_TZ(
??EMIP_BIND_START_DATE??,
??EMIP_BIND_TIMEZONE_REGION??,
tgt.TIMEZONE_REGION)
and
tbl.Mydate < MGMT_VIEW_UTIL.ADJUST_TZ(
??EMIP_BIND_END_DATE??,
??EMIP_BIND_TIMEZONE_REGION??,
tgt.TIMEZONE_REGION)
推奨されるコーディング・プラクティス
PL/SQL APIメソッドのコール時には、位置表記法ではなく名前付き表記法を使用する必要があります。コールに=>
がある場合は、名前付き表記法を使用しています。次に例を示します。
l_report_guid := mgmt_ip.create_report_definition ( p_title_nlsid => 'Org breakdown by title (oracle_orgchart)', p_description_nlsid => 'Charts showing the breakdown by title', p_owner => mgmt_user.get_repository_owner, p_category_nlsid => 'Test Org Chart Reports', p_sub_category_nlsid => 'Interesting Org Data', p_late_binding_target_types => l_target_type, p_late_binding_multi_targets => 0, p_show_table_of_contents => 0, p_system_report => 1, p_component_name => 'oracle_orgchart' );
名前付き表記法を使用すると、PL/SQL APIの将来のリリースに対するコード変更からレポート定義が隔絶され、コードの自己文書化にも役立ちます。