ヘッダーをスキップ
Oracle® OLAP Analytic Workspace Managerのカスタマイズ
11g リリース 2(11.2)
B61364-01
  目次
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

2 Analytic Workspace Managerプラグインの概要

Analytic Workspace Managerプラグインを使用すると、Analytic Workspace ManagerのコンテキストでJavaコードを実行できます。Oracle Analytic Workspace Managerバージョン11.2でサポートされているJavaプラグイン・インタフェースの実装により、OLAPオプションを含むOracle Database 11gリリース2 (11.2)でAnalytic Workspace Managerの機能を拡張できます。

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

Analytic Workspace Managerプラグインの説明

Analytic Workspace Managerには、次のJavaプラグイン・インタフェースがあります。

Analytic Workspace Managerプラグインを使用して、次のような操作を実行するプログラムを実装できます。

Analytic Workspace Managerプラグインでは、次のJava APIを使用できます。

JDBCクラスを使用して、OLAP DMLまたはSQLプロシージャを起動できます。

Analytic Workspace Managerプラグインの有効化

Analytic Workspace Managerには、プラグインを使用するかどうかを指定する構成オプションがあります。プラグインを有効にするには、図2-1に示すように、Analytic Workspace Managerの「ツール」メニューから「構成」を選択します。図2-2に示すように、「構成」ダイアログ・ボックスで「プラグインを有効化」を選択し、プラグインを含むディレクトリを指定します。「OK」をクリックし、Analytic Workspace Managerを終了して再起動します。

図2-1 「ツール」メニューの「構成」項目

図2-1の説明が続きます
「図2-1 「ツール」メニューの「構成」項目」の説明

図2-2に、「プラグインを有効化」が選択され、「プラグイン・ディレクトリ」の値としてpluginが指定された「構成」ダイアログ・ボックスを示します。ディレクトリがOracle_home/olap/awmディレクトリのサブディレクトリである場合(図に示すpluginディレクトリがこれに該当します)を除き、値には、プラグイン・ディレクトリへのフルパスが含まれる必要があります。

図2-2 「プラグインを有効化」が選択された「構成」ダイアログ・ボックス

図2-2の説明は図の下のリンクをクリックしてください。
「図2-2 「プラグインを有効化」が選択された「構成」ダイアログ・ボックス」の説明

Analytic Workspace Managerがプラグインを呼び出す方法

Analytic Workspace Managerでプラグインを有効にした場合、Analytic Workspace Managerは起動時にプラグイン・ディレクトリ内のJARファイルからJavaコードを動的にロードします。JARファイルの内容をロードした後、Analytic Workspace ManagerはAWMPluginViewerPluginまたはEditorPluginインタフェースを実装するクラスを検索します。また、ナビゲーション・ツリーにオブジェクトを追加するaw.xmlcube.xmldimension.xmlおよびschema.xmlファイルも検索します。


注意:

1つのJARファイルに複数のプラグインおよびXMLドキュメントを含めることができます。

Analytic Workspace Managerはプラグインのほとんどのメソッドを呼び出す場合、メソッドにjava.sql.Connectionオブジェクトをconnパラメータとして渡します。Connectionは、Oracle Databaseインスタンスへの現在の接続を表します。

Analytic Workspace ManagerはプラグインにユーザーIDまたはパスワードを渡しません。接続オブジェクトのみを渡します。Analytic Workspace Managerプラグインで許可されるのは、スタンドアロンJavaプログラムを作成することによって実行できる操作のみです。Analytic Workspace Managerがプラグインのメソッドに渡すパラメータの詳細は、「AWMPluginインタフェースの説明」および「ViewerPluginおよびEditorPluginインタフェースの説明」を参照してください。

AWMPluginの呼出し

ユーザーがAnalytic Workspace Managerのナビゲーション・ツリーでオブジェクトを右クリックすると、そのオブジェクトに対して実行できる操作を示したメニューが表示されます。メニューには、オブジェクトに適用されるAWMPluginプラグインによって提供されるオプションも表示されます。AWMPluginは、isSupportedメソッドを使用してツリー内のオブジェクトに適用されるかどうかを示します。ユーザーがナビゲーション・ツリー・オブジェクトを右クリックするたびに、Analytic Workspace Managerは各プラグインのisSupportedメソッドを呼び出すため、isSupportedメソッドは迅速に返される必要があります。

メニューには、プラグインのgetMenuメソッドによって返されたテキストが表示されます。図2-3に、ユーザーがツリーで計算済メジャーを右クリックしたときにAnalytic Workspace Managerで表示されるメニューを示します。メニューには、ViewXMLPluginサンプル・プラグインが含まれます。サンプル・プラグインのコードの詳細は、例3-1を参照してください。

図2-3 ナビゲーション・ツリーの計算済メジャーの右クリックメニュー

図2-3の説明は図の下のリンクをクリックしてください。
「図2-3 ナビゲーション・ツリーの計算済メジャーの右クリックメニュー」の説明

