ヘッダーをスキップ
Oracle Enterprise Manager拡張ガイド
10gリリース5(10.2.0.5)
B54134-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

6 レポートの追加

管理プラグインを介して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つの領域からレポートにアクセスできます。

「レポート」ページ(ターゲット・ホームページ)

レポート定義ファイルでは、ターゲット・ホームページの「レポート」ページでレポートを使用可能かどうかを指定できます。「レポート」ページに追加するレポート定義は、「レポートの表示」ドロップダウン・メニュー・リストから使用できます。次の図に、Microsoft SQL Serverターゲットの「レポート」ページを示します。

図6-1 Microsoft SQL Serverの「レポート」ページ

図6-1の説明が続きます
「図6-1 Microsoft SQL Serverの「レポート」ページ」の説明

「レポート定義」ページ

レポートが「レポート」ページに表示されるように指定するかどうかにかかわらず、管理プラグインを介して追加されたすべてのレポート定義はInformation Publisherの「レポート定義」ページから使用できます。即時利用可能なSYSTEMレポート定義と同様に、管理プラグインを介して追加されたレポート定義は、レポート・カテゴリおよびサブカテゴリに従って整理されます。SYSTEMレポート定義は、Enterprise Managerコンソールから削除できません。図6-2「「レポート定義」ページ」に、Microsoft SQL Serverターゲット・タイプに対して使用可能なレポート定義を示します。

図6-2 「レポート定義」ページ

図6-2の説明が続きます
「図6-2 「レポート定義」ページ」の説明

レポート定義ファイル

レポート定義ファイルは、従来型PL/SQLブロックとして構成され、管理リポジトリから関連情報を抽出するコードおよびそのデータの書式設定と表示に使用されるレポート要素を含みます。Information Publisher PL/SQL APIにより、通常はEnterprise Mangerコンソールからレポート定義を作成する際に対話的に指定するレポート要素およびパラメータを指定できます。

次の例では、管理プラグインとして追加されたoracle_orgchartターゲット・タイプの「レポート」ページを示します。肩書き別に分類した組織(oracle_orgchart)というタイトルの単一のレポートを図6-3に示します。このレポートは、肩書き別の人口分布の割合を示す円グラフ、最も多くの人からレポートされている上位5人の管理職を示す棒グラフ、組織内のすべての管理職の直接レポートの合計数をリストする表の3つの主要領域から構成されています。

図6-3 Oracle組織レポート

図6-3の説明が続きます
「図6-3 Oracle組織レポート」の説明

この例で使用されるレポート定義では、「SQLからのグラフ」(円グラフと棒グラフ)および「SQLからの表」という2つのレポート要素タイプを利用します。一般に、この2つのレポート要素はほとんどのレポート・ニーズを満たします。

レポート定義ファイルの作成

管理プラグインにより、特定のターゲット・タイプに必要なレポート定義ファイルをいくつでも定義できます。レポート定義ファイルの内容は、Information Publisher PL/SQL API(MGMT_IPパッケージの一部)を使用してレポートを構成するPL/SQLブロックから構成されます。

レポート定義ファイルの開発プロセス

有効なレポート定義ファイルの開発プロセスには、次の3つの手順が含まれます。

  1. 管理リポジトリから情報を抽出するために使用されるSQLまたはPL/SQL問合せの定義

  2. Enterprise Managerコンソールからのテスト・レポートの対話的な作成

  3. PL/SQL APIを使用したレポート定義ファイルの作成

管理リポジトリから情報を抽出するために使用される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からの表」の「パラメータを設定」機能に関する説明を参照してください。

PL/SQL APIを使用したレポート定義ファイルの作成

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のレポート定義では両方のバージョンのメタデータをサポートする必要があります。

PL/SQLアプリケーション・プログラマ・インタフェース

Information Publisher PL/SQL APIを使用して、レポート定義ファイルを作成できます。

レポート定義を作成するためのPL/SQLメソッド

次のPL/SQLメソッドを使用して、レポート定義ファイルの作成時にレポート定義の作成や操作を行うことができます。

mgmt_ip.create_report_definition

このメソッドをコールして、新規レポート定義を作成します。レポート定義が作成された後で、要素を追加できます。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;

mgmt_ip.create_report_definition

このメソッドをコールして、既存のレポート定義に新規レポート要素を追加します。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;

mgmt_mp_homepage.add_report

このメソッドをコールして、レポートのターゲット・ホームページの「レポート」サブタブに表示されるレポートを登録します。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);

mgmt_view_util.adjust_tz

この関数をコールして、v_date_inのタイムゾーンをv_from_tzタイムゾーンからv_to_tzタイムゾーンに変換します。

入力

パラメータ 説明

v_date_in

別のタイムゾーンに変換する日付

v_from_tz

変換される日付のタイムゾーン

v_to_tz

日付の変換先のタイムゾーン


出力

新しいタイムゾーンに調整された日付を返します。

コード

FUNCTION ADJUST_TZ(v_date_in  DATE,

                   v_from_tz         VARCHAR2,

                   v_to_tz   VARCHAR2)

RETURN DATE;

PL/SQLタイプ定義

「レポート定義を作成するためのPL/SQLメソッド」に記載されているPL/SQLメソッドを使用するには、3つのPL/SQLタイプが必要です。3つのタイプの定義を次に示します。

MGMT_IP_TARGET_TYPES

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コントロールを使用して他の行にスクロールできます。


PL/SQL文

属性 説明

パラメータ名

oracle.sysman.eml.ip.render.elem.sqlStatementIsPlSql

必須

いいえ

デフォルト値

false

有効値

trueまたはfalse

