OLAP Analytic Workspace Managerのカスタマイズ

11gリリース2 (11.2)

B61364-01(原本部品番号:E17237-01)

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1XMLドキュメントによるカスタマイズ

- SQLレポートの説明

- SQLレポート用XMLドキュメントの作成

- 単純なレポートの例

- レポート・フォルダの作成

- バインド変数を使用したレポートの内容の制限

- オブジェクト・フォルダでのレポートの作成

- 参照: SQLレポートの要素

- <AWMTree>

- <AWMNode>

- <ShowIfQueryTrue>

- 計算テンプレートの説明

- 計算用XMLドキュメントの作成

- 単純な計算テンプレートの例

- 計算へのオプションの追加

- より複雑な計算テンプレートの作成

- 参照: 計算の要素

- <AWMCalcs>

- <Calc>

- <CalcOptional>

- <CalcOptionalDefinitions>

- <Category>

- <Item>

- <Param>

- <Params>

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

- Analytic Workspace Managerプラグインの説明

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

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

- AWMPluginの呼出し

- ViewerPluginまたはEditorPluginの呼出し

- AWMPluginインタフェースの説明

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

- AWMPluginのparams Mapの要素

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

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

- AWMPluginのparams Map要素の例

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

- ViewerPluginインタフェースの説明

- EditorPluginインタフェースの説明

- ViewerPluginまたはEditorPluginのparams Mapの要素

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

- ViewerPluginのparams Map要素の例

- EditorPluginのparams Map要素の例

- プラグイン作成の手順

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

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

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

- <AWMPlugins>

- <Plugin>

- <Description>

3 Analytic Workspace Managerプラグインの例

- サンプル・クラスおよびXMLドキュメントの可用性

- AWMPluginの例

- ViewXMLPluginの例

- DeleteDimPluginの例

- ViewerPluginおよびEditorPluginの例

- LevelViewerPluginの例

- MeasureViewerPluginの例

- CubeViewerPluginの例

- DimEditorPluginの例

- プラグインの説明の例

索引

例一覧

- 1-1 My User Viewsレポートの作成

- 1-2 「My SQL Reports」フォルダの作成

- 1-3 SELECT文へのビューの名前の引渡し

- 1-4 レポートにアイコンを含める

- 1-5 レポートの基本的なXML構造

- 1-6 割引および平均計算テンプレートの作成

- 1-7 1つの計算へのオプションの追加

- 1-8 複数の計算へのオプションの追加

- 1-9 AWMCalcsドキュメントの例

- 1-10 計算の基本的なXML構造

- 1-11 オプションを含む計算のXML構造

- 1-12 選択リストを含む計算のXML構造

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

- 3-1 ViewXMLPluginクラス

- 3-2 DeleteDimPluginクラス

- 3-3 dimension.xmlドキュメントの作成

- 3-4 LevelViewerPluginクラス

- 3-5 cube.xmlドキュメントの作成

- 3-6 MeasureViewerPluginクラス

- 3-7 aw.xmlドキュメントの作成

- 3-8 CubeViewerPluginクラス

- 3-9 DimEditorPluginクラス

- 3-10 awmplugins.xmlドキュメントの作成

図一覧

- 1-1 レポートの表示

- 1-2 フォルダ内のレポートの編成

- 1-3 レポートの内容の変更

- 1-4 「GLOBAL」スキーマ・フォルダのレポート

- 1-5 新規計算のリスト

- 1-6 新規テンプレートの表示

- 1-7 計算へのオプションの適用

- 1-8 より多くの新規計算のリスト

- 1-9 計算テンプレートの選択リスト

- 2-1 「ツール」メニューの構成アイテム

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

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

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

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

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

- 3-1 ViewXMLPluginによって表示されるダイアログ・ボックス

- 3-2 DeleteDimPluginによって表示される右クリック・メニュー

- 3-3 DeleteDimPluginによって表示されるダイアログ・ボックス

- 3-4 dimension.xmlのMyLevels <AWMNode>の結果

- 3-5 LevelViewerPluginの結果

- 3-6 cube.xmlのMyMeasures <AWMNode>の結果

- 3-7 MeasureViewerPluginの結果

- 3-8 aw.xmlのMyCubes <AWMNode>の結果

- 3-9 CubeViewerPluginの結果

- 3-10 aw.xmlのMyDims <AWMNode>の結果

- 3-11 DimEditorPluginの結果

- 3-12 aw.xmlのMyDimsの下のMyLevels <AWMNode>の結果

- 3-13 aw.xmlのMyLevels <AWMNode>のネストされた<AWMNode>の結果

- 3-14 「バージョン情報」ダイアログ・ボックスの「プラグイン」タブ

表一覧

- 1-1 ui属性のパラメータ

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

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

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

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

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

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

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

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

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

Oracle® OLAP

Analytic Workspace Managerのカスタマイズ

11gリリース2 (11.2)

B61364-01(原本部品番号:E17237-01)

2010年8月

Oracle OLAP Analytic Workspace Managerのカスタマイズ, 11gリリース2(11.2)

B61364-01

Copyright (C) 2006, 2010, Oracle and/or its affiliates. All rights reserved.

原本著者: David McDermid

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアを危険が伴うアプリケーションで使用する際、このソフトウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

このソフトウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

Oracle Analytic Workspace Managerバージョン11.2では、カスタム・オブジェクトおよびメニューをユーザー・インタフェースに追加できます。次のことを行うことによって、Analytic Workspace Managerをカスタマイズできます。

- ナビゲーション・ツリーへのカスタム・レポートおよび計算テンプレートの追加。

- ユーザーがナビゲーション・ツリー・オブジェクトを右クリックしたときに表示されるメニューへの選択肢の追加。

- リレーショナル・データベース・オブジェクトまたはOLAPオブジェクト、あるいはその両方を表示または編集するためのグラフィカル・ユーザー・インタフェース要素の提供。

第1章「XMLドキュメントによるカスタマイズ」では、XMLドキュメントを使用してナビゲーション・ツリーにレポート・テンプレートおよび計算テンプレートを追加する方法について説明します。また、XMLドキュメント内でAnalytic Workspace ManagerのJavaプラグインを指定する方法についても説明します。

第2章「Analytic Workspace Managerプラグインの概要」では、Analytic Workspace ManagerでサポートされるJavaプラグイン・インタフェースについて説明し、プラグインを作成する方法を示します。プラグインを使用すると、Analytic Workspace Managerのナビゲーション・ツリー・オブジェクトの右クリック・メニューに項目を追加できます。Analytic Workspace Managerのプロパティ・インスペクタに表示されるビューアまたはエディタ・プラグインを提供することもできます。

このマニュアルでは、Analytic Workspace ManagerのXMLおよびJavaプラグイン・インタフェースについて説明し、これらの実装の簡単な例を示します。

ここでは、次の項目について説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

このドキュメントは、XMLドキュメントまたはJavaプラグインを使用してOLAPオプションを含むOracle Database 11gリリース2 (11.2)のAnalytic Workspace Managerの機能を拡張するXMLまたはJavaの開発者を対象としています。

ドキュメントのアクセシビリティについて

オラクル社は、障害のあるお客様を含む、すべてのお客様にオラクル社の製品、サービスおよびサポート・ドキュメントをご利用いただけることを目標としています。 オラクル社のドキュメントには、ユーザーが障害支援技術を使用して情報を利用できる機能が組み込まれています。 HTML形式のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマークアップされています。 標準規格は改善されつつあります。オラクル社はドキュメントをすべてのお客様がご利用できるように、市場をリードする他の技術ベンダーと積極的に連携して技術的な問題に対応しています。 オラクル社のアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/accessibility/を参照してください。

ドキュメント内のサンプル・コードのアクセシビリティについて

スクリーン・リーダーは、ドキュメント内のサンプル・コードを正確に読めない場合があります。コード表記規則では閉じ括弧のみを行に記述する必要があります。しかし、一部のスクリーン・リーダーは括弧のみの行を読まない場合があります。

外部Webサイトのドキュメントのアクセシビリティについて

このドキュメントにはオラクル社およびその関連会社が所有または管理しないWebサイトへのリンクが含まれている場合があります。オラクル社およびその関連会社は、それらのWebサイトのアクセシビリティに関しての評価や言及は行っておりません。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/support/contact.htmlまたはhttp://www.oracle.com/accessibility/support.html（聴覚障害者向け）を参照してください。

関連ドキュメント

Oracle OLAP、Analytic Workspace Managerの使用方法およびOracle OLAP Java APIの使用方法の詳細は、次のドキュメントを参照してください。

- Oracle OLAPユーザーズ・ガイド

- Oracle OLAP Java APIリファレンス

- Oracle OLAP Java API開発者ガイド

表記規則

このマニュアルでは次の表記規則を使用します。

表記規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ドキュメントのタイトル、強調またはユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 XMLドキュメントによるカスタマイズ

Analytic Workspace Managerは、別のSQLインタフェースを開く必要なしにOracle Databaseのデータ・ディクショナリおよびシステム表を問い合せることができるように、数々のSQLレポートを提供します。また、計算済メジャーを生成するための多数のテンプレートのリストも提供します。カスタムSQLレポートおよび計算テンプレートを追加して、これらの両方の機能を補完できます。

これらのカスタマイズを定義するには、XMLドキュメントを作成します。XMLの概要は、http://www.w3schools.comのW3Schools XMLチュートリアルなどの情報を参照してください。XMLドキュメントの構文を検証するには、XML対応のエディタまたはブラウザを使用します。

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

- SQLレポートの説明

- 計算テンプレートの説明

SQLレポートの説明

Analytic Workspace Managerのナビゲーション・ツリーに、他の組込みのレポートとともに表示されるレポートを追加できます。レポートの名前およびSQL SELECTコマンドを入力します。オプションで、実行時にレポートの内容を変更したり、フォルダに編成できます。

SQLレポート用XMLドキュメントの作成

1. Analytic Workspace Managerで使用できるようにする情報を返すSQL問合せを作成します。

2. Analytic Workspace Managerの実行可能ファイルがあるディレクトリにawmtree.xmlという名前のテキスト・ファイルを作成します。通常、このディレクトリはOracle_home/olap/awmです。

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

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

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

4. 「参照: SQLレポートの要素」の説明に従って、テンプレートのXMLを入力します。

5. <AWMNode>要素のsql属性については、ステップ1で作成したSELECTコマンドを入力します。WHERE句の値を親の<AWMNode>要素のバインド変数に置き換えることができます。「バインド変数を使用したレポートの内容の制限」を参照してください。

6. ナビゲーション・ツリーをリフレッシュします。ツリーの最後に新しいレポートが表示されます。
新しいレポートが表示されない場合は、XMLの構文エラーを探します。

単純なレポートの例

図1-1に、Analytic Workspace Managerのナビゲーション・ツリーに表示されたMy User Viewsという名前の新しいレポートを示します。レポートには、問合せSELECT view_name FROM user_viewsの結果が表示されます。