ユーザーがプラグインを選択すると、Analytic Workspace Managerはプラグインのhandleメソッドを呼び出します。handleメソッドによって、プラグインが実行する操作が指定されます。プラグインのrefreshTreeメソッドでは、Analytic Workspace Managerがナビゲーション・ツリーをリフレッシュして、プラグインによって作成された新しいオブジェクトを含めるか、プラグインによって削除されたオブジェクトを削除するかどうかが指定されます。

ViewerPluginまたはEditorPluginの呼出し

「オブジェクト・フォルダでのレポートの作成」で説明するように、特定のXMLドキュメントを使用して、Analytic Workspace Managerのナビゲーション・ツリーの「スキーマ」、「アナリティック・ワークスペース」、「ディメンション」および「キューブ」フォルダにオブジェクトを追加できます。XMLドキュメントに<AWMNode>要素を追加して、ナビゲーション・ツリーにオブジェクトを追加します。<AWMNode>ViewerPluginまたはEditorPluginを指定する場合、Analytic Workspace Managerは、ユーザーが<AWMNode>に対応するナビゲーション・ツリー・オブジェクトを選択したときにプラグインを呼び出します。

<AWMNode>要素のsql属性では、SQL SELECT文を指定できます。Analytic Workspace Managerでは、文の結果がナビゲーション・ツリーのフォルダまたはプロパティ・インスペクタのいずれか、あるいはその両方に表示されます。XMLドキュメントおよびSQL文の作成の詳細は、「オブジェクト・フォルダでのレポートの作成」を参照してください。

プロパティ・インスペクタでの情報の表示を制御したり、選択したナビゲーション・ツリー・オブジェクトのプロパティをユーザーが編集できるようにするには、ViewerPluginまたはEditorPluginを使用できます。プラグインを指定するには、<AWMNode>要素のviewClass属性を使用します。プラグインでは、Oracle OLAP Java APIを使用してOLAPオブジェクトを取得したり、それらの特性を変更できます。プロパティ・インスペクタでの表示のユーザー・インタフェース要素を指定することもできます。

AWMPluginインタフェースの説明

次に、oracle.olap.awm.plugin.AWMPluginインタフェースを示します。

package oracle.olap.awm.plugin

import java.awt.Frame;
import java.sql.Connection;
import java.util.Map;
import oracle.AWXML.AW;

public interface AWMPlugin
{
  boolean isSupported(Connection conn, String type, Object obj, AW aw,
                      Map params);

  String getMenu(Connection conn, String type, Object obj, AW aw, 
                 Map params);

  void handle(Frame parent, Connection conn, String type, Object obj, 
              AW aw, Map params);

  boolean refreshTree(Connection conn, String type, Object obj, AW aw,
                      Map params);
}

ユーザーがナビゲーション・ツリーでオブジェクトを右クリックすると、Analytic Workspace Managerは、AWMPluginインタフェースを実装するクラスのメソッドを、図2-4に示す順序で呼び出します。

図2-4 AWMPluginへの呼出しの順序

図2-4の説明が続きます
「図2-4 AWMPluginへの呼出しの順序」の説明

Analytic Workspace Managerは、最初にisSupportedメソッドを呼び出します。このメソッドによってtrueが返された場合、Analytic Workspace ManagerはgetMenuを呼び出し、右クリック・メニューにgetMenuによって返される値を表示します。ユーザーがメニュー項目を選択すると、Analytic Workspace ManagerはhandleおよびrefreshTreeメソッドを呼び出します。Analytic Workspace ManagerがAWMPluginメソッドに渡す入力パラメータは次のとおりです。

typeおよびobjパラメータの値

AWMPlugin実装のメソッドのtypeパラメータでは、Analytic Workspace Managerはプラグインが起動されたナビゲーション・ツリー・オブジェクトのタイプを識別するラベルをプラグインに渡します。メソッドのobjパラメータでは、Analytic Workspace ManagerはObjectを渡します。これは、java.lang.StringまたはOLAPメタデータ・オブジェクトです。

プラグインではtype値を使用して、同じメタデータ・オブジェクトに関連付けられたナビゲーション・ツリー・オブジェクトを区別できます。たとえば、「レベル」、「階層」など、「ディメンション」フォルダ内のすべてのフォルダ・オブジェクトに対して、Analytic Workspace Managerはobjパラメータとして同じMdmPrimaryDimensionオブジェクトを渡しますが、各フォルダ・オブジェクトごとに異なるtypeラベルを渡します。

XMLドキュメントによって追加するカスタム・オブジェクトは、ナビゲーション・ツリーのXMLドキュメントで指定したレベルに表示されます。たとえば、dimension.xmlドキュメントの最上位の<AWMNode>は、アナリティック・ワークスペースの「ディメンション」フォルダに表示されます。<AWMNode>要素によって指定されたAWMPlugin実装の場合、typeパラメータ値には接頭辞AWMTree_があり、その後に親の<AWMNode>name属性の値が続きます。objパラメータ値は、<AWMNode>type属性のランタイム値です。

