エンティティ・ディメンションで、単一のエンティティに複数の親を含めることができ、親ごとに異なる動作をする代替階層を作成できます。親メンバーは異なる通貨を使用可能で、親の通貨メンバーで発生する換算は、これらのエンティティでは異なります。これを実現するため、エンティティのすべてのインスタンス間で入力データの一部のみが共有される部分共有メンバーを使用します。
次の例は、複数の親を持つリーフレベル・エンティティを示しています。
この例では:
エンティティ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」に変更されます。「期間別拡張組織」が有効になっていないかぎり、部分共有エンティティのロックとロック解除にも同じルールが適用されます。
エンティティに対して定義されたセキュリティおよび有効交差ルールも、その部分共有インスタンスに適用されます。
トランザクション・データをノード・データの連結ディメンション・メンバーに入力する場合、データが必要な親 / エンティティの組合せごとにデータを入力するか、仕訳を転記する必要があります。
「期間別拡張組織」が有効になっている場合、部分共有エンティティの各インスタンスは相互に独立してロックおよびロック解除されます。
代替階層について学習するには、次のビデオをご覧ください。
部分共有エンティティ – 初期動作
新しいレベル0のエンティティまたはレベル0の部分共有エンティティの新しいインスタンスがメタデータに作成され、アプリケーションがデータベース・リフレッシュによって更新されると、複数のデフォルト設定およびデータ更新が適用されます。
新しいレベル0のエンティティの最初のインスタンスには、出資比率%が100%として割り当てられます。範囲に基づいたシステム・デフォルトの連結メソッド「子会社」が適用されます(範囲に基づいた100%出資比率の設定がユーザーによって変更されていないかぎり)。
アプリケーションに追加されたレベル0の部分共有エンティティの追加の(非プライマリ)インスタンスには、出資比率%が0%として割り当てられます。各代替階層内の合計出資比率は100%に制限されます。部分共有エンティティが異なる代替階層に存在する場合、各代替階層のすべてのインスタンスの合計出資比率%が100%を超えないかぎり、ユーザーは初期設定0%を必要な設定に変更できます。
「期間別拡張組織」が有効になっていない場合、範囲に基づいたシステム・デフォルトの連結メソッド非連結が適用されます(範囲に基づいた0%出資比率の設定がユーザーによって以前に変更されていないかぎり)。データベース・リフレッシュ・プロセスによって新しいインスタンスがデータベースに追加されると、既存のエンティティ通貨の共通データがプライマリ・インスタンスから新しい共有インスタンスにコピーされます。非連結メソッドの連結%は0%ですが、データがコピーされた新しいインスタンスの親が影響を受けます。ロック済エンティティをロック解除して再連結する必要がある場合があります。
「期間別拡張組織」が有効になっている場合、範囲に基づいたシステム・デフォルトの連結メソッド「非アクティブ」が適用されます。データベース・リフレッシュ・プロセスによって新しいインスタンスがデータベースに追加されると、既存のエンティティ通貨の共通データがプライマリ・インスタンスから新しい共有インスタンスにコピーされます。コピーされたエンティティ通貨の共通データが新しいインスタンスの親通貨に換算されます。新しいインスタンスの親通貨がプライマリ・インスタンスの親通貨と同じ通貨ではない可能性があるため、換算プロセスは関連するシステムおよびユーザー作成済計算ルールとともに実行されます。部分共有エンティティの新しいインスタンスでは、計算ステータスが「OK」になります。
「期間別拡張組織」が有効で、かつ非アクティブ・メソッドがエンティティに割り当てられている場合は、非アクティブ・エンティティの共通データとノード・データの間にブレークポイントが作成されます。共通データに適用されたデータ・コピー、換算およびルール実行は、新しい非アクティブ・インスタンスのノード・データには影響せず、その祖先にも影響しません。ノード・データは親 / エンティティの組合せに固有であり、ノード・データの連結ディメンション・メンバーのいずれにもデータは移入されていないため、新しいインスタンスのノード・ステータスは「データなし」になります。部分共有エンティティの新しいインスタンスは、その親のロック済 / ロック解除済ステータスに関係なく、ロック解除されたままになります。
必要に応じて、部分共有エンティティの新しいインスタンスに割り当てられた出資比率%とメソッドを変更できます。ただし、メソッドを「非アクティブ」から他のメソッドに変更するには、エンティティの親がロック解除されている必要があります。エンティティの新しいインスタンスのメソッドを「非アクティブ」からアクティブ・メソッドに変更すると、新しいインスタンスの計算ステータスが「データなし」でないかぎり、その祖先が影響を受けます。