図1-1 レポートの表示

「図1-1レポートの表示」の説明

例1-1のXMLドキュメントによってMy User Viewsレポートが定義されています。このドキュメントには、<AWMTree>および<AWMNode>の2つの要素が含まれています。<AWMTree>はルート要素であり、このドキュメントをAnalytic Workspace Managerのレポートを定義するXMLを含むものとして識別します。ドキュメントには1つ以上の<AWMNode>要素を含めることができます。この例では、単一の<AWMNode>要素によってMy User Viewsレポートが定義されています。

<AWMNode>要素に含めることができる属性には、nameおよびsqlがあります。例1-1では、nameを使用してレポートをMy User Viewsとして識別し、sqlを使用して、ツリーでレポートを選択したときに実行されるSELECT文を指定します。

例1-1 My User Viewsレポートの作成

<?xml version="1.0" encoding="utf-8" ?>
<AWMTree>
<AWMNode name="My User Views" sql="SELECT view_name FROM user_views"/>
</AWMTree>

レポート・フォルダの作成

フォルダを使用すると、レポートを容易に編成できます。フォルダはSQL文がない単純な<AWMNode>要素であり、他の<AWMNode>要素の親です。<AWMNode>要素は必要な深さにネストできます。

図1-2に、My SQL Reportsという名前のフォルダを示します。このフォルダには、My User TablesとMy User Viewsの2つのレポートがあります。

図1-2 フォルダでのレポートの編成

「図1-2 フォルダでのレポートの編成」の説明

例1-2のXMLドキュメントは、2つのレポートを定義する<AWMNode>要素が、「My SQL Reports」フォルダを定義する<AWMNode>要素の子であることを示します。

例1-2 「My SQL Reports」フォルダの作成

<?xml version="1.0" encoding="utf-8" ?>
<AWMTree>
<AWMNode name="My SQL Reports">
<AWMNode name="My User Tables" sql="SELECT table_name FROM user_tables"/>
<AWMNode name="My User Views" sql="SELECT view_name FROM user_views"/>
</AWMNode>
</AWMTree>

バインド変数を使用したレポートの内容の制限

バインド変数では、ナビゲーション・ツリー内の値リストから実行時に選択する内容に基づいてレポートの内容が制限されます。図1-3に、My User Viewsレポートによって返されるビューのリストを示します。リストは、プロパティ・インスペクタではなく、ナビゲーション・ツリーに表示されています。プロパティ・インスペクタには、ツリーで選択した特定のビューのレポートが表示されます。

最も深くネストされた<AWMNode>要素(「リーフ」要素)は、プロパティ・インスペクタのグリッドに表示され、複数の列を返すことができます。親要素はナビゲーション・ツリーに表示され、列(つまり、フォルダ)を返さないか、ここに示すように、1つの列を返します。

図1-3 レポートの内容の変更

「図1-3 レポートの内容の変更」の説明

<AWMNode>要素のtypeパラメータは、実行時の選択を保存します。ネストされた<AWMNode>要素のtypeパラメータの名前を参照することにより、そのSELECT文に値を渡すことができます。例1-2のXMLドキュメントは、My User Views <AWMNode>にネストされた<AWMNode>要素を示します。ネストされた<AWMNode>は親<AWMNode>要素のtype要素の値をバインド変数として使用します。バインド変数を参照する場合は、例の{view}のようにカッコ{}で囲みます。

例1-3 SELECT文へのビューの名前の引渡し

<?xml version="1.0" encoding="utf-8" ?>
<AWMTree>
<AWMNode name="My SQL Reports">
<AWMNode
name="My User Tables"
sql="select table_name from user_tables"/>
<AWMNode
name="My User Views"
type="view"
sql="select view_name from user_views">
<AWMNode sql="SELECT * FROM user_tab_columns WHERE table_name = {view}"/>
</AWMNode>
</AWMNode>
</AWMTree>

オブジェクト・フォルダでのレポートの作成

awmtree.xmlドキュメントは、ナビゲーション・ツリーのデータベース接続の下の「レポート」フォルダの後に表示されるレポートを定義します。また、すべてのスキーマ、アナリティック・ワークスペース、キューブまたはディメンションのフォルダに表示されるレポートを定義することもできます。レポートは、次の名前を持つXMLドキュメント内にある必要があります。

- schema.xml、すべてのスキーマ・フォルダに表示されるレポートの場合。

- aw.xml、すべてのアナリティック・ワークスペース・フォルダに表示されるレポートの場合。

- dimension.xml、すべてのディメンション・フォルダに表示されるレポートの場合。

- cube.xml、すべてのキューブ・フォルダに表示されるレポートの場合。

これらのファイルは、プラグイン・ディレクトリのJARファイル内にある必要があります。

オブジェクト・フォルダにレポートを作成するには、次の手順を実行します。

1. Analytic Workspace Managerを開き、「ツール」メニューの「構成」を選択します(図2-1を参照)。「構成」ダイアログ・ボックスが表示されます。

2. 「プラグインを有効化」を選択し、パラメータがまだ設定されていない場合は、図2-2に示すようにプラグイン・ディレクトリのパスを入力します。

3. 「OK」をクリックし、Analytic Workspace Managerを閉じます。

4. 1つ以上のXMLドキュメント・ファイルを作成します。

5. プラグイン・ディレクトリで、XMLファイルおよびそれらのファイルによって参照されるアイコンを含むJARファイルを作成します。これらのすべてに対して1つのJARファイルを作成することも、個々のJARファイルを作成することもできます。

6. Analytic Workspace Managerを開き、ナビゲーション・ツリーを展開してレポートを表示します。

図1-4に、schema.xmlドキュメントで記述されたMy Tablesという名前のレポート・フォルダを示します。ナビゲーション・ツリーでは、このフォルダはカスタム・アイコン(赤いアイコン)で示されます。「My Tables」フォルダは「GLOBAL」スキーマ・フォルダに表示されます。

図1-4 「GLOBAL」スキーマ・フォルダのレポート

「図1-4 「GLOBAL」スキーマ・フォルダのレポート」の説明

例1-4のschema.xmlドキュメントには、My Tablesという名前の<AWMNode>要素があります。この要素には、グラフィック・ファイルを指定するicon属性があります。schema.xmlファイルおよびbutton.jpgファイルを含むJARファイル内で、どちらのファイルもplugin11202という名前のディレクトリにあります。

注意:
XMLドキュメントのアイコン・ファイルまたはJavaクラス・ファイルへの参照は、これらのファイルを含むJARファイルのディレクトリ構造を反映する必要があります。このドキュメントのXMLドキュメントおよびJavaプラグインの例は、plugin11202という名前のJDeveloperプロジェクトで作成されています。プロジェクトはJARファイル内のXMLファイルおよびJavaクラス・ファイルをデプロイします。JARファイル内で、XMLファイルおよびクラス・ファイルはplugin11202という名前のディレクトリにあります。例1-4では、icon属性の指定にディレクトリicon="plugin11202/button.jpg"が含まれます。第3章のXMLドキュメントの例では、例3-7のviewClass="plugin11202.DimEditorPlugin"のように、viewClass属性の指定にパッケージ名が含まれます。

例1-4 レポートにアイコンを含める

<?xml version="1.0" encoding="US-ASCII" ?>
<AWMTree>
<AWMNode name="My Tables"
icon="plugin11202/button.jpg"
type="table"
sql="select table_name from all_tables where owner = {owner}">
<AWMNode sql="select column_name, data_type from all_tab_columns where owner = {owner} and table_name = {table}"/>
</AWMNode>
</AWMTree>

参照: SQLレポートの要素

SQLレポートのXMLドキュメントには、例1-5に示すような基本形式があります。

例1-5 レポートの基本のXML構造

<AWMTree>
<AWMNode>
<AWMNode>
<ShowIfQueryTrue>
<AWMNode>
.
.
.

<AWMTree>

Analytic Workspace Managerのカスタム・レポートを含むものとしてドキュメントを識別するルート要素。1つ以上の<AWMNode>要素を含みます。

含まれる項目

<AWMNode>

属性

なし

<AWMNode>

レポート・フォルダまたはSQLレポートを定義します。1つ以上の<AWMNode>要素を含みます。

含まれる項目

<AWMNode>、<ShowIfQueryTrue>

属性

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

- name: フォルダまたはレポートの名前。フォルダの場合、この属性のみが必須です。

- type: レポートの選択された値を保存するバインド変数の名前。このバインド変数を使用して、2番目のネストされたレポートにユーザー選択を渡します。

- sql: WHERE句にバインド変数を含めることができるSQL SELECT文。バインド変数は親の<AWMNode>属性のtype属性によって定義されます。問合せの結果は親の<AWMNode>要素のツリーに表示されます。リーフ要素の場合、結果はプロパティ・インスペクタに表示されます。

- viewClass: ViewerPluginまたはEditorPluginインタフェースを実装するJavaクラス。プラグインはプロパティ・インスペクタに表示されます。これらのJavaプラグイン・インタフェースについては、第2章「Analytic Workspace Managerプラグインの概要」を参照してください。viewClassおよびviewSQL属性は相互に排他的です。1つの<AWMNode>にどちらか1つのみを使用します。

- viewSql: SQL SELECT文。問合せの結果はプロパティ・インスペクタに表示されます。この属性を使用して親の<AWMNode>のSQL文を指定します。viewSQLおよびviewClass属性は相互に排他的です。1つの<AWMNode>にどちらか1つのみを使用します。

- icon: ナビゲーション・ツリーで使用するイメージ。イメージはプラグイン・ディレクトリのJARファイル内にあり、約20 x 20ピクセルである必要があります。

<ShowIfQueryTrue>

親レポートの表示を制御します。

含まれる項目

なし

属性

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

- sql: 親レポートを表示する条件を作成するSQL SELECT文。問合せによって1行以上が返される場合、レポートはナビゲーション・ツリーに表示されます。行が返されない場合、レポートは非表示になります。

計算テンプレートの説明

「計算済メジャーの作成」ダイアログ・ボックスに表示される計算テンプレートを他の計算と同じように定義できます。OLAP式構文を使用して、計算の名前、テンプレートのテキストおよび計算を入力します。

計算のXMLドキュメントの作成

1. テンプレートに含めたいタイプの計算を実行するカスタム・メジャーをAnalytic Workspace Managerで作成します。このカスタム・メジャーを使用して、テンプレートの式の構文を検証します。

関連項目:
OLAP式構文リファレンスについては、Analytic Workspace Managerのヘルプ。

2. Analytic Workspace Managerの実行可能ファイルがあるディレクトリ(通常は、ORACLE_HOME/olap/awm)にawmcalcs.xmlという名前のテキスト・ファイルを作成します。

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

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

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

4. 「参照: 計算の要素」の説明に従って、テンプレートのXMLを入力します。