表2-1に、選択されたナビゲーション・ツリー・オブジェクトについて、Analytic Workspace Managerがプラグインに渡すtypeパラメータ値とobjパラメータ・オブジェクトを示します。ナビゲーション・ツリー・オブジェクト列のオブジェクトのインデントは、ツリーの階層を示します。イタリック体のテキストは、変数オブジェクト名を示します。objパラメータ・オブジェクトは、StringオブジェクトまたはOLAPメタデータ・オブジェクトです。AWオブジェクトはoracle.olapi.metadata.deployment.AWオブジェクトです。MdmStandardDimensionMdmCubeなどのその他のメタデータ・オブジェクトは、oracle.olapi.metadata.mdmパッケージのクラスです。レポート・オブジェクトとその下のすべてのオブジェクトのタイプは同じです。

表2-1 ナビゲーション・ツリー・オブジェクトのtype値およびオブジェクト

ナビゲーション・ツリー・オブジェクト typeパラメータ値 objパラメータ・オブジェクト

データベース

Databases

Databases

データベース名

DATABASE

データベース識別子

スキーマ

SCHEMA_FOLDER

データベース識別子

スキーマ名

SCHEMA

スキーマ名

アナリティック・ワークスペース

WORKSPACE_FOLDER

スキーマ名

アナリティック・ワークスペース名

WORKSPACE

AW

ディメンション

DIMENSION_FOLDER

AW

ディメンション名

DIMENSION

MdmStandardDimensionまたはMdmTimeDimension

レベル

DIMENSION_LEVEL_FOLDER

MdmStandardDimensionまたはMdmTimeDimension

レベル名

DIMENSION_LEVEL

MdmDimensionLevel

階層

DIMENSION_HIERARCHY_FOLDER

MdmStandardDimensionまたはMdmTimeDimension

階層名

DIMENSION_HIERARCHY

MdmLevelHierarchyまたはMdmValueHierarchy

属性

DIMENSION_ATTRIBUTE_FOLDER

MdmStandardDimensionまたはMdmTimeDimension

属性名

DIMENSION_ATTRIBUTE

MdmBaseAttribute

マッピング

DIMENSION_MAP

MdmStandardDimensionまたはMdmTimeDimension

ビュー

DIMENSION_VIEW_FOLDER

MdmStandardDimensionまたはMdmTimeDimension

ビュー名

DIMENSION_VIEW

MdmStandardDimensionまたはMdmTimeDimension

データ・セキュリティ

DATA_SECURITY

MdmStandardDimensionまたはMdmTimeDimension

dimension.xmlオブジェクト

AWMTree_parent_node_name

フォルダの場合、<AWMNode>の名前。SQL問合せによって返される値の場合、ランタイム・オブジェクト名。

キューブ

CUBE_FOLDER

AW

キューブ名

CUBE

MdmCube

メジャー

CUBE_MEASURE_FOLDER

MdmCube

メジャー名

CUBE_MEASURE

MdmBaseMeasure

計算済メジャー

CUBE_DERIVED_MEASURE_FOLDER

MdmCube

計算済メジャー名

CUBE_DERIVED_MEASURE

MdmDerivedMeasure

マッピング

CUBE_MAP

MdmCube

ビュー

CUBE_VIEW_FOLDER

MdmCube

ビュー名

CUBE_VIEW

MdmCube

キューブ・スクリプト

CUBE_SCRIPT_FOLDER

MdmCube

キューブ・スクリプト名

CUBE_SCRIPT

Script_name

データ・セキュリティ

DATA_SECURITY

MdmCube

cube.xmlオブジェクト

AWMTree_parent_node_name

フォルダの場合、<AWMNode>の名前。SQL問合せによって返される値の場合、ランタイム・オブジェクト名。

メジャー・フォルダ

MEASURE_FOLDER_FOLDER

AW

メジャー・フォルダ名

Measure_folder_name

MdmOrganizationalSchema

言語

LANGUAGE

Languages

aw.xmlオブジェクト

AWMTree_parent_node_name

フォルダの場合、<AWMNode>の名前。SQL問合せによって返される値の場合、ランタイム・オブジェクト名。

OLAP DMLプログラム

AWMTREE_OLAP DML Programs

OLAP DML Programs

プログラム名

AWMTREE_OLAP DML Programs

Program_name

メンテナンス・スクリプト

MAINTENANCE_SCRIPT_FOLDER

スキーマ名

スクリプト名

MAINTENANCE_SCRIPT

スクリプト名

メンテナンス・レポート

AWMTREE_Maintenance Reports

メンテナンス・レポート

Maintenance_report_name

AWMTREE_maintenance_report_name

Maintenance_report_name

schema.xmlオブジェクト

AWMTree_parent_node_name

