Analytic Workspace Managerは、別のSQLインタフェースを開く必要なしにOracle Databaseのデータ・ディクショナリおよびシステム表を問い合せることができるように、数々のSQLレポートを提供します。また、計算済メジャーを生成するための多数のテンプレートのリストも提供します。カスタムSQLレポートおよび計算テンプレートを追加して、これらの両方の機能を補完できます。
これらのカスタマイズを定義するには、XMLドキュメントを作成します。XMLの概要は、http://www.w3schools.comのW3Schools XMLチュートリアルなどの情報を参照してください。XMLドキュメントの構文を検証するには、XML対応のエディタまたはブラウザを使用します。
この章の内容は次のとおりです。
Analytic Workspace Managerのナビゲーション・ツリーに、他の組込みのレポートとともに表示されるレポートを追加できます。レポートの名前およびSQL SELECTコマンドを入力します。オプションで、実行時にレポートの内容を変更したり、フォルダに編成できます。
Analytic Workspace Managerで使用できるようにする情報を返すSQL問合せを作成します。
Analytic Workspace Managerの実行可能ファイルがあるディレクトリにawmtree.xmlという名前のテキスト・ファイルを作成します。通常、このディレクトリはOracle_home/olap/awmです。
<?xml version="1.0" encoding="utf-8"?>
サイトに適したエンコーディングを指定します。
「参照: SQLレポートの要素」の説明に従って、テンプレートのXMLを入力します。
<AWMNode>要素のsql属性については、ステップ1で作成したSELECTコマンドを入力します。WHERE句の値を親の<AWMNode>要素のバインド変数に置き換えることができます。「バインド変数を使用したレポートの内容の制限」を参照してください。
ナビゲーション・ツリーをリフレッシュします。ツリーの最後に新しいレポートが表示されます。
新しいレポートが表示されない場合は、XMLの構文エラーを探します。
図1-1に、Analytic Workspace Managerのナビゲーション・ツリーに表示されたMy User Viewsという名前の新しいレポートを示します。レポートには、問合せSELECT view_name FROM user_viewsの結果が表示されます。
例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文を指定します。
フォルダを使用すると、レポートを容易に編成できます。フォルダはSQL文がない単純な<AWMNode>要素であり、他の<AWMNode>要素の親です。<AWMNode>要素は必要な深さにネストできます。
図1-2に、My SQL Reportsという名前のフォルダを示します。このフォルダには、My User TablesとMy User Viewsの2つのレポートがあります。
例1-2のXMLドキュメントは、2つのレポートを定義する<AWMNode>要素が、「My SQL Reports」フォルダを定義する<AWMNode>要素の子であることを示します。
バインド変数では、ナビゲーション・ツリー内の値リストから実行時に選択する内容に基づいてレポートの内容が制限されます。図1-3に、My User Viewsレポートによって返されるビューのリストを示します。リストは、プロパティ・インスペクタではなく、ナビゲーション・ツリーに表示されています。プロパティ・インスペクタには、ツリーで選択した特定のビューのレポートが表示されます。
最も深くネストされた<AWMNode>要素(「リーフ」要素)は、プロパティ・インスペクタのグリッドに表示され、複数の列を返すことができます。親要素はナビゲーション・ツリーに表示され、列(つまり、フォルダ)を返さないか、ここに示すように、1つの列を返します。
<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ドキュメント内にある必要があります。
これらのファイルは、プラグイン・ディレクトリのJARファイル内にある必要があります。
オブジェクト・フォルダにレポートを作成するには、次の手順を実行します。
Analytic Workspace Managerを開き、「ツール」メニューの「構成」を選択します(図2-1を参照)。「構成」ダイアログ・ボックスが表示されます。
「プラグインを有効化」を選択し、パラメータがまだ設定されていない場合は、図2-2に示すようにプラグイン・ディレクトリのパスを入力します。
「OK」をクリックし、Analytic Workspace Managerを閉じます。
1つ以上のXMLドキュメント・ファイルを作成します。
プラグイン・ディレクトリで、XMLファイルおよびそれらのファイルによって参照されるアイコンを含むJARファイルを作成します。これらのすべてに対して1つのJARファイルを作成することも、個々のJARファイルを作成することもできます。
Analytic Workspace Managerを開き、ナビゲーション・ツリーを展開してレポートを表示します。
図1-4に、schema.xmlドキュメントで記述されたMy Tablesという名前のレポート・フォルダを示します。ナビゲーション・ツリーでは、このフォルダはカスタム・アイコン(赤いアイコン)で示されます。「My Tables」フォルダは「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レポートのXMLドキュメントには、例1-5に示すような基本形式があります。
Analytic Workspace Managerのカスタム・レポートを含むものとしてドキュメントを識別するルート要素。1つ以上の<AWMNode>要素を含みます。
含まれる項目
<AWMNode>
属性
なし
レポート・フォルダまたはSQLレポートを定義します。1つ以上の<AWMNode>要素を含みます。
含まれる項目
<AWMNode>、<ShowIfQueryTrue>
属性
<AWMNode>には次の属性があります。
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ピクセルである必要があります。
「計算済メジャーの作成」ダイアログ・ボックスに表示される計算テンプレートを他の計算と同じように定義できます。OLAP式構文を使用して、計算の名前、テンプレートのテキストおよび計算を入力します。
テンプレートに含めたいタイプの計算を実行するカスタム・メジャーをAnalytic Workspace Managerで作成します。このカスタム・メジャーを使用して、テンプレートの式の構文を検証します。
|
関連項目: OLAP式構文リファレンスについては、Analytic Workspace Managerのヘルプ。 |
Analytic Workspace Managerの実行可能ファイルがあるディレクトリ(通常は、ORACLE_HOME/olap/awm)にawmcalcs.xmlという名前のテキスト・ファイルを作成します。
<?xml version="1.0" encoding="utf-8"?>
サイトに適したエンコーディングを指定します。
「参照: 計算の要素」の説明に従って、テンプレートのXMLを入力します。
<Calc>要素のexpression属性については、前に作成したカスタム・メジャーの計算を切り取って貼り付けます。メジャー、ディメンションなどの名前をuiパラメータの変数に置き換えます。
Analytic Workspace Managerを開きます。新しいカテゴリおよびテンプレートが「計算済メジャーの作成」ダイアログ・ボックスの「計算タイプ」リストの最後に表示されます。
新しいエントリが表示されない場合は、XMLの構文エラーを探します。XMLドキュメントへの変更を確認するには、「計算済メジャーの作成」ダイアログ・ボックスを再度開きます。
図1-5に、「計算済メジャーの作成」ダイアログ・ボックスの「計算タイプ」リストを示します。このリストには、DiscountとAverageの2つの追加の計算を含むMy New Calcsという名前の新しいフォルダがあります。
図1-6に、ユーザーがツリーからDiscountを選択したときに表示される「一般」タブのテンプレート部分を示します。
例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に、<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に、「計算タイプ」リストに表示された計算を示します。
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-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-11では、この基本構造を拡張して計算にオプションの定義を含めます。
例1-11 オプションがある計算のXML構造
<AWMCalcs> <CalcOptionalDefinitions> <CalcOptional> <Category> <Calc> <CalcOptional>
例1-12では、基本構造を拡張してユーザー・インタフェースに選択リストを含めます。
次に、要素の説明を示します。
このドキュメントをAnalytic Workspace Managerのカスタム計算テンプレートを含むものとして識別するルート要素。<Category>要素を含み、<CalcOptionalDefinitions>要素、<Params>要素、またはその両方を含めることもできます。
含まれる項目
<CalcOptionalDefinitions>、<Category>、<Params>
属性
なし
計算テンプレートを説明します。<CalcOptional>要素または1つ以上の<Param>要素、あるいはその両方を含めることができます。
含まれる項目
<CalcOptional>、<Param>
属性
<Calc>には次の属性があります。
description: 計算の説明。Analytic Workspace Managerによって計算テンプレートのリストに説明が追加されます。
ui: テンプレートのテキスト。Analytic Workspace Managerによって「計算済メジャーの作成」ダイアログ・ボックスの「計算タイプ」に表示されます。ハイパーテキスト・パラメータをカッコ{}で囲みます。表1-1に、有効なパラメータを示します。
expression: 計算済メジャーによって実行される計算。この計算は、式構文を使用し、バインド変数としてui属性のハイパーテキスト・パラメータを使用することにより定義されます。バインド変数をカッコ{}で囲みます。ui属性で同じパラメータが2回以上使用される場合は、{measure:1}と{measure:2}のように、表示される順序でパラメータを参照します。簡単な例については、例1-6を参照してください。
表1-1 ui属性のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
選択されたディメンションの属性をリスト表示します。 |
|
|
現在のキューブのすべてのディメンションをリスト表示します。 |
|
|
選択されたディメンションのメンバーをリスト表示します。 |
|
|
選択されたディメンションの階層をリスト表示します。 |
|
|
選択された階層のレベルをリスト表示します。 |
|
|
選択されたディメンションのレベルをリスト表示します。 |
|
|
指定された値のリストを次の形式で表示します。
または、 |
|
|
現在のキューブと共通のディメンションが少なくとも1つあるアナリティック・ワークスペースのすべてのメジャーをリスト表示します。 |
|
|
数値入力が可能なテキスト・フィールドを表示します。 |
|
|
任意のテキスト入力が可能なテキスト・フィールドを表示します。 |
|
|
現在のキューブの時間ディメンションをリスト表示します。 |
|
|
時間ディメンションがあるすべてのメジャーをリスト表示します。 |
|
|
|
|
|
|
基本的な式を変更するために1つ以上の計算で使用できるチェック・ボックスを定義します。たとえば、小数が生じる計算で、結果を割合で返す百分率オプションを提供できます。
チェック・ボックスを表示する<Calc>要素に<CalcOptional>を含めます。<Calc>要素内でオプションを完全に定義するか、または<CalcOptionalDefinitions>要素内でオプションを定義し、<Calc>要素の2番目の<CalcOptional>要素を使用してオプションを名前で参照できます。
<Calc>要素に<CalcOptional>要素を含めることができます。<CalcOptionalDefinitions>要素には1つ以上の<CalcOptional>要素を含めることができます。
含まれる項目
なし
属性
<CalcOptional>には次の属性があります。
複数の計算で参照できるように、1つ以上の<CalcOptional>要素を含みます。この要素は<AWMCalcs>の直後にある必要があります。
含まれる項目
<CalcOptional>
属性
なし
Analytic Workspace Managerの計算リストのヘッダーを定義します。1つ以上の<Calc>要素を含みます。
含まれる項目
<Calc>
属性
<Category>には次の属性があります。
<Calc> ui属性で参照される値リストまたは数値フィールドを説明します。ユーザーによって行われた選択に対応する式は、表示された値ではなく計算に入力されます。この要素には1つ以上の<Item>要素を含めることができます。
含まれる項目
<Item>
属性
<Param>には次の属性があります。