5. <Calc>要素のexpression属性については、前に作成したカスタム・メジャーの計算を切り取って貼り付けます。メジャー、ディメンションなどの名前をuiパラメータの変数に置き換えます。

6. Analytic Workspace Managerを開きます。新しいカテゴリおよびテンプレートが「計算済メジャーの作成」ダイアログ・ボックスの「計算タイプ」リストの最後に表示されます。
新しいエントリが表示されない場合は、XMLの構文エラーを探します。XMLドキュメントへの変更を確認するには、「計算済メジャーの作成」ダイアログ・ボックスを再度開きます。

単純な計算テンプレートの例

図1-5に、「計算済メジャーの作成」ダイアログ・ボックスの「計算タイプ」リストを示します。このリストには、DiscountとAverageの2つの追加の計算を含むMy New Calcsという名前の新しいフォルダがあります。

図1-5 新しい計算のリスト

「図1-5 新しい計算のリスト」の説明

図1-6に、ユーザーがツリーからDiscountを選択したときに表示される「一般」タブのテンプレート部分を示します。

図1-6 新しいテンプレートの表示

「図1-6 新しいテンプレートの表示」の説明

例1-6のXMLドキュメントは、「My New Calcs」フォルダおよびDiscountとAverageの計算を定義します。ドキュメントには、<AWMCalcs>、<Category>および<Calc>の3つの要素が含まれています。<AWMCalcs>はルート要素であり、1つ以上の<Category>要素を含めることができます。この例では、<Category>要素はMy New Calcsという名前のフォルダを定義します。

<Category>要素には1つ以上の<Calc>要素を含めることができます。このドキュメントでは、DiscountとAverageの2つの<Calc>要素が含まれています。

<Calc>要素には、name、description、uiおよびexpressionの4つの属性があります。各属性は値として引用符付の文字列を取ります。ui要素は文字テキストとハイパーリンク・テキストで構成されます。複数の使用可能なパラメータの1つを入力してリンクを作成します。

例1-6では、{measure}および{number}パラメータを使用します。expression属性で同じパラメータをバインド変数として使用し、計算にユーザー選択を渡します。Average計算では2つの{measure}パラメータが使用されることに注意してください。expression属性はこれらのパラメータをui属性での順序({measure:1}と{measure:2})に従って参照します。

これらの要素の詳細は、「参照: 計算の要素」を参照してください。

例1-6 DiscountおよびAverage計算テンプレートの作成

<?xml version ="1.0" encoding="UTF-8" ?>
<AWMCalcs>
<Category name="NEW_CALCS" description="My New Calcs">
<Calc
name="Discount"
description="Discount"
ui="Discount {measure} by {number} percent"
expression="{measure}*(1 - ({number}/100))"/>
<Calc
name="Average"
description="Average"
ui="Average of {measure} and {measure}"
expression="({measure:1}+{measure:2})/2"/>
</Category>
</AWMCalcs>

計算へのオプションの追加

基本計算を変更するオプションを追加できます。オプションは、「計算済メジャーの作成」ダイアログ・ボックスにチェック・ボックスとして表示されます。ユーザーはそのオプションを選択し、変更済の計算を作成します。

これらのオプションは、<CalcOptional>と<CalcOptionalDefinitions>の2つの要素を使用して定義します。<CalcOptional>要素はローカルまたはグローバルに定義できます。<Calc>要素内では、<CalcOptional>はその特定の計算のみに適用されます。<CalcOptionalDefinitions>要素内では、<CalcOptional>はこの要素を名前で参照するすべての計算に適用されます。

図1-7に、メジャーの値を整数に切り捨てるオプションを指定した計算の例を示します。ユーザーはパーセント値を6に変更しました。

図1-7 計算へのオプションの指定

「図1-7 計算へのオプションの指定」の説明

例1-7に、<Calc>要素でローカルに定義されたTruncateオプションを示します。オプションはDiscount計算のみに適用されます。

例1-7 1つの計算へのオプションの追加

<Calc
name="Discount"
description="Discount"
ui="Discount {measure} by {number} percent"
expression="{measure}*(1 - ({number}/100))">
<CalcOptional
name="truncate"
type="boolean"
text="Truncate the decimal places"
expression="TRUNC($expression$)"/>
</Calc>

例1-8に、<CalcOptionalDefinitions>要素でグローバルに定義されたTruncateオプションを示します。オプションはDiscountおよびAverage計算で使用され、定義されるすべての計算で使用できます。

例1-8 複数の計算へのオプションの追加

<AWMCalcs>
<CalcOptionalDefinitions>
<CalcOptional
name="truncate"
type="boolean"
text="Truncate the decimal places"
expression="TRUNC($expression$)" />
</CalcOptionalDefinitions>
<Category name="NEW_CALCS" description="My New Calcs">
<Calc
name="Discount"
description="Discount"
ui="Discount {measure} by {number} percent"
expression="{measure}*(1 - ({number}/100))">
<CalcOptional name="truncate"/>
</Calc>
<Calc
name="Average"
description="Average"
ui="Average of {measure} and {measure}"
expression="({measure:1}+{measure:2})/2">
<CalcOptional name="truncate"/>
</Calc>
</Category>
</AWMCalcs>

より複雑な計算テンプレートの作成

この例では、2つのフォルダに5つの計算を作成します。どちらのフォルダの計算もXMLドキュメントの先頭で定義されたグローバル・オプションを使用します。図1-8に、「計算タイプ」リストに表示された計算を示します。

図1-8 より多くの新しい計算のリスト

「図1-8 より多くの新しい計算のリスト」の説明

My Period To Date計算は、3つのリストを含む最も複雑な構文を持ちます。<Params>要素を使用すると、リストを簡単に作成できます。これは、図1-9に示す最初のリストの定義です。

<Params>
<Param type="list" name="timePeriods">
<Item expression="GREGORIAN YEAR" text="Gregorian year"/>
<Item expression="GREGORIAN QUARTER" text="Gregorian quarter"/>
<Item expression="GREGORIAN MONTH" text="Gregorian month"/>
<Item expression="GREGORIAN WEEK" text="Gregorian week"/>
<Item expression="ANCESTOR AT LEVEL {level}" text="Ancestor at level"/>
</Param>
</Params>

図1-9 計算テンプレートの選択リスト

「図1-9 計算テンプレートの選択リスト」の説明

例1-9に、図1-8に示す5つの計算テンプレートを定義する完全なXMLドキュメントを示します。

例1-9 AWMCalcsドキュメントの例

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

<AWMCalcs>
<Params>
<Param type="list" name="timePeriods">
<Item expression="GREGORIAN YEAR" text="Gregorian year"/>
<Item expression="GREGORIAN QUARTER" text="Gregorian quarter"/>
<Item expression="GREGORIAN MONTH" text="Gregorian month"/>
<Item expression="GREGORIAN WEEK" text="Gregorian week"/>
<Item expression="ANCESTOR AT LEVEL {level}" text="Ancestor at level"/>
</Param>
<Param type="list" name="aggOps">
<Item expression="SUM" text="sum"/>
<Item expression="MAX" text="maximum"/>
<Item expression="MIN" text="minimum"/>
<Item expression="AVG" text="average"/>
</Param>

</Params>
<CalcOptionalDefinitions>
<CalcOptional
name="percentages"
type="boolean"
text="Multiply by 100"
expression="($expression$)*100"/>
<CalcOptional
name="truncate"
type="boolean"
text="Truncate the decimal places"
expression="TRUNC($expression$)" />
</CalcOptionalDefinitions>
<Category name="DEMO_CALCS" description="Demo Calcs">
<Calc
name="PctDif"
description="My Percent Difference"
ui="Percent difference between {measure} and {measure}."
expression="({measure:1} - {measure:2}) / abs({measure:2})">
<CalcOptional name="percentages" />
</Calc>
<Calc
name="PriorPeriod"
description="My Prior Period"
ui="Prior period for measure {time_measure} in the {time_dimension}
dimension and {hierarchy} hierarchy {number} period(s) ago."
expression="LAG({time_measure},{number}) over hierarchy ({hierarchy})" />
<Calc
name="Periodtodate"
description="My Period to Date"
ui="{timePeriods} to date for {time_measure} in the {time_dimension}
dimension and {hierarchy} hierarchy. Aggregate over {timePeriods}
using {aggOps} from the {calcRange} of the period."
expression="{aggOps}({time_measure}) OVER HIERARCHY ({hierarchy}
BETWEEN {calcRange} WITHIN {timePeriods})">
<Param type="list" name="calcRange">
<Item expression="UNBOUNDED PRECEDING AND CURRENT MEMBER"
text="beginning"/>
<Item expression="CURRENT MEMBER AND UNBOUNDED FOLLOWING"
text="end"/>
</Param>
<CalcOptional name="truncate"/>
</Calc>
</Category>
<Category name="NEW_CALCS" description="My New Calcs">
<Calc
name="Discount"
description="Discount"
ui="Discount {measure} by {number} percent."
expression="{measure}*(1 - ({number}/100))">
<CalcOptional name="truncate"/>
</Calc>
<Calc
name="Average"
description="Average"
ui="Average of {measure} and {measure}"
expression="({measure:1}+{measure:2})/2">
<CalcOptional name="truncate"/>
</Calc>
</Category>
</AWMCalcs>

参照: 計算の要素

計算のXMLドキュメントには、例1-10に示す基本形式があります。

例1-10 計算の基本のXML構造

<AWMCalcs>
<Category>
<Calc>

例1-11では、この基本構造を拡張して計算にオプションの定義を含めます。

例1-11 オプションがある計算のXML構造

<AWMCalcs>
<CalcOptionalDefinitions>
<CalcOptional>
<Category>
<Calc>
<CalcOptional>

例1-12では、基本構造を拡張してユーザー・インタフェースに選択リストを含めます。

例1-12 選択リストがある計算のXML構造

<AWMCalcs>
<Params>
<Param>
<Item>
<Category>
<Calc>
<Param>
<Item>

次に、要素の説明を示します。

<AWMCalcs>

このドキュメントをAnalytic Workspace Managerのカスタム計算テンプレートを含むものとして識別するルート要素。<Category>要素を含み、<CalcOptionalDefinitions>要素、<Params>要素、またはその両方を含めることもできます。

含まれる項目

<CalcOptionalDefinitions>、<Category>、<Params>

属性

なし

<Calc>

計算テンプレートを説明します。<CalcOptional>要素または1つ以上の<Param>要素、あるいはその両方を含めることができます。

含まれる項目

<CalcOptional>、<Param>

属性

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

- name: 計算の一意の名前。他のOLAPオブジェクトと同じネーミング規則に従います。

- description: 計算の説明。Analytic Workspace Managerによって計算テンプレートのリストに説明が追加されます。