フォルダの場合、<AWMNode>の名前。SQL問合せによって返される値の場合、ランタイム・オブジェクト名。

データ・セキュリティ・ロール

ACL_DOCUMENT_FOLDER

データ・セキュリティ・ロール

セキュリティ・ロール名

セキュリティ・ロール名

セキュリティ・ロール名

レポート

AWMTREE_Reports

レポート

レポート名

AWMTREE_report_name

レポート名


AWMPluginのparams Mapの要素

params Mapには、現在選択されているナビゲーション・ツリー・オブジェクトに関する情報が含まれます。表2-2「非カスタム・オブジェクトのparams Mapのキーおよび値」および表2-3「カスタム・オブジェクトのparams Mapのキーおよび値」に、AWMPluginMapの要素のキーおよび値の説明を示します。キーはStringオブジェクトです。

「データベース」フォルダのparams Mapには、DATASOURCEDATAPROVIDERまたはGETDATAPROVIDERキーはありません。上位レベルのナビゲーション・ツリー・オブジェクト(個々のアナリティック・ワークスペースの上のオブジェクト)のparams Mapオブジェクトは、ユーザーがOLAPメタデータを必要とするツリー・オブジェクトを選択するまでは、DATAPROVIDERキーに対してnull値を持ちます。これらの例外を除き、ナビゲーション・ツリー・オブジェクトのparams Mapは、表に示すキーおよび値を持ちます。

非カスタム・オブジェクトのparams Map要素

表2-2に、非カスタム・ナビゲーション・ツリー・オブジェクトのparams Mapの要素のキーおよび値を示します。カスタム・ナビゲーション・ツリー・オブジェクトは、SQLレポートXMLドキュメントの<AWMNode>要素によって指定され、接頭辞AWMTreeで始まるタイプを持ちます。

表2-2 非カスタム・オブジェクトのparams Mapのキーおよび値

キー

AWM_VERSION

Analytic Workspace Managerのバージョン番号であるString

DATAPROVIDER

セッションのメタデータ・プロバイダであるoracle.olapi.metadata.mdm.MdmMetadataProvider

BIND_MAP

空のMap

DATASOURCE

java.sql.DataSource

GETDATAPROVIDER

oracle.olap.awm.plugin.OLAPDataProviderインタフェースの実装。インタフェースではMdmMetadataProviderを取得するメソッドを指定します。


カスタム・オブジェクトのparams Map要素

表2-3に、カスタム・ナビゲーション・ツリー・オブジェクトのparams Map要素のキーおよび値を示します。カスタム・オブジェクトは、SQLレポートXMLドキュメントの<AWMNode>要素によって指定されます。

表2-3 カスタム・オブジェクトのparams Mapのキーおよび値

キー

AWM_VERSION

Analytic Workspace Managerのバージョン番号であるString

DATAPROVIDER

セッションのメタデータ・プロバイダであるoracle.olapi.metadata.mdm.MdmMetadataProvider

BIND_MAP

<AWMNode>要素とこの要素の親およびAnalytic Workspace Managerのバインド変数を含むjava.util.Map

DATASOURCE

java.sql.DataSourceオブジェクト。

GETDATAPROVIDER

oracle.olap.awm.plugin.OLAPDataProviderインタフェースの実装。インタフェースではMdmMetadataProviderを取得するメソッドを指定します。

ISFOLDER

プラグインを指定する<AWMNode>がフォルダの場合はTRUE、フォルダでない場合はFALSEString

NODE_TYPE

ネストされた<AWMNode>の場合、親の<AWMNode>の名前のString。フォルダの<AWMNode>の場合、ノードの名前。

TYPE

プラグインを指定する<AWMNode>type属性の値のString


BIND_MAP Mapには、現在選択されているナビゲーション・ツリー・オブジェクトに関連付けられたバインド変数が含まれます。表2-4に、BIND_MAP Mapのキーおよび値を示します。

このMapには、<AWMNode>と親の<AWMNode>のSQL文内のバインド変数が含まれます。また、ナビゲーション・ツリーで現在選択されているオブジェクトの他のバインド変数も含まれます。

キーはStringオブジェクトです。バインド変数は、カスタム・ナビゲーション・ツリー・オブジェクトの<AWMNODE>要素のtype属性で指定されるか、Analytic Workspace Managerによって内部で設定されます。プラグインは、BIND_MAP Mapからバインド変数のランタイム値を取得します。バインド・マップMapのキーおよび値の例は、表2-6を参照してください。


注意:

プラグインのバインド変数のキーを参照する場合は、{owner}{measureobj}または{dimension_name}のように、小文字を使用してください。

表2-4 BIND_MAP Mapのキーおよび値

キー

aw_name

現在選択されているアナリティック・ワークスペースの名前を含むString

owner

現在選択されているアナリティック・ワークスペースの所有者の名前を含むString

schema

現在選択されているスキーマの所有者の名前を含むString

user

データベースに接続されているユーザーの名前を含むString

その他のバインド変数

