エンティティ・ディメンションで、単一のエンティティに複数の親を含めることができ、親ごとに異なる動作をする代替階層を作成できます。親メンバーは異なる通貨を使用可能で、親の通貨メンバーで発生する換算は、これらのエンティティでは異なります。これを実現するため、エンティティのすべてのインスタンス間で入力データの一部のみが共有される部分共有メンバーを使用します。
次の例は、複数の親を持つリーフレベル・エンティティを示しています。
この例では:
エンティティE111は、P11とP12の両方の子です。
P11またはP12でE111として入力された入力データは、保存後に他方のエンティティにレプリケートされます。P11.E111メンバーとP12.E111メンバーのどちらでもデータを入力できます。
連結後のP11.E111とP12.E111の計算値は、異なることがあります。たとえば、アプリケーションが複数通貨のアプリケーションであるとします(E111の通貨がGBP)。P11の通貨はUSDで、P12の通貨はEURです。データをE111に入力すると、そのデータは常に通貨ディメンションのエンティティ通貨メンバーに入力されます。親通貨メンバーが計算されますが、GBPとUSD間、およびGBPとEUR間の為替レートは異なることがあるため、P11.E111とP12.E111の親通貨の値は異なります。
親レベルのエンティティに複数の親が含まれるエンティティ階層を作成することもできます。ただし、異なる子を持つ複数の親が親レベルに含まれる階層は、サポートされません。
代替階層を作成するには、部分共有エンティティ・メンバーを作成し、データ・ストレージ・メンバー・プロパティとして「共有」を選択します。共有メンバーの作成を参照してください。
共有階層を使用してレポート・ニーズに対応できますが、共有階層の数によってデータベースのサイズと連結時間が増加するため、パフォーマンスに影響します。
ベスト・プラクティス:
代替階層の最上位メンバーには、値の重複を回避するために、集計演算子を「無視」に設定する必要があります。
共有メンバーは、階層で非共有メンバーの後に追加する必要があります。
代替階層は、期末残高の外部で許可されますが、合計増減にロールアップする必要があります。
「メンバーの選択」で、親と子の関係を参照できます。エンティティを選択すると、「メンバーの選択」にそれがParent.Childのように表示されます(North America.USA
など)。次に、適切なエンティティを選択したり、エンティティに複数の親が含まれる場合は、異なる親に属するエンティティの各項目を選択したりできます。
トランザクション・データを入力する場合、プライマリ・メンバーまたは共有メンバーに対して1回のみデータを入力する必要があります。
データ・フォームにデータを1回入力することもできます。たとえば、E111が、2つの親(E11とE12)を持つ部分共有エンティティであるとします。データ・フォームで、E11.E111に100の金額を入力して保存すると、その100がすぐにE12.E111に表示されます。E12.E111の金額を150に変更して保存すると、同じ金額がE11.E111に反映されます。データ・フォームで、Parent.Childとしてエンティティ・ディメンションのメンバーを表示するかどうかと、その通貨を表示するかどうかを選択できます。フォーム・ディメンション・プロパティの設定を参照してください。
データをエクスポートすると、同じデータが部分共有エンティティでもエクスポートされ、そのデータはParent.Child形式でエクスポートされます。データ・ファイルの部分共有エンティティの一方にデータをインポートすると、そのデータは他方にもインポートされます。
仕訳の入力が部分共有エンティティの1つに転記されると、その値はそのエンティティのすべてのインスタンスに転記されます。
計算またはプロセス管理ステータスの変更につながる一方の部分共有エンティティに対する変更は、そのエンティティの他方のインスタンスにすべて反映されます。たとえば、一方のインスタンスが連結されてそのステータスが「OK」に変更されると、他方のインスタンスのステータスも「OK」に変更されます。同じルールが部分共有エンティティのロックとロック解除に適用されます。
エンティティに対して定義されたセキュリティおよび有効交差ルールも、その部分共有インスタンスに適用されます。
代替階層について学習するには、次のビデオをご覧ください。