サマリー

SQL文がPL/SQLかどうか


SQLまたはPL/SQL文

属性 説明

パラメータ名

oracle.sysman.eml.ip.render.elem.sqlStatement。

必須

いいえ。

デフォルト値

<なし>。

有効値

任意の有効なSQL SELECT文。

サマリー

SQL文は、ターゲット、ロケール情報、および開始/終了日の値をオプションでバインドできます。SQL文の書式には、バインドするオプションのバインド変数プレースホルダが含まれている必要があります。

バインド・プレースホルダ

  • ??EMIP_BIND_RESULTS_CURSOR??

    PL/SQL文とともに使用して、表示する結果を含む戻りカーソルをバインドする場合。

  • ??EMIP_BIND_TARGET_GUID??

    SQLまたはPL/SQLとともに使用してターゲットGUIDをバインドする場合。

  • ??EMIP_BIND_START_DATE??

    SQLまたはPL/SQLとともに使用して開始日をバインドする場合。

  • ??EMIP_BIND_END_DATE??

    SQLまたはPL/SQLとともに使用して終了日をバインドする場合。

  • ??EMIP_BIND_TIMEZONE_REGION??

    SQLまたはPL/SQLとともに使用してタイムゾーン・リージョンをバインドする場合。

  • ??EMIP_BIND_LOCALE_COUNTRY??

    SQLまたはPL/SQLとともに使用してロケールの国をバインドする場合。

  • ??EMIP_BIND_LOCALE_LANGUAGE??

    SQLまたはPL/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に設定します。


nullデータ文字列置換

属性 説明

パラメータ名

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文から??EMIP_BIND_PARAM<name>??によってアクセスされます。その他のフィルタ関連パラメータを使用せずに、ユーザーがテキスト入力フィールドから値を入力することを可能にするフィルタが定義されます。


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。

サマリー

filterSqlまたはfilterListによって提供された値をクライアント・ロケールに変換する必要があるかどうかを定義します。


フィルタのヒント・テキスト

属性 説明

パラメータ名

oracle.sysman.eml.ip.render.elem.TableRender.filterTip<name>。

必須

いいえ。

デフォルト値

null。

有効値

英数字のテキスト。

サマリー

ユーザーがマウスをフィルタUI要素の上に移動すると表示される、ツールのヒントのテキストを定義します。


デフォルトのフィルタ名

属性 説明

パラメータ名

oracle.sysman.eml.ip.render.elem.TableRender.filterDefault<name>。

必須

いいえ。

デフォルト値

%


有効値

英数字のテキスト文字列。

サマリー

フィルタの<名前>のデフォルト値を定義します。デフォルト値が指定されていない場合は、%が使用されます。


nullのデフォルトのフィルタ名

属性 説明

パラメータ名

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

有効値

nnは正の整数に正しく解析される任意の文字列です。

サマリー

グラフの表示高さをピクセル単位で設定します。


水平または垂直

属性 説明

パラメータ名

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。

サマリー

凡例を配置する場所をグラフへの相対で指定します。


PL/SQL文

属性 説明

パラメータ名

oracle.sysman.eml.ip.render.elem.sqlStatementIsPlSql。

必須

いいえ。

デフォルト値

false。

有効値

trueまたはfalse。

サマリー

SQL文がPL/SQL文であることを示すにはtrueに設定します。


SQLまたはPL/SQL文

属性 説明

パラメータ名

oracle.sysman.eml.ip.render.elem.sqlStatement。

必須

いいえ。

デフォルト値

<なし>。

有効値

任意の有効なSQL SELECT文またはPL/SQLブロック。

サマリー

SQLまたはPL/SQL文は、ターゲット、ロケール情報、および開始/終了日の値をオプションでバインドできます。文の書式には、バインドするオプションのバインド変数プレースホルダが含まれている必要があります。

バインド・プレースホルダ

  • ??EMIP_BIND_RESULTS_CURSOR??

    PL/SQL文とともに使用して、表示する結果を含む戻りカーソルをバインドする場合。

  • ??EMIP_BIND_TARGET_GUID??

    SQLまたはPL/SQLとともに使用してターゲットGUIDをバインドする場合。

  • ??EMIP_BIND_START_DATE??

    SQLまたはPL/SQLとともに使用して開始日をバインドする場合。

  • ??EMIP_BIND_END_DATE??

    SQLまたはPL/SQLとともに使用して終了日をバインドする場合。

  • ??EMIP_BIND_LOCALE_COUNTRY??

    SQLまたはPL/SQLとともに使用してロケールの国をバインドする場合。

  • ??EMIP_BIND_LOCALE_LANGUAGE??

    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

有効値

nnは正の整数に正しく解析される任意の文字列です。

サマリー

要素の表示幅をピクセル単位で設定します。


Y軸ラベル

属性 説明

パラメータ名

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

有効値

nnは正の整数に正しく解析される任意の文字列です。

サマリー

ピクセル単位でのイメージの幅。


高さ

属性 説明

パラメータ名

oracle.sysman.eml.ip.render.elem.MetDetHeight。

必須

いいえ。

デフォルト値

300

有効値

nnは正の整数に正しく解析される任意の文字列です。

サマリー

ピクセル単位でのイメージの高さ。


凡例の位置

属性 説明

パラメータ名

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 valuesmgmt_ip.create_report_definitionp_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を定義する場合は、次のガイドラインに従うことをお薦めします。

「SQLからのグラフ」および「SQLからの表」要素を使用している場合

推奨されるコーディング・プラクティス

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の将来のリリースに対するコード変更からレポート定義が隔絶され、コードの自己文書化にも役立ちます。