それぞれバインド変数をキーとして持ち、バインド変数のランタイム値を値として持つ1つ以上の要素。

他のバインド変数のキーの例として、dimension_nameおよびcube_nameがあります。Mapに含めることができるその他のバインド変数の例は、「AWMPluginのparams Map要素の例」および第3章「Analytic Workspace Managerプラグインの例」の例を参照してください。


AWMPluginのparams Map要素の例

表2-5および表2-6に、カスタム・オブジェクトのparams Mapのキーおよび値の例を示します。DATAPROVIDERおよびDATASOURCEキーの値を除き、すべての値はStringオブジェクトです。

表2-6に、ユーザーが図3-2に示すように「MyDims」フォルダのCUSTOMERディメンションを右クリックしたときに、Analytic Workspace ManagerがDeleteDimPluginのメソッドに渡すparams Mapの要素を示します。「MyDims」フォルダは、例3-7のaw.xmlドキュメントで作成されます。

図には、DeleteDimPluginによって表示されるメニューが示されています。図のプロパティ・インスペクタには、DimEditorPluginの出力が示されます。これは、ユーザーが「MyDims」フォルダのディメンションを選択すると、そのプラグインもアクティブ化されるためです。

params Mapから値を取得する例は、例3-2DeleteDimPluginクラスのisSupportedメソッドにある次の行です。

Object nodeType = params.get("TYPE");

表2-5 DeleteDimPluginのparams Mapのキーおよび値

キー 説明

AW

AW

現在のアナリティック・ワークスペース・オブジェクト。

AWM_VERSION

11.2.0.2.0

Analytic Workspace Managerのバージョン番号。

BIND_MAP

Map

現在のオブジェクトに関連するバインド変数のコンテナ。

DATAPROVIDER

MdmMetadataProvider

セッションのメタデータ・プロバイダ。

DATASOURCE

DataSource

現在のデータ・ソース。

GETDATAPROVIDER

OLAPDataProvider

OLAPDataProviderインタフェースの実装。

ISFOLDER

FALSE

<AWMNode>がフォルダでないことを示します。

NODE_TYPE

MyDims

親の<AWMNode>の名前。

TYPE

dimobj

プラグインを指定する<AWMNode>のタイプ。


表2-6に、params MapBIND_MAPキーの値であるMapの要素を示します。BIND_MAP Mapから値を取得する例は、例3-2DeleteDimPluginクラスのhandleメソッドにある次の行です。

Map bindMap = (Map)params.get("BIND_MAP");
...
String owner = (String)bindMap.get("owner");

表2-6 DeleteDimPluginのBIND_MAP Mapのキーおよび値

キー 説明

aw_name

GLOBAL

現在のアナリティック・ワークスペースの名前。

dimobj

CUSTOMER

「MyDims」フォルダで現在選択されているディメンションのランタイム値。

owner

GLOBAL

アナリティック・ワークスペースの所有者の名前。

schema

GLOBAL

現在のスキーマの名前。

user

global

現行ユーザーの名前。


ViewerPluginおよびEditorPluginインタフェースの説明

「オブジェクト・フォルダでのレポートの作成」で説明するように、特定のXMLドキュメントを使用して、Analytic Workspace Managerのナビゲーション・ツリーの「スキーマ」、「アナリティック・ワークスペース」、「ディメンション」および「キューブ」フォルダにオブジェクトを追加できます。XMLドキュメントに<AWMNode>要素を追加して、ナビゲーション・ツリーにオブジェクトを追加します。

<AWMNode>要素のsql属性では、SQL SELECT文を指定できます。Analytic Workspace Managerでは、文の結果がナビゲーション・ツリーのフォルダまたはプロパティ・インスペクタのいずれか、あるいはその両方に表示されます。XMLドキュメントおよびSQL文の作成の詳細は、「オブジェクト・フォルダでのレポートの作成」を参照してください。

<AWMNode>要素のviewClass属性では、データベース・オブジェクトを表示または編集するためのJavaプラグインを指定できます。リレーショナル・オブジェクトまたはOLAPオブジェクトのビューアまたはエディタを追加できます。リレーショナル・オブジェクトには表、マテリアライズド・ビューなどが含まれ、OLAPオブジェクトには、ディメンション、キューブなどが含まれます。ビューアを追加するには、viewClass属性でViewerPluginインタフェースの実装を指定します。エディタを追加するには、viewClass属性でEditorPluginインタフェースの実装を指定します。ビューアまたはエディタ・プラグインは、プロパティ・インスペクタに表示されます。

ViewerPluginインタフェースの説明

次に、oracle.olap.awm.plugin.ViewerPluginインタフェースを示します。

package oracle.olap.awm.plugin

import java.sql.Connection;
import java.util.Map;
import javax.swing.JPanel;

public interface ViewerPlugin
{
  public boolean isViewerForType(Connection conn, String name) 
    throws Exception;

  public JPanel getPanel(Connection conn, String name, Map params)
    throws Exception;

