シナリオ:
暗黙的な共有関係のあるメンバーの場合、親と子が同じOracle Hyperion Planningフォームに表示されると、親に入力された値のみが保持されます。次の例では、親と子の値は常に同じなため、PlanningによりParent AとChild 1間に暗黙の共有関係が作成されます。これらの例ではすべてのメンバーが「保管」データ・タイプに設定されているものとします。
例1:
Parent A Child 1 (+)
例2:
Parent A Child 1 (+) Child 2 (~) Child 3 (~)
ほとんどのPlanningアプリケーションはボトムアップ・アプリケーションなので、通常、親は読取り専用なため、データは子に入力されます。イベントの典型的なシーケンス:
フォームに子が、通常、親の上に表示されます。
子に対し新規データが入力されます。
フォームが保存されます。保存操作では、フォームは左から右へ、上から下へ読み取られるので、子は最初に保存されます。
次に、保存操作はグリッド内の最後の値(一番下で一番右の値)を取り出しますが、暗黙的な共有のため、それにより子の値は上書きされます。子に入力されたデータは破棄されます。
解決策:
Planningフォームの要件に応じて、これらの方法を使用して、暗黙的な共有を避けることができます。
親と子が同じフォームにある場合: 集約の子としてダミーのメンバーを追加します。ダミーのメンバーはアウトラインに含まれますが、フォームでは使用されません。暗黙的な共有は親が集約の子のみを持つ場合には使用できません。
ラベルのみの親の場合: 存在する集約の子の数にかかわらず、最初の子メンバーを含む暗黙的な共有が存在します。この状況で暗黙的な共有を使用不可にするには、「ラベルのみ」ストレージ・タイプを変更するか、または同じフォームに親と子を含めないようにします。
「共有しない」に設定できる親の場合: アプリケーションで必要な場合、親メンバーを「共有しない」ストレージ設定に設定できます。「共有しない」親は、複数の集約の子を持つ「保管」親と同様に動作します。ただし、「保管」親とは異なり、「共有しない」親は集約の実行後に、その子の集約された値のみを表示します。
注:
1つの子を持つ親の場合、デフォルトのストレージ・タイプの「保管」の使用(暗黙的な共有関係を保持)は通常有利です。それにより、作成されるブロック数、データベース・サイズ、計算時間および集約時間が削減されるからです。必要な場合にのみ、「共有しない」を使用してください。
暗黙的な共有の詳細は、 Oracle Essbaseデータベース管理者ガイド を参照してください。