- ui: テンプレートのテキスト。Analytic Workspace Managerによって「計算済メジャーの作成」ダイアログ・ボックスの「計算タイプ」に表示されます。ハイパーテキスト・パラメータをカッコ{}で囲みます。表1-1に、有効なパラメータを示します。

- expression: 計算済メジャーによって実行される計算。この計算は、式構文を使用し、バインド変数としてui属性のハイパーテキスト・パラメータを使用することにより定義されます。バインド変数をカッコ{}で囲みます。ui属性で同じパラメータが2回以上使用される場合は、{measure:1}と{measure:2}のように、表示される順序でパラメータを参照します。簡単な例については、例1-6を参照してください。

表1-1 ui属性のパラメータ

パラメータ

説明

ATTRIBUTE

選択されたディメンションの属性をリスト表示します。

DIMENSION

現在のキューブのすべてのディメンションをリスト表示します。

DIMENSION_MEMBER

選択されたディメンションのメンバーをリスト表示します。

HIERARCHY

選択されたディメンションの階層をリスト表示します。

HIERARCHY_LEVEL

選択された階層のレベルをリスト表示します。

LEVEL

選択されたディメンションのレベルをリスト表示します。

LIST

指定された値のリストを次の形式で表示します。

LIST:expression=value;[expression=value;...]

または、<Params>要素を使用します。

MEASURE

現在のキューブと共通のディメンションが少なくとも1つあるアナリティック・ワークスペースのすべてのメジャーをリスト表示します。

NUMBER

数値入力が可能なテキスト・フィールドを表示します。

TEXT_INPUT

任意のテキスト入力が可能なテキスト・フィールドを表示します。

TIME_DIMENSION

現在のキューブの時間ディメンションをリスト表示します。

TIME_MEASURE

時間ディメンションがあるすべてのメジャーをリスト表示します。

VALUE

LISTパラメータからの現在の選択を表示します。

param

<Param>要素で定義されたパラメータ。特に、<Item>要素のtext属性の値。

<CalcOptional>

基本的な式を変更するために1つ以上の計算で使用できるチェック・ボックスを定義します。たとえば、小数が生じる計算で、結果を割合で返す百分率オプションを提供できます。

チェック・ボックスを表示する<Calc>要素に<CalcOptional>を含めます。<Calc>要素内でオプションを完全に定義するか、または<CalcOptionalDefinitions>要素内でオプションを定義し、<Calc>要素の2番目の<CalcOptional>要素を使用してオプションを名前で参照できます。

<Calc>要素に<CalcOptional>要素を含めることができます。<CalcOptionalDefinitions>要素には1つ以上の<CalcOptional>要素を含めることができます。

含まれる項目

なし

属性

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

- name: オプションの一意の名前。他のOLAPオブジェクトと同じネーミング規則に従います。

- type: オプションのデータ型。常にbooleanです。

- text: オプションの説明。このテキストによりチェック・ボックスにラベルが付けられます。

- expression: オプションが選択されたときに実行される計算。式構文および現在の<Calc>要素によって定義された基本計算の($expression$)を使用します。

<CalcOptionalDefinitions>

複数の計算で参照できるように、1つ以上の<CalcOptional>要素を含みます。この要素は<AWMCalcs>の直後にある必要があります。

含まれる項目

<CalcOptional>

属性

なし

<Category>

Analytic Workspace Managerの計算リストのヘッダーを定義します。1つ以上の<Calc>要素を含みます。

含まれる項目

<Calc>

属性

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

- name: カテゴリの一意の名前。他のOLAPオブジェクトと同じネーミング規則に従います。

- description: カテゴリの説明。Analytic Workspace Managerによって計算テンプレートのリストにこの説明が追加されます。

<Item>

値または数値のリストのエントリを説明します。

含まれる項目

なし

属性

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

- text: <Calc> ui属性に入力され、ユーザーに表示される値。

- expression: ユーザーがアイテムを選択したときに<Calc> expression属性に挿入される値。

<Param>

<Calc> ui属性で参照される値リストまたは数値フィールドを説明します。ユーザーによって行われた選択に対応する式は、表示された値ではなく計算に入力されます。この要素には1つ以上の<Item>要素を含めることができます。

含まれる項目

<Item>

属性

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

- type: 値のリストのLIST、または数値を入力するためのフィールドのNUMBERのいずれか。

- name: パラメータの名前。<Calc> ui属性で参照されます。

- default: 対応する式が<Item>要素にない数値をユーザーが入力したときにデフォルト値を提供します。

<Params>

1つ以上の<Param>要素を含みます。

含まれる項目

<Param>

属性

なし

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プラグインの説明

- AWMPluginインタフェースの説明

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

- プラグイン作成の手順

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

Analytic Workspace Managerプラグインの説明

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

- AWMPlugin。このインタフェースを使用すると、ナビゲーション・ツリー・オブジェクトの右クリック・メニューに選択肢を追加できます。

- ViewerPlugin。このインタフェースを使用すると、プロパティ・インスペクタに現在のナビゲーション・ツリー・オブジェクトに関する情報を表示できます。

- EditorPlugin。ViewerPluginを拡張し、オブジェクトのプロパティを編集する機能を追加します。

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

- 新しいタイプの計算の作成。

- 予測の作成。

- 企業固有の時間ディメンションなどの、カスタムOLAPメタデータ・オブジェクトの作成。

- カスタム・ナビゲーション・ツリー・オブジェクトに関連付けられた情報のプロパティ・インスペクタでの表示の制御。

- プロパティ・インスペクタでのオブジェクトのプロパティの編集。

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

- Oracle OLAP Java API

- JDBC API

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

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

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

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

Analytic Workspace Managerでプラグインを有効にした場合、Analytic Workspace Managerは起動時にプラグイン・ディレクトリ内のJARファイルからJavaコードを動的にロードします。JARファイルの内容をロードした後、Analytic Workspace ManagerはAWMPlugin、ViewerPluginまたはEditorPluginインタフェースを実装するクラスを検索します。また、ナビゲーション・ツリーにオブジェクトを追加するaw.xml、cube.xml、dimension.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 ナビゲーション・ツリーの計算済メジャーの右クリックメニュー」の説明

ユーザーがプラグインを選択すると、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 AWMPluginへの呼出しの順序」の説明

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

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

- type。Analytic Workspace Managerがオブジェクトに割り当てるタイプの指定であるjava.lang.Stringです。typeパラメータ値の詳細は、「typeおよびobjパラメータの値」を参照してください。

- obj。Analytic Workspace ManagerがAnalytic Workspace Managerのナビゲーション・ツリーで選択されたオブジェクトに関連付けるjava.lang.Objectです。Objectは、StringまたはOracle OLAP Java APIのオブジェクトの場合があります。objパラメータ値の詳細は、「typeおよびobjパラメータの値」を参照してください。

- aw。nullです。このパラメータは、awがoracle.AWXML.AWオブジェクトであった10gプラグインとの互換性のために存在します。

- params。プラグインで使用できるオブジェクトおよび情報を含むjava.util.Mapです。Mapキーおよび値の詳細は、「AWMPluginのparams Mapの要素」を参照してください。

- parent。Analytic Workspace Managerがhandleメソッドに渡すjava.awt.Frameオブジェクトです。プラグインではこのオブジェクトをユーザー・インタフェース・コンポーネントの親フレームとして使用できます。

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オブジェクトです。MdmStandardDimensionやMdmCubeなどのその他のメタデータ・オブジェクトは、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のキーおよび値」に、AWMPluginのMapの要素のキーおよび値の説明を示します。キーはStringオブジェクトです。

「データベース」フォルダのparams Mapには、DATASOURCE、DATAPROVIDERまたは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、フォルダでない場合はFALSEのString。

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-2のDeleteDimPluginクラスの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 MapのBIND_MAPキーの値であるMapの要素を示します。BIND_MAP Mapから値を取得する例は、例3-2のDeleteDimPluginクラスの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 ViewerPluginへの呼出しの順序」の説明

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

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

- name。viewClass属性を持つ<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は最初にisViewerForType、setValueChangedおよびgetPanelメソッドを呼び出します。EditorPluginの表示の例については、図3-11を参照してください。

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

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

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

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

「図2-6 EditorPluginへの呼出しの順序」の説明

ViewerPluginまたはEditorPluginのparams Mapの要素

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

表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、フォルダでない場合はFALSEのString。

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またはEditorPluginのparams Mapのキーおよび値の例を示します。DATAPROVIDERおよびDATASOURCEキーの値を除き、すべての値はStringオブジェクトです。

ViewerPluginのparams Map要素の例

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

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

例3-6のMeasureViewerPluginクラスは、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-9のDimEditorPluginクラスの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プラグインの作成の前提条件は次のとおりです。

- Oracle Database Enterprise Editionの配布に含まれるAnalytic Workspace Managerの場合は、開発環境に次のファイルを含めます。これらのJARファイルは、Oracle DatabaseインストールのOracle_home/olap/api/libディレクトリにあります。

- awm.jar。プラグイン・インタフェースが含まれます。

- olap_api.jar。Oracle OLAP Java APIのクラスが含まれます。

- awxml.jar。Analytic Workspace Managerの10gリリースとの互換性のためにAWMPluginインタフェースに含まれるoracle.AWXML.AWクラスが含まれます。

- Oracle Technology NetworkからダウンロードしたAnalytic Workspace Managerの場合は、開発環境にawm11.2.0.1.0.jarファイルを含めます。

- JDK 1.5でコードをコンパイルします。

注意:
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オブジェクトを格納します。プロパティ・インスペクタの表示を更新する必要がある場合は、常にPanelChangedのchangedメソッドを呼び出します。

- 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を使用するには、通常、次の手順を実行します。

- ナビゲーション・ツリーでカスタム・オブジェクトを表示する場所に応じて、schema.xml、aw.xml、cube.xmlまたはdimension.xmlという名前のXMLドキュメントを作成します。XMLドキュメントでは、複数の<AWMNode>要素を同じレベルに置くことができます。1つ以上の<AWMNode>要素を親の<AWMNode>要素にネストすることもできます。

- <AWMNode>要素で指定するSQL文を開発します。

- ViewerPluginまたはEditorPluginインタフェースを実装します。

- sql属性で<AWMNode>のSQL文を指定します。viewClass属性でプラグインを指定します。

- XMLドキュメントおよびプラグインの実装をJARファイルにデプロイします。複数のXMLドキュメントおよびプラグインを同じJARに置くことができます。XMLドキュメントをプラグインと同じJARファイルに置くことができます。

- JARファイルをプラグインのAnalytic Workspace Managerディレクトリに置きます。

- Analytic Workspace Managerを起動します。

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

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>

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

含まれる項目

なし

属性

なし

3 Analytic Workspace Managerプラグインの例

この章では、AWMPlugin、ViewerPluginおよびEditorPluginインタフェースを実装するJavaクラスの例を示します。また、プラグインを指定するXMLドキュメントの例も示します。

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

