数式の操作

Planningメンバー式は、データベースがリフレッシュされる際にEssbaseネイティブ式および評価されEssbaseコード・ブロックへ展開されるPlanning数式をサポートします。こうした式では、Planningが計算で数値に置き換えるスマート・リストを名前でアドレス指定できます。

「メンバー式」タブのテキスト・ボックスに、メンバー式内の事前定義済の数式を含めて、「検証」ボタンを使用してテストします。また、ロードすることもできます。

アウトラインに頼っているビジネス・ルールや計算スクリプトを更新することなくディメンションのアウトラインを更新できます。計算はアウトライン内で特定数よりさらに孤立します。スマート・リストは計算でオブジェクトとして使用できます。数式を使用しても、データベースのリフレッシュ時にのみ実行されるので、パフォーマンスが低下することはありません。

メンバー式で数式を使用するには:

  1. 「管理」「管理」「ディメンション」の順に選択します。

  2. メンバーの式を追加または変更するディメンションを選択します。

  3. メンバーを選択し、「編集」をクリックします。

  4. 「メンバー式」を選択します。

  5. 次のフィールドのオプションを選択します:

    • プラン・タイプ

      注意:

      デフォルトのプラン・タイプに入力された式は、特定のプラン・タイプに入力された別の式によって上書きされないかぎり、すべてのプラン・タイプに適用されます。

    • データ・ストレージ - データ・ストレージ・オプションを選択します。デフォルトは「保管」です。

      注意:

      プラン・タイプ固有のデータ・ストレージ・フィールドには、「共有」または「ラベルのみ」オプションは表示されません。これは、あるプラン・タイプで別のプラン・タイプではない「共有」または「ラベルのみ」にメンバーを設定できないためです。

    • 解決順 - 集約ストレージ・プラン・タイプに対してのみ、解決順は、式が評価される順序を指定します。0から100000の間の整数を入力します(または矢印を使用して数を増減します)。指定された解決順を持つメンバーの式は、低い解決順から高い解決順に計算されます。デフォルトは0です。

  6. テキスト・ボックスで、当該メンバー用の式を定義します。

    Planning数式およびEssbaseネイティブ式をメンバー式に含めることができます。Essbaseネイティブ式における構文、ルールおよび使用方法については、『Oracle Essbaseデータベース管理者ガイド』を参照してください。

    Planningは、メンバー式で使用できる事前定義の数式を提供します。独自の数式を編集したり作成することはできません。

  7. オプション: メンバー式が有効かどうかを確認するには、「検証」をクリックします。

  8. オプション: メンバー式にエラーがある場合は、「詳細の表示」をクリックするとエラーの理由が表示されます。

  9. オプション: メンバー式の変更を保存しない場合は、「リセット」をクリックして、前のメンバー式を復元できます。

  10. 「保存」をクリックします。

前提条件

メンバー式で数式を使用する前に、Essbase式、計算およびアプリケーションのアウトラインを理解する必要があります。『Oracle Essbaseデータベース管理者ガイド』を参照してください。

構文

メンバー計算数式は関数および変数をサポートします。計算数式を作成する場合には、次の関数および変数の構文ルールに従ってください。

  • 変数やプロパティは大カッコ([ ])で囲みます。大カッコを省略すると、変数はネイティブ変数として扱われます。

  • メンバー名を引用符で囲みます。

  • 変数では大文字と小文字は区別されますが、余計なスペースや、アンダースコア(_)のような文字は使用できません。

  • 式には他の関数へのサブコールも含めることができます。

  • 数字が必要な箇所には、テキストは入力できません。

  • アウトラインの順番は、メンバー式では重要になります。たとえば、まだ計算されていない値を参照できません。

スマート・リスト変数を変数として含める

数式"Status"= [Status.Departed]などのように、数式内の変数としてスマート・リストを含めることができます。

"Status"はメンバー名であり、Statusはスマート・リスト名、Departedはスマート・リストのエントリです。Departedに対するスマート・リストのIDが2の場合、メンバー式でStatus.Departedを2に置き換えます(Planningはスマート・リストを数字として扱います)。Departedに対するスマート・リストのIDが2の場合、計算に2をおき、データベースに2を保管します。

スマート・リストを次のフォーマットで記述します。[SmartListName.SmartListEntry]

数式

Planning数式には、これらの事前定義済みの変数および関数を含めることができます。

表90.  数式内の変数

変数

説明

OpenInputValueBlock

Planningアプリケーションが複数通貨アプリケーションである場合はIF文を生成し、単一通貨アプリケーションである場合は空の文字列を生成します。ClosedInputValueBlockとともに使用されます。

CloseInputValueBlock

Planningアプリケーションが複数通貨アプリケーションである場合はEnd IF文を生成し、単一通貨アプリケーションである場合は空の文字列を生成します。OpenInputValueBlockとともに使用されます。

NumberOfPeriodsInYear

年内の期間を戻します。

NumberOfYears

アプリケーション内の年数を戻します。

表91.  数式内の関数

関数

説明

Dimension(dimTag)

定義済のディメンションの名前を戻します。dimtagは次のとおりです。

  • DIM_NAME_PERIOD

  • DIM_NAME_YEAR]

  • DIM_NAME_ACCOUNT

  • DIM_NAME_ENTITY

  • DIM_NAME_SCENARIO

  • DIM_NAME_VERSION

  • DIM_NAME_CURRENCY

Period(periodName)

指定した期間を戻します。periodNameの選択肢は次のとおりです:

  • FIRST_QTR_PERIOD

  • SECOND_QTR_PERIOD

  • THIRD_QTR_PERIOD

  • FOURTH_QTR_PERIOD

  • FIRST_PERIOD

  • LAST_PERIOD

CrossRef(accountName)

勘定科目の相互参照を生成します。

CrossRef(accountName, prefix)

勘定科目の相互参照を生成します。勘定科目名には定義した接頭辞が含まれます。デフォルトの接頭辞はNoで、空白をあけて勘定科目名が続きます。たとえば、「No Salary」とします。

getCalendarTPIndex()

期間のインデックスを戻す式を生成します。暦年に基づくインデックスです。

getFiscalTPIndex()

期間のインデックスを戻す式を生成します。年度に基づくインデックスです。

CYTD(memberName)

メンバー用に暦年の通算日数を計算する式を生成します。

CYTD(memberName, calTpIndexName, fiscalTpIndexName)

メンバー用に暦年の通算日数を計算する式と、暦年および会計年度に基づいた期間のインデックスを生成します。メンバーの名前が変更されたときに使用します。デフォルトのメンバー名は「暦期間-インデックス」および「会計期間-インデックス」です。

一般的なエラー

構文のルールに注意して従います。数式構文にエラーが含まれる場合、メンバー式を検証した後にエラー・メッセージが戻されます。エラー・メッセージの情報を得るには、「メンバー式」タブの「詳細の表示」をクリックします。最も一般的なエラー・メッセージは、「実行に失敗しました。」です。これは、式でパラメータを不正に使用すると発生します。次のアクションが「実行に失敗しました」エラー・メッセージの原因となります:

  • 数式でパラメータの数を間違って入力

  • メンバー名、関数または変数名のスペルミス

  • メンバー名を引用符で囲んでいない

  • 文字列が必要な場所に数字が含まれている