カスタム定義計算マクロの作成

この項の内容:

カスタム定義マクロの理解

カスタム定義マクロの命名

カスタム定義マクロの作成

カスタム定義マクロの使用

カスタム定義マクロの表示

カスタム定義マクロの更新

カスタム定義マクロのコピー

カスタム定義マクロの削除

カスタム定義マクロのカタログのリフレッシュ

この章の情報は、ブロック・ストレージ・データベースのみに適用され、集約ストレージ・データベースとは関係がありません。集約ストレージとブロック・ストレージの比較。も参照してください。

カスタム定義マクロの理解

カスタム定義マクロを使用すると、複数の計算関数を単一の関数に結合できます。

カスタム定義マクロを開発してテストするときには、テスト・アプリケーション内にローカルに新しいマクロを作成してテストします。カスタム定義マクロは、テスト・アプリケーションでのテストが完了し、本番環境で使用できる状態になった後にのみ、グローバルに登録します。

カスタム定義マクロを作成および管理するには、データベース・マネージャ以上のセキュリティ・レベルが必要です。

カスタム定義マクロの命名

カスタム定義マクロに名前を付けるときには次のガイドラインに従います:

  • マクロ名は、たとえば@MYMACROのように、@記号で始めます。名前の残りの部分には、文字、数字および記号(@、#、$、_)を使用します。スペースはマクロ名に使用しないでください。

  • 他のマクロによってのみ呼び出されるマクロの場合、マクロ名を@_で始めて、一般用途のマクロおよび関数と区別します。

  • マクロには一意の名前を付けます。また、マクロ名は、カスタム定義関数の名前、および既存の計算関数の名前とも異なる必要があります。

    注:

    アプリケーションにグローバル・マクロと同じ名前のローカル・マクロが含まれている場合、ローカル・マクロが優先され計算に使用されます。

  • ローカル・マクロの場合、マクロ名の先頭にアプリケーション名を付けて、アプリケーション名とマクロ名をピリオドで区切る必要があります:

    AppName .@ MacroName

    例:

                Sample.@MYMACRO
             
  • グローバル・マクロは、そのマクロが作成されたEssbaseサーバー上で実行されているすべてのアプリケーションで使用できるので、アプリケーション名を割り当てる必要はありません。

カスタム定義マクロの作成

カスタム定義マクロを作成すると、Essbaseによってマクロ定義が記録され、マクロのカタログに保管されます。マクロは、カタログから削除されるまでの間、式と計算スクリプトで使用できます。

カスタム定義マクロは次の方法で登録します:

  • ローカルとして。この場合、マクロが作成されたEssbaseアプリケーションでのみそのマクロを使用できます

  • グローバルとして。この場合、マクロが作成されたEssbaseサーバー上で実行されているすべてのEssbaseアプリケーションでそのマクロを使用できます

  カスタム定義マクロを作成するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

カスタム定義マクロの作成

Oracle Essbase Administration Services Online Help

MaxL

create macro

『Oracle Essbaseテクニカル・リファレンス』

次のMaxLステートメントによって、Sampleアプリケーションで使用するための@COUNTRANGEという名前のローカル・マクロが作成されます:

      create macro Sample.'@COUNTRANGE'(Any) AS
'@COUNT(SKIPMISSING, @RANGE(@@S))'
spec '@COUNTRANGE(MemberRange)'
comment 'counts all non-missing values';
   

次のMaxLステートメントによって、@COUNTRANGEという名前のグローバル・マクロが作成されます:

      create macro'@COUNTRANGE'(Any) AS
'@COUNT(SKIPMISSING, @RANGE(@@S))'
spec '@COUNTRANGE(MemberRange)'
comment 'counts all non-missing values';
   

カスタム定義マクロの使用

カスタム定義マクロは、計算スクリプトまたは式でネイティブ計算コマンドと同じように使用できます。

  カスタム定義マクロを使用するには:

  1. 計算スクリプトまたは式を作成するか、既存の計算スクリプトまたは式を開きます。

    • ローカルに登録されている場合、マクロが作成されたアプリケーション内で計算スクリプトまたは式を使用する必要があります。

    • グローバルに登録されている場合、Essbaseサーバー上のすべてのアプリケーションですべての計算スクリプトまたは式を使用できます。

  2. カスタム定義マクロを計算スクリプトまたは式に追加します。

    たとえば、この章で作成した@COUNTRANGEカスタム定義マクロを使用するには、次の計算スクリプトを作成します:

                CountMbr = @COUNTRANGE(Sales, Jan:Dec);
             

    Sample.Basicデータベースでこの計算スクリプトを使用するか、「Sales, Jan:Dec」をテスト・データベースのメンバーの範囲に置き換えます。

  3. 計算スクリプトまたは式を保存したら、通常どおりに実行します。

カスタム定義マクロの表示

カスタム定義マクロを表示して、マクロが問題なく作成されたかどうか、またはカスタム定義マクロが、ローカルまたはグローバルのどちらであるかを判断します。

  カスタム定義マクロを表示するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

カスタム定義マクロの表示

Oracle Essbase Administration Services Online Help

MaxL

display macro

『Oracle Essbaseテクニカル・リファレンス』

カスタム定義マクロの更新

  カスタム定義マクロを更新するには:

  1. マクロがローカルとグローバルのどちらで登録されているかを確認します。

    カスタム定義マクロの表示を参照してください。

  2. マクロの定義を更新するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

カスタム定義マクロの編集

Oracle Essbase Administration Services Online Help

MaxL

create macroまたはreplace macro

『Oracle Essbaseテクニカル・リファレンス』

次のMaxLステートメントによって、Sampleアプリケーションでのみ使用されているローカル・マクロ@COUNTRANGEが変更されます:

      create or replace macro Sample.'@COUNTRANGE'(Any)
as '@COUNT(SKIPMISSING, @RANGE(@@S))';
   

次のMaxLステートメントによって、グローバル・マクロ@COUNTRANGEが変更されます:

      create or replace macro '@COUNTRANGE'(Any)
as '@COUNT(SKIPMISSING, @RANGE(@@S))';
   

カスタム定義マクロのコピー

カスタム定義マクロは、適切なアクセス権がある任意のEssbaseサーバーとアプリケーションにコピーできます。

  カスタム定義マクロをコピーするには、次のツールを使用します:

ツール

トピック

場所

Administration Services

カスタム定義マクロのコピー

Oracle Essbase Administration Services Online Help

MaxL

create macro

『Oracle Essbaseテクニカル・リファレンス』

カスタム定義マクロの削除

グローバル・カスタム定義マクロを削除する手順は、ローカル・カスタム定義マクロを削除する手順よりも複雑なので、DBAによってのみ実行する必要があります。

  カスタム定義マクロを削除するには:

  1. マクロがローカルとグローバルのどちらで登録されているかを確認します。

    カスタム定義マクロの表示を参照してください。

  2. カスタム定義マクロを使用している計算スクリプトまたは式がないことを確認します。

  3. マクロをマクロのカタログから削除するには、次のツールを使用します:

    ツール

    トピック

    場所

    Administration Services

    カスタム定義マクロの削除

    Oracle Essbase Administration Services Online Help

    MaxL

    drop macro

    『Oracle Essbaseテクニカル・リファレンス』

  4. そのマクロが関連付けられていたすべてのアプリケーションを再起動します。

    カスタム定義マクロのカタログのリフレッシュを参照してください。

次のMaxLステートメントによって、Sampleアプリケーションでのみ使用されているローカル・マクロ@COUNTRANGEが削除されます:

      drop macro Sample.'@COUNTRANGE';
   

次のMaxLステートメントによって、グローバル・マクロ@COUNTRANGEが削除されます:

      drop macro '@COUNTRANGE';
   

カスタム定義マクロのカタログのリフレッシュ

マクロを追加、更新または削除するときに、カスタム定義マクロのカタログをリフレッシュします。

  サーバー上のすべてのアプリケーションのカスタム定義マクロのカタログをリフレッシュするには、サーバーを再起動します。

  1つのアプリケーションのカスタム定義マクロのカタログをリフレッシュするには、refresh custom definitions MaxLステートメントを使用します。

次のMaxLステートメントによって、Sampleアプリケーションのカスタム定義マクロのカタログがリフレッシュされます:

         refresh custom definition on application sample;