- サンプル・クラスおよびXMLドキュメントの可用性

- AWMPluginの例

- ViewerPluginおよびEditorPluginの例

- プラグインの説明の例

サンプル・クラスおよびXMLドキュメントの可用性

この章と第1章のJavaクラスおよびXMLドキュメントには、クラスまたはドキュメントの完全なコードが含まれています。完全なコードは、Oracle Technology Network (OTN)のWebサイトからダウンロードできる圧縮ファイルでも入手できます。ダウンロードには、プラグインのコンパイル済classファイルも含まれます。OTNのWebサイトは次の場所にあります。

http://www.oracle.com/technology/products/bi/olap/index.html

サンプルを取得するには、Webページの「Download」セクションで、「Sample Code and Schemas」を選択します。「Oracle OLAP Downloads」ページで、「Sample Schemas and Code」セクションのOracle OLAP 11gのAWM Java Plug-ins and XML Documents for 11.2.0.2の行で、「examples」をクリックします。

圧縮ファイルのcustomizingAWM_examples11202.zipには、次のファイルが含まれています。

ファイル名

説明

readme.txt

zipファイルの内容を簡単に説明しています。

awmcalcs.xml

例1-9「AWMCalcsドキュメントの例」のXMLが含まれます。

awmtree.xml

例1-3「SELECT文へのビューの名前の引渡し」のXMLが含まれます。

plugin11202.jar

plugin11202という名前のディレクトリが含まれます。このディレクトリは、サンプルを含むパッケージです。ディレクトリには、第3章の例のxml、javaおよびclassファイルがあります。

awmcalcs.xmlファイルとawmtree.xmlファイルはAnalytic Workspace Managerの実行可能ファイルと同じディレクトリに配置します。plugin11202.jarファイルはプラグインに指定したディレクトリに配置します。「Analytic Workspace Managerプラグインの有効化」を参照してください。

AWMPluginの例

AWMPluginの例は次のトピックで示しています。

- ViewXMLPluginの例

- DeleteDimPluginの例

例には、AWMPluginインタフェースのメソッドのドキュメント・コメントまたはこれらのメソッドの入力パラメータと戻り値は含まれていません。これらのメソッドとパラメータは、「AWMPluginインタフェースの説明」で説明されています。

ViewXMLPluginの例

ViewXMLPluginクラスでは、Analytic Workspace Managerのナビゲーション・ツリーの「キューブ」フォルダにあるキューブのメジャーまたはカスタム・メジャーのXML表現が表示されます。例3-1に、クラスのコードを示します。プラグインはoracle.olap.metadata.mdm.MdmBaseMeasureおよびoracle.olap.metadata.mdm.MdmDerivedMeasureオブジェクトに適用されます。これらのオブジェクトは、それぞれキューブのメジャーおよび計算済メジャー・オブジェクトに対応します。

プラグインはメジャーのXML表現を取得し、表示します。図2-3に、ユーザーがメジャーを右クリックしたときにAnalytic Manager WorkspaceによってViewXMLPluginに対して表示されるメニューを示します。ViewXMLPluginによって表示されるダイアログ・ボックスの例は、図3-1「ViewXMLPluginによって表示されるダイアログ・ボックス」を参照してください。

例3-1 ViewXMLPluginクラス

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import oracle.AWXML.AW;
import oracle.olap.awm.plugin.AWMPlugin;
import oracle.olapi.metadata.mdm.MdmBaseMeasure;
import oracle.olapi.metadata.mdm.MdmDerivedMeasure;
import oracle.olapi.metadata.mdm.MdmMetadataProvider;
import oracle.olapi.metadata.mdm.MdmObject;

/**
* An implementation of the AWMPlugin interface that displays the XML
* representation of an Oracle OLAP measure object.
*/
public class ViewXMLPlugin implements AWMPlugin
{
public boolean isSupported(Connection conn, String type, Object obj,
AW aw, Map params)
{
// Support MdmBaseMeasure and MdmDerivedMeasure objects.
if (obj instanceof MdmBaseMeasure || obj instanceof MdmDerivedMeasure)
{
return true;
}
return false;
}

public String getMenu(Connection conn, String type, Object obj, AW aw,
Map params)
{
// Text to display on the right-click menu.
String menu = "View XML Example Plug-in";
return menu;
}

public void handle(Frame parent, Connection conn, String type, Object obj,
AW aw, Map params)
{
if (obj instanceof MdmObject)
{
// Get the MdmMetadataProvider to use in exporting the XML.
Object objdp = params.get("DATAPROVIDER");
if (objdp != null)
{
MdmObject mobj = (MdmObject)obj;
MdmMetadataProvider mdp = (MdmMetadataProvider)objdp;

// Get the XML representation of the MdmObject.
List objects = new ArrayList();
objects.add(mobj);
Map renameMap = null;
boolean includeOwnerString = true;
String title = "XML for " + mobj.getName();
try
{
String xml =
mdp.exportFullXML(objects, renameMap, includeOwnerString);
// Create a dialog box and display the XML.
DisplayXMLDialog dxd = new DisplayXMLDialog(parent, title, true,
xml);
}
catch (IOException ie)
{
// Ignore error.
}
}
}
}

public boolean refreshTree(Connection conn, String type, Object obj, AW aw,
Map params)
{
// This example does not create new metadata objects, so return false.
return false;
}

/**
* An inner class that creates a dialog box that displays the XML.
*/
class DisplayXMLDialog extends JDialog implements ActionListener
{
/**
* Creates a DisplayXMLDialog for displaying the contents of the xml
* parameter.
*
* @param parent A Frame that is provided by Analytic Workspace Manager.
* @param title A String that contains text to use as the title for the
*              dialog box.
* @param modal A boolean that specifies whether the dialog box is modal.
* @param xml A String that contains the XML to display.
*/
public DisplayXMLDialog(Frame parent, String title, boolean modal,
String xml)
{
super(parent);
setLocation(200, 200);
setTitle(title);
setModal(modal);

try
{
displayXML(xml);
}
catch (Exception e)
{
e.printStackTrace();
}
}

/**
* Creates a dialog box and displays the contents of a String.
*
* @param xml A String that contains the XML to display.
*/
private void displayXML(String xml)
{
JTextArea ta = new JTextArea(xml);
ta.setEditable(false);
Font of = ta.getFont();
Font f = new Font("Courier New", of.getStyle(), of.getSize());
ta.setFont(f);

JScrollPane p = new JScrollPane();
p.getViewport().add(ta);

JPanel buttonPane = new JPanel();
JButton button = new JButton("Close");
buttonPane.add(button);
button.addActionListener(this);
getContentPane().add(buttonPane, BorderLayout.SOUTH);

getContentPane().add(p, BorderLayout.NORTH);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}

/**
* Performs an action for the Close button.
*
* @param e An ActionEvent for the Close button.
*/
public void actionPerformed(ActionEvent e)
{
setVisible(false);
dispose();
}
}
}

図3-1に、ViewXMLPluginによってUNITS_CUBEフォルダのPROFIT計算済メジャーに対して表示されるダイアログ・ボックスを示します。

図3-1 ViewXMLPluginによって表示されるダイアログ・ボックス

「図3-1 ViewXMLPluginによって表示されるダイアログ・ボックス」の説明

DeleteDimPluginの例

DeleteDimPluginクラスはユーザーがナビゲーション・ツリーで選択したディメンションを削除します。このプラグインが適用されるのは、カスタム・フォルダ内にあり、params MapのTYPEキーの値としてdimobjを持つディメンション・オブジェクトのみです。DeleteDimPluginプラグインは、例3-7のaw.xmlドキュメントによって指定されます。

例3-2に、DeleteDimPluginクラスのコードを示します。

例3-2 DeleteDimPluginクラス

package plugin11202;

import java.awt.Frame;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JOptionPane;
import oracle.AWXML.AW;
import oracle.olap.awm.plugin.AWMPlugin;
import oracle.olapi.metadata.mdm.MdmMetadataProvider;
import oracle.olapi.metadata.mdm.MdmObject;
import oracle.olapi.metadata.mdm.MdmPrimaryDimension;
import oracle.olapi.metadata.mdm.MdmSchema;

/**
* An implementation of the AWMPlugin interface that can delete
* an Oracle OLAP dimension object in a custom folder.
*/
public class DeleteDimPlugin implements AWMPlugin
{
// This plug-in applies to dimension objects in a custom folder.
public boolean isSupported(Connection conn, String type, Object obj, AW aw,
Map params)
{
if (params != null)
{
// Get the value of the type attribute of the AWMNode that specifies this
// plug-in.
Object nodeType = params.get("TYPE");
if (nodeType != null && ((String)nodeType).equalsIgnoreCase("dimobj"))
return true;
}
return false;
}

public String getMenu(Connection conn, String type, Object obj, AW aw,
Map params)
{
Object dimName = null;
if (obj != null && obj instanceof String)
{
dimName = (String) obj;
}
// Text to display on the right-click menu.
return "Example Plug-in: Delete Dimension " + dimName;
}

public void handle(Frame parent, Connection conn, String type, Object obj,
AW aw, Map params)
{
String dimName = "";
// The obj parameter should be the name of the currently selected dimension.
if (obj != null && obj instanceof String)
{
dimName = (String) obj;
String title = "Delete Dimension";
if (JOptionPane.showConfirmDialog(parent, "Delete " + dimName + "?",
title, JOptionPane.YES_NO_OPTION) ==
JOptionPane.NO_OPTION)
return;
}

if (params != null)
{
Map bindMap = (Map)params.get("BIND_MAP");
if (bindMap != null)
{
// Get the name of the owner, which is also the name of the schema.
String owner = (String)bindMap.get("owner");
// Get the currently selected dimension.
MdmPrimaryDimension dim = getDimension(dimName, owner, params);

if (dim != null)
{
// Get the schema object that contains the dimension.
MdmSchema schema = dim.getOwner();
schema.removeDimension(dim);
MdmMetadataProvider mdp = getMetadataProvider(params);
// Get the TransactionProvider and commit the current Transaction.
try
{
mdp.getDataProvider()
.getTransactionProvider()
.commitCurrentTransaction();
JOptionPane.showMessageDialog(parent,
owner + "." + dimName +
" dimension has been deleted.");
}
catch (Exception e)
{
JOptionPane.showMessageDialog(parent, e.getMessage(), "Error",
JOptionPane.ERROR_MESSAGE);
// Roll back the current Transaction.
try
{
mdp.getDataProvider()
.getTransactionProvider()
.rollbackCurrentTransaction();
}
catch (Exception e2)
{
// Ignore the exception.
}
}
}
}
else
{
return;
}
}
}

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

// Get the MdmMetadataProvider.
private MdmMetadataProvider getMetadataProvider(Map params)
{
Object dp = params.get("DATAPROVIDER");
if (dp instanceof MdmMetadataProvider)
{
MdmMetadataProvider mdp = (MdmMetadataProvider)dp;
return mdp;
}
return null;
}

// Get the currently selected dimension.
private MdmPrimaryDimension getDimension(String dimName, String schema,
Map params)
{
if (params != null)
{
MdmMetadataProvider mdp = getMetadataProvider(params);
if (mdp != null)
{
// Get the dimension from the MdmMetadataProvider.
MdmObject mobj = mdp.getMetadataObject(schema + "." + dimName);
if (mobj != null && mobj instanceof MdmPrimaryDimension)
{
MdmPrimaryDimension dim = (MdmPrimaryDimension)mobj;
return dim;
}
}
}
return null;
}
}