  public void cleanup(String name);
}

Analytic Workspace ManagerユーザーがViewerPluginに関連付けられたナビゲーション・ツリー・オブジェクトを選択すると、Analytic Workspace Managerは図2-5に示す順序でViewerPluginのメソッドを呼び出します。

図2-5 ViewerPluginへの呼出しの順序

図2-5の説明が続きます
「図2-5 ViewerPluginへの呼出しの順序」の説明

Analytic Workspace Managerは最初にisViewerForTypeメソッドを呼び出し、次のパラメータを渡します。

  • conn。Oracle Databaseインスタンスへの現在の接続を表すjava.sql.Connectionオブジェクトです。

  • nameviewClass属性を持つ<AWMNode>の親である<AWMNode>の名前を含むStringです。

プラグインによってtrueが返された場合、Analytic Workspace ManagerはgetPanelメソッドを呼び出し、同じconnおよびnameパラメータに加えて、次のパラメータを渡します。

  • params。現在選択されているナビゲーション・ツリー・オブジェクトに関する情報を含むjava.util.Mapオブジェクトです。情報には、viewClass属性を持つ<AWMNode>要素の属性および親の<AWMNode>のランタイム値が含まれます。プラグインでは、データベースから表示または取得するデータの指定にこの情報を使用できます。Mapのキーおよび値は、表2-7に示されています。Mapキーおよび値の詳細は、「ViewerPluginまたはEditorPluginのparams Mapの要素」を参照してください。

ユーザーが異なるナビゲーション・ツリー・オブジェクトを選択すると、Analytic Workspace Managerはプラグインのcleanupメソッドを呼び出し、同じnameパラメータを渡します。このメソッドで、プラグインに必要なクリーンアップを実行できます。

EditorPluginインタフェースの説明

EditorPluginインタフェースはViewerPluginインタフェースを拡張します。次に、oracle.olap.awm.plugin.EditorPluginインタフェースを示します。

package oracle.olap.awm.plugin

import java.awt.Component;
import java.sql.Connection;
import java.util.Map;

public interface EditorPlugin extends ViewerPlugin
{
  public void setValueChanged(Connection conn, String name, Map params,
    PanelChanged parent);

  public boolean validate(Connection conn, Component parent, String name, 
    Map params) throws Exception;

  public boolean save(Connection conn, Component parent, String name,
    Map params) throws Exception;

  public void revert(Connection conn, Component parent, String name, 
    Map params) throws Exception;

  public void showHelp(Connection conn, Component parent, String name,
    Map params) throws Exception;
}

図2-6、「EditorPluginへの呼出しの順序」に示すように、EditorPluginの場合、Analytic Workspace Managerは最初にisViewerForTypesetValueChangedおよびgetPanelメソッドを呼び出します。EditorPluginの表示の例については、図3-11を参照してください。

ユーザーがプロパティ・インスペクタで変更を加えると、「適用」および「元に戻す」ボタンがアクティブになります。ユーザーが「適用」をクリックすると、Analytic Workspace ManagerはEditorPluginvalidateメソッドを呼び出します。値が有効な場合、Analytic Workspace Managerはsaveメソッドを呼び出します。ユーザーが「元に戻す」をクリックすると、Analytic Workspace Managerはrevertを呼び出します。ユーザーが「ヘルプ」ボタンをクリックすると、Analytic Workspace ManagerはshowHelpを呼び出します。

EditorPluginのすべてのメソッドにgetPanelメソッドと同じconnnameおよびparamパラメータがあります。これらのパラメータについては、「ViewerPluginおよびEditorPluginインタフェースの説明」を参照してください。メソッドには、次の追加のパラメータもあります。

  • parentsetValueChangedメソッドの場合、oracle.olap.awm.plugin.PanelChangedインタフェースの実装になります。このインタフェースでは、1つのメソッドpublic void changed();を指定します。ユーザーがEditorPluginの編集フィールドを操作する場合、EditorPluginは常にPanelChangedオブジェクトのchangedメソッドを呼び出す必要があります。その他のEditorPluginメソッドの場合、parentパラメータは親コンポーネントになります。

図2-6 EditorPluginへの呼出しの順序

図2-6の説明が続きます
「図2-6 EditorPluginへの呼出しの順序」の説明

ViewerPluginまたはEditorPluginのparams Mapの要素

ViewerPluginまたはEditorPluginparams Mapには、BIND_MAP Mapは含まれません。バインド変数は、params Mapのキーです。表2-7に、ViewerPluginまたはEditorPluginMapの要素のキーおよび値の説明を示します。

表2-7 ViewerPluginまたはEditorPluginのparams Mapのキーおよび値

キー

AW

oracle.olapi.metadata.deployment.AW

aw_name

現在選択されているアナリティック・ワークスペースの名前を含むString

DATAPROVIDER

セッションのメタデータ・プロバイダであるoracle.olapi.metadata.mdm.MdmMetadataProviderオブジェクト。