図3-2に、Analytic Manager WorkspaceによってDeleteDimPluginに対して表示されるメニューを示します。この図は、ユーザーが「MyDims」フォルダのCUSTOMERディメンションを右クリックしたときに表示されるメニューを示します。「MyDims」フォルダは、例3-7のaw.xmlドキュメントによって作成されます。

図3-2 DeleteDimPluginによって表示される右クリック・メニュー

「図3-2 DeleteDimPluginによって表示される右クリック・メニュー」の説明

ユーザーが「サンプル・プラグイン: ディメンションCUSTOMERを削除」をクリックすると、DeleteDimPluginによって図3-3に示すダイアログ・ボックスが表示されます。

図3-3 DeleteDimPluginによって表示されるダイアログ・ボックス

「図3-3 DeleteDimPluginによって表示されるダイアログ・ボックス」の説明

ViewerPluginおよびEditorPluginの例

ViewerPluginおよびEditorPluginの実装の例は、次のトピックにあります。

- LevelViewerPluginの例

- MeasureViewerPluginの例

- CubeViewerPluginの例

- DimEditorPluginの例

これらのトピックでは、プラグインを指定するXMLドキュメントも示されます。

ViewerPluginおよびEditorPluginインタフェースのメソッドは、「ViewerPluginおよびEditorPluginインタフェースの説明」で説明されています。

LevelViewerPluginの例

例3-3のdimension.xmlドキュメントには、MyLevelsという名前のフォルダを指定する<AWMNode>、および現在選択されているディメンションのレベルの名前をUSER_CUBE_DIM_LEVELS表から選択するSQL文があります。名前のない子の<AWMNode>はLevelViewerPluginを指定します。図3-4に、ナビゲーション・ツリーのフォルダおよびドキュメントのプロパティ・インスペクタの表示を示します。

例3-3 dimension.xmlドキュメントの作成

<?xml version="1.0" encoding="US-ASCII" ?>
<AWMTree>
<AWMNode name="MyLevels"
type="levelobj"
sql="select level_name from user_cube_dim_levels where dimension_name = {dimension_name} ">
<AWMNode type="levelview"
viewClass="plugin11202.LevelViewerPlugin"/>
</AWMNode>
</AWMTree>

例3-4に、LevelViewerPluginクラスを示します。図3-5に示すように、このクラスによって、現在選択されているレベルの名前が表示されます。

例3-4 LevelViewerPluginクラス

package plugin11202;

import java.awt.FlowLayout;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JLabel;
import javax.swing.JPanel;
import oracle.olap.awm.plugin.ViewerPlugin;

public class LevelViewerPlugin implements ViewerPlugin
{
public boolean isViewerForType(Connection conn, String name)
throws Exception
{
return true;
}

public JPanel getPanel(Connection conn, String name, Map params)
throws Exception
{
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
// Get the name of the current level.
Object obj = params.get("levelobj");
if (obj instanceof String)
{
String levelName = (String)obj;
panel.add(new JLabel(levelName));
}
return panel;
}

public void cleanup(String name)
{
}
}

図3-4に、dimension.xmlドキュメントのMyLevels <AWMNode>の結果を示します。MyLevelsは、アナリティック・ワークスペースの各ディメンション・フォルダに表示されます。ユーザーは「PRODUCT」フォルダの「MyLevels」フォルダを選択しました。<AWMNode>のSQL文の結果は「MyLevels」フォルダに表示されます。プロパティ・インスペクタには、同じSQL文とその結果が表示されます。結果は、ディメンションのレベルのリストです。

図3-4 dimension.xmlのMyLevels <AWMNode>の結果

「図3-4 dimension.xmlのMyLevels <AWMNode>の結果」の説明

図3-5に、dimension.xmlドキュメントのMyLevels <AWMNode>内の名前のない子の<AWMNode>の結果を示します。ユーザーは「MyLevels」フォルダのFAMILYレベルを選択しました。プロパティ・インスペクタには、LevelViewerPluginによって指定されたユーザー・インタフェースが表示されます。プラグインによってレベルの名前が表示されます。

図3-5 LevelViewerPluginの結果

「図3-5 LevelViewerPluginの結果」の説明

MeasureViewerPluginの例

例3-5のcube.xmlドキュメントには、MyMeasuresという名前のフォルダを指定する<AWMNode>、および現在選択されているキューブのメジャーの名前をUSER_CUBE_MEASURES表から選択するSQL文があります。名前のない子の<AWMNode>はMeasureViewerPluginプラグインを指定します。図3-6に、ナビゲーション・ツリーのフォルダおよびドキュメントのプロパティ・インスペクタの表示を示します。

例3-5 cube.xmlドキュメントの作成

<?xml version="1.0" encoding="US-ASCII" ?>
<AWMTree>
<AWMNode name="MyMeasures"
type="measureobj"
sql="select measure_name from user_cube_measures where cube_name = {cube_name}">
<AWMNode type="measureview"
viewClass="plugin11202.MeasureViewerPlugin"/>
</AWMNode>
</AWMTree>

例3-6に、MeasureViewerPluginクラスを示します。Figure 3-7に示すように、このクラスによって、現在選択されているメジャーの名前が表示されます。

例3-6 MeasureViewerPluginクラス

package plugin11202;

import java.awt.FlowLayout;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JLabel;
import javax.swing.JPanel;
import oracle.olap.awm.plugin.ViewerPlugin;

public class MeasureViewerPlugin implements ViewerPlugin
{
public boolean isViewerForType(Connection conn, String name)
throws Exception
{
return true;
}

public JPanel getPanel(Connection conn, String name, Map params)
throws Exception
{
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());

// Get the name of the current measure.
Object measureobj = null;
if (params != null)
measureobj = params.get("measureobj");

if (measureobj instanceof String)
{
String measureName = (String)measureobj;
panel.add(new JLabel(measureName));
}
return panel;
}

public void cleanup(String name)
{
}
}

図3-6に、cube.xmlドキュメントのMyMeasures <AWMNode>の結果を示します。「MyMeasures」フォルダは、アナリティック・ワークスペースの各キューブ・フォルダに表示されます。ユーザーは「UNITS_CUBE」フォルダの「MyMeasures」フォルダを選択しました。<AWMNode>のSQL文の結果は「MyMeasures」フォルダに表示されます。プロパティ・インスペクタには、同じSQL文およびその結果が表示されます。結果は、キューブのメジャーおよび計算済メジャーのリストです。

図3-6 cube.xmlのMyMeasures <AWMNode>の結果

「図3-6 cube.xmlのMyMeasures <AWMNode>の結果」の説明

図3-7に、cube.xmlドキュメントのMyMeasures <AWMNode>の名前のない子<AWMNode>の結果を示します。ユーザーは「MyMeasures」フォルダのUNITSメジャーを選択しました。プロパティ・インスペクタには、MeasureViewerPluginによって指定されたユーザー・インタフェースが表示されます。プラグインによってメジャーの名前が表示されます。

図3-7 MeasureViewerPluginの結果

「図3-7 MeasureViewerPluginの結果」の説明

CubeViewerPluginの例

例3-7のaw.xmlドキュメントには、MyDimsという名前のフォルダを指定する<AWMNode>があります。MyDims <AWMNode>については、「DimEditorPluginの例」を参照してください。

aw.xmlドキュメントには、MyCubesという名前のフォルダを指定する<AWMNode>、およびUSER_CUBES表から現在のアナリティック・ワークスペースのキューブの名前を選択するSQL文もあります。名前のない子<AWMNode>はCubeViewerPluginを指定します。図3-8に、MyCubes <AWMNode>のナビゲーション・ツリーのフォルダおよびプロパティ・インスペクタの表示を示します。

例3-7 aw.xmlドキュメントの作成

<?xml version="1.0" encoding="US-ASCII" ?>
<AWMTree>
<AWMNode name="MyDims"
type="mydimfolder"
viewSql="select dimension_name, dimension_type from user_cube_dimensions where aw_name = {aw_name}">
<AWMNode type="dimobj"
sql="select dimension_name from user_cube_dimensions where aw_name = {aw_name}"
viewClass="plugin11202.DimEditorPlugin">
</AWMNode>
<AWMNode name="MyLevels"
type="levelobj"
sql="select level_name from user_cube_dim_levels where dimension_name = {dimobj}">
<AWMNode sql="select * from user_cube_dim_levels where dimension_name = {dimobj} and level_name = {levelobj}"/>
</AWMNode>
</AWMNode>
<AWMNode name="MyCubes"
type="cubeobj"
sql="select cube_name from user_cubes where aw_name = {aw_name}">
<AWMNode type="mycubeview"
viewClass="plugin11202.CubeViewerPlugin"/>
</AWMNode>
</AWMTree>

例3-8に、CubeViewerPluginクラスを示します。図3-9に示すように、このクラスによって、現在選択されているキューブの名前が表示されます。

例3-8 CubeViewerPluginクラス

package plugin11202;

import java.awt.FlowLayout;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JLabel;
import javax.swing.JPanel;
import oracle.olap.awm.plugin.ViewerPlugin;

public class CubeViewerPlugin implements ViewerPlugin
{
public boolean isViewerForType(Connection conn, String name)
throws Exception
{
return true;
}

public JPanel getPanel(Connection conn, String name, Map params)
throws Exception
{
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
// Get the name of the current cube.
Object cubeobj = null;
if (params != null)
cubeobj = params.get("cubeobj");
if (cubeobj instanceof String)
{
String cubeName = (String)cubeobj;
panel.add(new JLabel(cubeName));
}
return panel;
}

public void cleanup(String name)
{
}
}

図3-8に、aw.xmlドキュメントのMyCubes <AWMNode>の結果を示します。「MyCubes」フォルダは、「GLOBAL」アナリティック・ワークスペース・フォルダに表示されます。ユーザーは「MyCubes」フォルダを選択しました。<AWMNode>のSQL文の結果はフォルダに表示されます。プロパティ・インスペクタには、同じSQL文とその結果が表示されます。この結果は、アナリティック・ワークスペースのキューブのリストです。

図3-8 aw.xmlのMyCubes <AWMNode>の結果

「図3-8 aw.xmlのMyCubes <AWMNode>の結果」の説明

図3-9に、aw.xmlドキュメントのMyCubes <AWMNode>の名前のない子<AWMNode>の結果を示します。ユーザーは「MyCubes」フォルダのUNITS_CUBEキューブを選択しました。プロパティ・インスペクタには、CubeViewerPluginによって指定されたユーザー・インタフェースが表示されます。プラグインによってキューブの名前が表示されます。

図3-9 CubeViewerPluginの結果

「図3-9 CubeViewerPluginの結果」の説明

DimEditorPluginの例

例3-7のaw.xmlドキュメントには、MyDimsという名前のフォルダを指定する<AWMNode>、およびUSER_CUBE_DIMENSIONS表から現在のアナリティック・ワークスペースのディメンションの名前とタイプを選択するSQL文があります。図3-10に、MyDims <AWMNode>のナビゲーション・ツリーのフォルダおよびプロパティ・インスペクタの表示を示します。

名前のない子<AWMNode>はディメンションの名前を選択するSQLを指定し、DimEditorPluginも指定します。図3-11に、MyDims <AWMNode>のナビゲーション・ツリーのフォルダおよびプロパティ・インスペクタの表示を示します。

名前のない<AWMNode>にネストされたMyLevelsという名前の<AWMNode>は、現在選択されているディメンションのレベルの名前をUSER_CUBE_DIM_LEVELS表から選択します。MyLevels <AWMNode>には、現在選択されているディメンションおよびレベルのすべての列をUSER_CUBE_DIM_LEVELS表から選択する<AWMNode>があります。

例3-9に、DimEditorPluginクラスを示します。図3-11に示すように、このクラスによって、現在選択されているディメンションの名前と簡単な説明が表示されます。ユーザーは簡単な説明の値を変更できます。

例3-9 DimEditorPluginクラス

package plugin11202;

import java.awt.Component;
import java.awt.GridLayout;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import oracle.olap.awm.plugin.EditorPlugin;
import oracle.olap.awm.plugin.PanelChanged;
import oracle.olapi.metadata.mdm.MdmDescriptionType;
import oracle.olapi.metadata.mdm.MdmMetadataProvider;
import oracle.olapi.metadata.mdm.MdmObject;
import oracle.olapi.metadata.mdm.MdmPrimaryDimension;

public class DimEditorPlugin implements EditorPlugin
{
private JTextField shortDescTextField;
private PanelChanged parentPanelChanged;
private JPanel panel;
private JLabel dimNameLabel;
private MdmDescriptionType mdmShortDescrDescrType;

public DimEditorPlugin()
{
panel = new JPanel();
panel.setLayout(new GridLayout(3, 1));
dimNameLabel = new JLabel();
panel.add(dimNameLabel);
shortDescTextField = new JTextField();
panel.add(new JLabel("Short Description:"));
panel.add(shortDescTextField);
shortDescTextField.getDocument().addDocumentListener(new DocumentListener()
{
public void insertUpdate(DocumentEvent e)
{
changed();
}

public void removeUpdate(DocumentEvent e)
{
changed();
}

public void changedUpdate(DocumentEvent e)
{
changed();
}
});
}

public boolean isViewerForType(Connection conn, String name)
throws Exception
{
return true;
}

// Get the MdmMetadataProvider of the session.
private MdmMetadataProvider getMetadataProvider(Map params)
{
Object dp = params.get("DATAPROVIDER");
if (dp instanceof MdmMetadataProvider)
{
MdmMetadataProvider mdp = (MdmMetadataProvider)dp;
return mdp;
}
return null;
}

// Get the currently selected dimension and the schema from the params Map.
// Get the MdmMetadataProvider and get the MdmPrimaryDimension for the
// dimension.
private MdmPrimaryDimension getDimension(Map params)
{
Object obj = null;
String schema = "";
if (params != null)
{
obj = params.get("dimobj");
schema = (String)params.get("schema");
}
if (obj instanceof String)
{
String dimName = (String)obj;
MdmMetadataProvider mdp = getMetadataProvider(params);
if (mdp != null)
{
MdmObject mobj = mdp.getMetadataObject(schema + "." + dimName);
if (mobj != null && mobj instanceof MdmPrimaryDimension)
{
MdmPrimaryDimension dim = (MdmPrimaryDimension)mobj;
return dim;
}
else
System.out.println("Cannot get the " + dimName + " dimension.");
}
}
return null;
}

// Get the dimension and the short description of it.
// Display the short description.
private void read(Map params)
{
MdmPrimaryDimension dim = getDimension(params);
if (dim != null)
{
dimNameLabel.setText(dim.getName());
mdmShortDescrDescrType =
MdmDescriptionType.getShortDescriptionDescriptionType();
String shortDesc = dim.getDescription(mdmShortDescrDescrType);
shortDescTextField.setText(shortDesc);
}
}

public JPanel getPanel(Connection conn, String name, Map params)
throws Exception
{
read(params);
return panel;
}

public void cleanup(String name)
{
}

public boolean validate(Connection conn, Component parent, String name,
Map params)
throws Exception
{
String invalidDescr = "foo";
if (shortDescTextField.getText().equals(invalidDescr))
{
JOptionPane.showMessageDialog(parent, "Description cannot be " +
invalidDescr + ".");
return false;
}
return true;
}

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

public void showHelp(Connection conn, Component parent, String name,
Map params)
throws Exception
{
JOptionPane.showMessageDialog(parent, "In Help.");
}

public boolean save(Connection conn, Component parent, String name,
Map params)
throws Exception
{
// Get the currently selected dimension and set the short description for
// it.
MdmPrimaryDimension dim = getDimension(params);
dim.setDescription(mdmShortDescrDescrType, shortDescTextField.getText());
// Get the MdmMetadataProvider.
MdmMetadataProvider mdp = getMetadataProvider(params);
if (mdp == null)
return false;
// Get the DataProvider and the TransactionProvider and commit the current
// Transaction. If the Transaction is not committable, roll it back.
try
{
mdp.getDataProvider().getTransactionProvider().commitCurrentTransaction();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(parent, e.getMessage(), "Error",
JOptionPane.ERROR_MESSAGE);
try
{
mdp.getDataProvider()
.getTransactionProvider()
.rollbackCurrentTransaction();
}
catch (Exception e2)
{
// Ignore the exception.
}
}
return true;
}

public void setValueChanged(Connection conn, String name, Map params,
PanelChanged parentPanelChanged)
{
this.parentPanelChanged = parentPanelChanged;
}

// Calls the changed() method of the PanelChanged object supplied by
// Analytic Workspace Manager when it calls the setValueChanged method.
public void changed()
{
if (parentPanelChanged != null)
parentPanelChanged.changed();
}
}

図3-10に、aw.xmlドキュメントのMyDims <AWMNode>の結果を示します。「MyDims」フォルダは「GLOBAL」アナリティック・ワークスペース・フォルダに表示されます。ユーザーは「MyDims」フォルダを選択しました。プロパティ・インスペクタには、MyDims <AWMNode>のSQL文とその結果が表示されます。結果は、DIMENSION_NAMEおよびDIMENSION_TYPEというヘッダーの列がある表です。列の行には、アナリティック・ワークスペースのディメンションの名前およびディメンションのタイプが含まれています。

MyDims <AWMNode>には、ディメンションの名前を取得するSQL文を含む名前のない子<AWMNode>があります。これらの名前は、ナビゲーション・ツリーの「MyDims」フォルダに表示されます。名前のない子<AWMNode>は、DimEditorPluginプラグインも指定します。

図3-10 aw.xmlのMyDims <AWMNode>の結果

「図3-10 aw.xmlのMyDims <AWMNode>の結果」の説明

図3-11に、ユーザーがナビゲーション・ツリーの「MyDims」フォルダのCHANNELディメンションを選択した後のAnalytic Workspace Managerのユーザー・インタフェースを示します。プロパティ・インスペクタには、DimEditorPluginによって指定されたユーザー・インタフェースが表示されます。このユーザー・インタフェースにはテキスト・フィールドがあり、ユーザーは短い説明の属性の値を変更できます。

図3-11 DimEditorPluginの結果

「図3-11 DimEditorPluginの結果」の説明

図3-12に、aw.xmlドキュメントのMyDims <AWMNODE>の子であるMyLevels <AWMNODE>の結果を示します。MyLevels <AWMNode>のSQL文は、現在選択されているディメンションのLEVEL_NAME列をUSER_CUBE_DIM_LEVELS表から選択します。図3-12に、「CHANNEL」フォルダの「MyLevels」フォルダが選択されたナビゲーション・ツリーを示します。プロパティ・インスペクタには、問合せの結果が表示されます。

図3-12 aw.xmlのMyDims下のMyLevels <AWMNode>の結果

「図3-12 aw.xmlのMyDims下のMyLevels <AWMNode>の結果」の説明

図3-13に、aw.xmlドキュメントのMyLevels <AWMNODE>の子である名前のない<AWMNODE>の結果を示します。名前のない<AWMNode>のSQL文は、現在選択されているディメンションと表のすべての列をUSER_CUBE_DIM_LEVELS表から選択します。図3-13に、「CHANNEL」フォルダの「MyLevels」フォルダのTOTALレベルが選択されたナビゲーション・ツリーのフォルダを示します。プロパティ・インスペクタには、問合せの結果が表示されます。

図3-13 aw.xmlのMyLevels <AWMNode>にネストされた<AWMNode>の結果

「図3-13 aw.xmlのMyLevels <AWMNode>にネストされた<AWMNode>の結果」の説明

プラグインの説明の例

「使用可能なプラグインの説明」で説明するように、awmplugin.xmlファイルにはAnalytic Workspace Managerによって表示されるJavaプラグインの説明が含まれています。図3-14に、例3-10のawmplugin.xmlドキュメントによって指定された情報を表示する「情報」ダイアログ・ボックスの「プラグイン」タブを示します。

図3-14 「バージョン情報」ダイアログ・ボックスの「プラグイン」タブ

「図3-14 「バージョン情報」ダイアログ・ボックスの「プラグイン」タブ」の説明

例3-10に、図3-14に示す結果を生成するawmplugin.xmlドキュメントを示します。

例3-10 awmplugins.xmlドキュメントの作成

<?xml version="1.0" encoding="utf-8" ?>
<AWMPlugins>
<Plugin name="Cube Viewer Plug-in" version="1.0"
class="plugin11202.CubeViewerPlugin">
<Description>Displays the name of a cube.</Description>
</Plugin>
<Plugin name="Level Viewer Plug-in" version="1.0"
class="plugin11202.LevelViewerPlugin">
<Description>Displays the name of a level.</Description>
</Plugin>
<Plugin name="Measure Viewer Plug-in" version="1.0"
class="plugin11202.MeasureViewerPlugin">
<Description>Displays the name of a measure.</Description>
</Plugin>
<Plugin name="Delete Dimension Plug-in" version="2.0"
class="plugin11202.DeleteDimPlugin">
<Description>Deletes a dimension in the MyDims folder.</Description>
</Plugin>
<Plugin name="Edit Dimension Plug-in" version="2.0"
class="plugin11202.DimEditorPlugin">
<Description>Edits the short description of a dimension.</Description>
</Plugin>
<Plugin name="View XML Plug-in" version="1.0" class="plugin11202.ViewXMLPlugin">
<Description>Displays the XML for an OLAP measure.</Description>
</Plugin>
</AWMPlugins>