DATASOURCE

java.sql.DataSourceオブジェクト。

ISFOLDER

プラグインを指定する<AWMNode>がフォルダの場合はTRUE、フォルダでない場合はFALSEString

owner

現在選択されているアナリティック・ワークスペースの所有者の名前を含むString

schema

現在選択されているスキーマの所有者の名前を含むString

TYPE

プラグインを指定する<AWMNode>type属性の値のString

user

データベースに接続されているユーザーの名前を含むString

その他のバインド変数

それぞれバインド変数をキーとして持ち、バインド変数のランタイム値を値として持つ1つ以上の要素。XMLドキュメントの<AWMNode>viewClass属性によって指定されるプラグインの場合、バインド変数の数は、<AWMNode>および親の<AWMNode>のSQL文内のバインド変数の数によって異なります。

他のバインド変数のキーの例として、dimension_nameおよびcube_nameがあります。Mapに含めることができるその他のバインド変数の例は、「ViewerPluginおよびEditorPluginのparams Map要素の例」および第3章「Analytic Workspace Managerプラグインの例」の例を参照してください。


ViewerPluginおよびEditorPluginのparams Map要素の例

表2-8に、ViewerPluginまたはEditorPluginparams Mapのキーおよび値の例を示します。DATAPROVIDERおよびDATASOURCEキーの値を除き、すべての値はStringオブジェクトです。

ViewerPluginのparams Map要素の例

例3-5cube.xmlドキュメントには、MyMeasuresという名前の親の<AWMNode>measureobjのタイプおよびバインド変数cube_nameを参照するSQL文があります。子の<AWMNode>には、measureviewタイプ、およびMeasureViewerPluginプラグインを指定するviewClass属性があります。

表2-8に、ユーザーが図3-7に示すように「MyMeasures」フォルダのUNITSメジャーを選択したときに、Analytic Workspace ManagerがMeasureViewerPluginのメソッドに渡すparams Mapの要素を示します。プロパティ・インスペクタには、プラグインの出力(単にメジャーの名前)が表示されます。

例3-6MeasureViewerPluginクラスは、getPanelメソッドの次の行のバインド変数の値を取得します。

measureobj = params.get("measureobj");

表2-8 MeasureViewerPluginのparams Mapのキーおよび値

キー 説明

AW

AW

現在のアナリティック・ワークスペース・オブジェクト。

aw_name

GLOBAL

現在のアナリティック・ワークスペースの名前。

cube_name

UNITS_CUBE

現在のキューブの名前。

DATAPROVIDER

MdmMetadataProvider

セッションのメタデータ・プロバイダ。

DATASOURCE

DataSource

現在のデータ・ソース。

ISFOLDER

FALSE

ナビゲーション・ツリー・オブジェクトがフォルダでないことを示します。

measureobj

UNITS

現在のメジャーの名前。

NODE_TYPE

MyMeasures

親の<AWMNode>の名前。

owner

GLOBAL

アナリティック・ワークスペースの所有者の名前。

schema

GLOBAL

現在のスキーマの名前。

TYPE

measureview

<AWMNode>のタイプ。

user

global

現行ユーザーの名前。


EditorPluginのparams Map要素の例

表2-9に、ユーザーが図3-11に示すように「MyDims」フォルダのCHANNELディメンションを選択したときに、Analytic Workspace ManagerがDimEditorPluginのメソッドに渡すparams Mapの要素を示します。図のプロパティ・インスペクタには、DimEditorPluginの出力があります。

params Mapから値を取得する例は、例3-9DimEditorPluginクラスのgetMetadataProviderメソッドにある次の行です。

Object dp = params.get("DATAPROVIDER");

params Mapから値を取得するもう1つの例は、DimEditorPluginクラスのgetDimensionメソッドにある次の行です。

Object obj = null;
...
obj = params.get("dimobj");

表2-9 DimEditorPluginのparams Mapのキーおよび値

キー 説明

AW

AW

現在のアナリティック・ワークスペース・オブジェクト。

aw_name

GLOBAL

現在のアナリティック・ワークスペースの名前。

DATAPROVIDER

MdmMetadataProvider

セッションのメタデータ・プロバイダ。

DATASOURCE

DataSource

現在のデータ・ソース。

dimobj

CHANNEL

「MyDims」フォルダで現在選択されているディメンションのランタイム値。

ISFOLDER

TRUE

ナビゲーション・ツリー・オブジェクトがフォルダであることを示します。

NODE_TYPE

MyDims

親の<AWMNode>の名前。

owner

GLOBAL

アナリティック・ワークスペースの所有者の名前。

schema

GLOBAL

現在のスキーマの名前。

TYPE

dimobj

<AWMNode>のタイプ。

user

global

現行ユーザーの名前。


プラグイン作成の手順

Analytic Workspace Managerプラグインの作成の前提条件は次のとおりです。


注意:

JDK 1.5でコンパイルされたプラグインのみが11gリリース2 (11.2)のAnalytic Workspace Managerと互換性があります。

Analytic Workspace Managerプラグインを作成するには、次の手順を実行します。

  1. プラグイン・インタフェースを実装するクラスを作成します。

    • AWMPluginの場合は、次の手順を実行します。

      • isSupportedメソッドで、プラグインを適用するナビゲーション・ツリーのオブジェクトを指定します。このメソッドが迅速に返されるようにします。

      • getMenuメソッドで、プラグインがサポートするナビゲーション・ツリー・オブジェクトの右クリック・メニューに表示されるテキストが返されるようにします。

      • handleメソッドに、プラグインが実行する操作のコードを含めます。

      • refreshTreeメソッドで、ナビゲーション・ツリーをリフレッシュするかどうかを指定するブールが返されるようにします。

    • ViewerPluginの場合は、次の手順を実行します。

      • isViewerForTypeメソッドで、プラグインを適用するナビゲーション・ツリー・オブジェクトのタイプを指定します。

      • getPanelメソッドで、それらのオブジェクトに対する操作を表示および指定するアナリティック・ワークスペースのユーザー・インタフェース要素が作成されるようにします。

      • cleanupメソッドで、プラグインに必要なクリーンアップを実行します。

    • EditorPluginの場合は、ViewerPluginの手順を実行し、次の手順を追加します。

      • setValueChangedメソッドで、Analytic Workspace ManagerからPanelChangedオブジェクトを格納します。プロパティ・インスペクタの表示を更新する必要がある場合は、常にPanelChangedchangedメソッドを呼び出します。

      • validateメソッドで、ユーザーが加えたすべての変更を検証します。

      • saveメソッドで、変更を加えるために必要な操作を実行し、現在のTransactionをコミットして変更内容を保存します。

      • revertメソッドで、変更前の状態のオブジェクトを表示します。

  2. JDK 1.5を使用して、プラグインおよびプラグインが使用するその他のすべてのクラスをコンパイルします。

  3. プラグイン、XMLドキュメントおよびその他のクラスをJARファイルにデプロイします。同じJARファイルに複数のプラグインを含めることができます。

  4. JARファイルをプラグイン・ディレクトリに置きます。

  5. Analytic Workspace Managerを起動します。


注意:

Analytic Workspace Managerは、起動時にのみJARファイルの内容をロードします。このため、新規または更新バージョンのJARファイルをプラグイン・ディレクトリに置く場合は、Analytic Workspace Managerを再起動する必要があります。

ViewerPluginまたはEditorPluginを使用するには、通常、次の手順を実行します。

使用可能なプラグインの説明

Analytic Workspace Managerに追加するプラグインに関する情報は、awmplugin.xmlドキュメントを作成することによって提供できます。このXMLドキュメントで、各プラグインの名前、バージョン番号および説明を記述できます。Analytic Workspace Managerでは、ユーザーが「ヘルプ」メニューの「バージョン情報」を選択した後に「プラグイン」タブを選択すると、この情報がプラグインのステータスとともに表示されます。

プラグインの説明用のXMLドキュメントの作成

  1. awmplugin.xmlという名前のテキスト・ファイルを作成します。

  2. ファイルの先頭に次のようなXML宣言を記述します。

    <?xml version="1.0" encoding="utf-8"?>
    

    サイトに適したエンコーディングを指定します。

  3. 「参照: プラグインの説明の要素」の説明に従って、プラグイン説明用のXMLドキュメントを入力します。

  4. <Plugin>要素のname属性にプラグインの名前を入力します。version属性にプラグインのバージョン番号を入力します。class属性にプラグインを含むクラスを入力します。<Description>要素にプラグインの説明を入力します。

  5. プラグイン・ディレクトリに、awmplugin.xmlドキュメントを含むJARファイルを作成します。または、「オブジェクト・フォルダでのレポートの作成」で説明したXMLドキュメントまたはプラグインを含むJARファイルにawmplugin.xmlドキュメントを追加することもできます。

サンプルのawmplugin.xmlファイルについては、「プラグインの説明の例」を参照してください。

参照: プラグインの説明の要素

使用可能なプラグインを説明するXMLドキュメントの形式は、例2-1に示すようになります。

例2-1 プラグイン説明用のXML構造

<AWMPlugins>
  <Plugin>
    <Description>
         .
         .
         .

<AWMPlugins>

Analytic Workspace Managerで使用可能なJavaプラグインに関する情報を含むものとしてこのドキュメントを識別するルート要素。

含まれる項目

<Plugin>

属性

なし

<Plugin>

プラグインに関する情報が含まれます。

含まれる項目

<Description>

属性

<Plugin>には次の属性があります。

  • name: プラグインの名前。

  • version: プラグインのバージョン番号。

  • class: プラグインを実装するJavaクラス。

<Description>

プラグインの説明が含まれます。

含まれる項目

なし

属性

なし