索引

A  B  C  D  E  F  G  H  I  J  L  M  N  O  P  R  S  T  U  V  X

記号

$

expressionを囲む, 1.2.5.3

{}

バインド変数を囲む, 1.1.4, 1.2.5.2

ハイパーテキスト・パラメータを囲む, 1.2.5.2

A

Analytic Workspace Manager

プラグインの構成, 2.1.1

カスタマイズの方法, はじめに

awパラメータ

AWMPluginメソッド, 2.2

AWMCalcs要素

計算テンプレートのルート, 1.2.5.1

awmcalcs.xmlドキュメント

例, 1.2.2, 1.2.3, 1.2.4

ダウンロード可能なサンプル, 3.1

データベース・ディレクトリ内の場所, 1.2.1

AWMNode要素

AWMTree要素, 1.1.6.2

AWMPluginインタフェース

例, 3.2.1, 3.2.2

起動時にロードされた実装, 2.1.2

指定, 2.2

AWMPlugins要素

プラグイン説明のルート, 2.5.2.1

awmplugin.xmlドキュメント

説明, 2.5

例, 3.4

AWMTree要素

SQLレポートのルート, 1.1.6.1

AWMTree接頭辞

typeパラメータ値, 2.2.1

awmtree.xmlドキュメント

例, 1.1.2, 1.1.3, 1.1.4

ダウンロード可能なサンプル, 3.1

ディレクトリ内の場所, 1.1.1

ナビゲーション・ツリー内の場所, 1.1.5

aw.xmlドキュメント

例, 3.3.3

ナビゲーション・ツリー内の場所, 1.1.5

B

バインド変数

カッコで囲まれた, 1.1.4, 1.2.5.2

AWMPlugin, 2.2.2.2

計算テンプレート, 1.2.2, 1.2.5.2

カスタム・レポート, 1.1.4

小文字を使用した参照, 2.2.2.2

WHERE句内の値の置換え, 1.1.1

WHERE句内の値の置換え, 例, 1.1.4

BIND_MAP Map

AWMPlugin, 2.2.2.2

キーおよび値, 例, 2.2.3

カッコ

バインド変数を囲む, 1.1.4, 1.2.5.2

ハイパーテキスト・パラメータを囲む, 1.2.5.2

C

Calc要素

AWMCalcs要素, 1.2.5.2

CalcOptional要素

CalcまたはCalcOptionalDefinitions要素, 1.2.5.3

計算オプションのサポート, 1.2.3

CalcOptionalDefinitions要素

すべての計算へのオプションの適用, 1.2.3

AWMCalcs要素, 1.2.5.4

計算テンプレート

オプションの追加, 1.2.3

説明, 1.2

例, 1.2.2

Category要素

AWMCalcs要素, 1.2.5.5

changedメソッド, 2.3.2, 2.4 class属性

Plugin要素, 2.5.2.2

cleanupメソッド, 2.3.1, 2.4 プラグイン用のAnalytic Workspace Managerの構成, 2.1.1 connパラメータ

AWMPluginメソッド, 2.2

ViewerPluginメソッド, 2.3.1

Connectionオブジェクト, 2.1.2 CubeViewerPluginクラス, 3.3.3 cube.xmlドキュメント

例, 3.3.2

ナビゲーション・ツリー内の場所, 1.1.5

カスタム計算, 1.2 カスタムSQLレポート

ナビゲーション・ツリーへの追加, 1.1

例, 1.1.2, 1.1.3, 1.1.3, 1.1.4

customizingAWM_examples11202.zipファイル

サンプル・コードを含む, 3.1

D

default属性

Param要素, 1.2.5.7

DeleteDimPluginクラス, 3.2.2 description属性

Calc要素, 1.2.5.2

Category要素, 1.2.5.5

Description要素

AWMPlugins要素, 2.5.2.3

DimEditorPluginクラス, 3.3.4 dimension.xml

例, 3.3.1

ナビゲーション・ツリー内の場所, 1.1.5

ドル記号

expressionを囲む, 1.2.5.3

E

EditorPluginインタフェース

例, 3.3.4

指定, 2.3.2

プラグインの有効化, 2.1.1 例

ダウンロード可能, 3.1

awmcalcs.xml, 1.2.2, 1.2.3, 1.2.4

AWMPlugin, 3.2.1, 3.2.2

awmplugin.xml, 3.4

awmtree.xml, 1.1.2, 1.1.3, 1.1.4

aw.xml, 3.3.3

cube.xmlドキュメント, 3.3.2

dimension.xml, 3.3.1

EditorPlugin, 3.3.4

schema.xml, 1.1.5

ViewerPlugin, 3.3.1, 3.3.2, 3.3.3

expression属性

Calc要素, 1.2.5.2

CalcOptional要素, 1.2.5.3

Item要素, 1.2.5.6

式構文, 1.2.1

F

フォルダ

ナビゲーション・ツリーでの作成, 1.1.3

G

getMenuメソッド, 2.1.2.1, 2.2, 2.4

getPanelメソッド, 2.3.1, 2.3.2, 2.4

H

handleメソッド, 2.1.2.1, 2.2, 2.4

ヘッダー

XMLドキュメント, 1.1.1, 1.2.1, 2.5.1

ハイパーテキスト・パラメータ

リンクの作成, 1.2.2

カッコで囲まれた, 1.2.5.2

2つ以上を参照, 1.2.5.2

I

icon属性

例, 1.1.5

AWMNode要素, 1.1.6.2

アイコン

JARファイル内, 1.1.5

JARファイル内, 例, 1.1.5

isSupportedメソッド, 2.1.2.1, 2.2, 2.4 isViewerForTypeメソッド, 2.3.1, 2.3.2, 2.4 Item要素

Param要素, 1.2.5.6

J

JARファイル

複数のXMLドキュメントとプラグインを含む, 2.4

ディレクトリ構造, 1.1.5

含まれるアイコンのファイル, 1.1.5

起動時にロード, 2.4

ロケーション, 2.4

プラグインに必要, 2.4

L

リーフ要素

定義, 1.1.4

LevelViewerPluginクラス, 3.3.1

M

MeasureViewerPluginクラス, 3.3.2

N

name属性

Calc要素, 1.2.5.2

CalcOptional要素, 1.2.5.3

Category要素, 1.2.5.5

Param要素, 1.2.5.7

Plugin要素, 2.5.2.2

AWMNode要素, 1.1.6.2

nameパラメータ

ViewerPluginメソッド, 2.3.1

O

objパラメータ

AWMPluginメソッド, 2.2, 2.2.1

OLAP式構文, 1.2.1 オプション

計算テンプレートへの追加, 1.2.3

Oracle Technology Network(OTN), 3.1, 3.1

P

Param要素

CalcまたはParams要素, 1.2.5.7

Params要素

AWMCalcs要素, 1.2.5.8

paramsパラメータ

ViewerPluginおよびEditorPluginのキーおよび値, 2.3.3

ViewerPluginのキーおよび値, 例, 2.3.4.1

AWMPluginのキーおよび値, 2.2.2

AWMPluginのキーおよび値, 例, 2.2.3

EditorPluginのキーおよび値, 例, 2.3.4.2

AWMPluginメソッド, 2.2

ViewerPluginメソッド, 2.3.1

parentパラメータ

AWMPluginメソッド, 2.2

EditorPluginメソッド, 2.3.2

プラグインの説明

作成, 2.5.1

例, 3.4

プラグイン・ディレクトリ

指定, 2.1.1

Plugin要素

AWMPlugins要素, 2.5.2.2

plugin11202パッケージ, 1.1.5 plugin11202.jarファイル

サンプル・プラグインを含む, 3.1

プラグイン

説明, 2.5.1

有効化, 2.1.1

例, 3.2.1, 3.2.2, 3.3.1, 3.3.2, 3.3.3, 3.3.4

指定時にパッケージを含む, 1.1.5

作成するための前提条件, 2.4

説明の入力, 2.5

R

ナビゲーション・ツリーのリフレッシュ, 2.1.2.1

refreshTreeメソッド, 2.1.2.1, 2.2, 2.4

レポート

SQLレポートを参照

revertメソッド, 2.3.2, 2.4 ルート要素

計算テンプレート, 1.2.5.1

プラグインの説明, 2.5.2.1

SQLレポート, 1.1.6.1

実行時の選択

AWMNodeのtypeパラメータによって保存, 1.1.4

S

saveメソッド, 2.3.2, 2.4

schema.xmlドキュメント

例, 1.1.5

ナビゲーション・ツリー内の場所, 1.1.5

setValueChangedメソッド, 2.3.2, 2.4 showHelpメソッド, 2.3.2 ShowIfQueryTrue要素

AWMNode要素, 1.1.6.3

sql属性

ShowIfQueryTrue要素, 1.1.6.3

AWMNode要素, 1.1.6.2

SQLレポート

ナビゲーション・ツリーへの追加, 1.1

オブジェクト・フォルダでの作成, 1.1.5, 1.1.5

XMLドキュメントの作成, 1.1.1

例, 1.1.2, 1.1.3, 1.1.3, 1.1.4

XMLドキュメント構造, 1.1.6

式の構文, 1.2.1

T

text属性

CalcOptional要素, 1.2.5.3

Item要素, 1.2.5.6

type属性

CalcOptional要素, 1.2.5.3

Param要素, 1.2.5.7

AWMNode要素, 1.1.6.2

typeパラメータ

AWMNode, ランタイム選択の保存, 1.1.4

AWMPluginメソッド, 2.2, 2.2.1

U

ui属性

Calc要素, 1.2.5.2

V

validateメソッド, 2.3.2, 2.4

version属性

Plugin要素, 2.5.2.2

ViewerPluginインタフェース

例, 3.3.1, 3.3.2, 3.3.3

指定, 2.3.1

viewSql属性

AWMNode要素, 1.1.6.2

ViewXMLPluginクラス, 3.2.1

X

XMLドキュメント

計算, 1.2.1, 1.2.1

プラグインの説明, 2.5, 3.4

SQLレポート, 1.1.1

ヘッダー, 1.1.1, 1.2.1, 2.5.1

起動時にロード, 2.1.2

XMLフォーマット

計算, 1.2.5

プラグインの説明, 2.5.2

SQLレポート, 1.1.6

Copyright (C) 2006, 2010, Oracle and/or its affiliates. All rights reserved.